Dark Bit Factory & Gravity

PROGRAMMING => C / C++ /C# => Topic started by: Clyde on October 28, 2009

Title: [C++] Class List System
Post by: Clyde 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.
Title: Re: [C++] Class List System
Post by: Jim 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
Title: Re: [C++] Class List System
Post by: hellfire on October 28, 2009
Clyde, one day you should really try the integrated debugger. It's a fantastic tool :)