Author Topic: [C++] Class List System  (Read 2770 times)

0 Members and 1 Guest are viewing this topic.

Offline Clyde

  • A Little Fuzzy Wuzzy
  • DBF Aficionado
  • ******
  • Posts: 7271
  • Karma: 71
    • View Profile
[C++] Class List System
« on: October 28, 2009 »
Hello there,

Im trying to make a list system so the correct amount of 'said items' are only used and dealt with, so it wont really on guess-imations of arrays.

im having a bit of trouble with it, particularly in the update_gfx_letters routine at the while loop. There could be other areas that are wrong too.

Code: [Select]
class gfx_letter {

public:
int posx, posy, life;

int frame;

gfx_letter *next_entry;
};


class my_list {

public:
gfx_letter *first_entry;
gfx_letter *next_entry;

};

my_list *create_my_list();
gfx_letter*create_gfx_letter( int frame, my_list *list);

static int letter_delay =0;


static my_list *list1;


int main()
{
     list1=create_my_list();

     while ( keyhit(27) == false )
     {
        update_gfx_letters( list1 );
     }
}

void delete_gfx_letter( my_list *list, gfx_letter *letter)
{   
    gfx_letter *temp_entry=list->first_entry;
   
    while ( temp_entry->next_entry != letter )
    {
        letter=letter->next_entry;
    }
   
    temp_entry->next_entry= letter->next_entry;
   
    delete gfx_letter;
}
end sub



void update_gfx_letters( my_list *list )
{
        letter_delay+=1;

if  ( letter_delay >= 40)
{
char frame=32;
{
     // add a new letter;
     create_gfx_letter( frame, list );
}


letter_delay = 0;
}


gfx_letter *letter=list->first_entry;

while ( letter !=0 )
{
   update_letters( letter, list );
   letter=list->next_entry;
}
}


void update_letters( gfx_letter *letter, my_list *list )
{
letter->life+=1

if ( letter->life >= 5000 )
{
   // delete / remove letter.
   delete_gfx_letter( list, letter );

}
}


gfx_letter *create_gfx_letter( int frame, my_list *list )
{
gfx_letter *letter = new gfx_letter;

letter->next_entry=list->first_entry;

list->first_entry=letter;

letter->posx = 30;
letter->posy = 20;
letter->frame = frame;

return letter;
}

my_list *create_my_list()
{
my_list *new_list = new my_list;

return new_list;
}

Cheers and all the very best,
Clyde.
Still Putting The IT Into Gravy
If Only I Knew Then What I Know Now.

Challenge Trophies Won:

Offline Jim

  • Founder Member
  • DBF Aficionado
  • ********
  • Posts: 5301
  • Karma: 402
    • View Profile
Re: [C++] Class List System
« Reply #1 on: October 28, 2009 »
Code: [Select]
gfx_letter *first_entry;
gfx_letter *next_entry;
I think you need to set these to NULL when you create a my_list.

Jim
Challenge Trophies Won:

Offline hellfire

  • Sponsor
  • Pentium
  • *******
  • Posts: 1294
  • Karma: 466
    • View Profile
    • my stuff
Re: [C++] Class List System
« Reply #2 on: October 28, 2009 »
Clyde, one day you should really try the integrated debugger. It's a fantastic tool :)
Challenge Trophies Won: