What's the fread_temp_char do?  I'm assuming it reads from the file. 
Might it be what is causing problems when the #PLAYER section is
missing?

How is the player not being loaded?  At all?  Where does it exit from
the function at?

On 4/23/05, Tom Whiting <[EMAIL PROTECTED]> wrote:
> hi, gang
> usually, I have no problems going through code and debugging crap myself, 
> but, occasionally (a bit more often than I'd like), I need the advice of 
> "experts" ;) This is one of those times, hopefully someone can point me into 
> the right direction, cuz I'm beating my head against the wall here (and it's 
> sore:))
> 
> The goal:
> To effectively load users FROM an SQL database, rather than from files.
> That  part is easy, really. I've been over this one pretty thoroughly, 
> crossed my T's, dotted my I's, that usual stuff. Everything is saving (and 
> loading) from the database quite successfully.
> 
> So, what's the problem?
> The pfile is the problem, to be honest. Something, inside of the code is 
> looking for #PLAYER at the top of the pfile. Eventually, I'll be getting rid 
> of those entirely, loading everything (objects, pets, spells, affects, etc) 
> from SQL, and when that's done, there will be no pfile. For now,  #PLAYER in 
> the pfile is fine, but when everything gets done, there will be nowhere to 
> put that.
> 
> Now, I know of this code in save.c which reads that line:
> 
>             if      ( !str_cmp( word, "PLAYER" ) ) fread_char ( ch, fp );
>             else if ( !str_cmp( word, "OBJECT" ) ) fread_obj  ( ch, fp );
>             else if ( !str_cmp( word, "O"      ) ) fread_obj  ( ch, fp );
>             else if ( !str_cmp( word, "BOX"    ) ) fread_bobj ( ch, fp );
>             else if ( !str_cmp( word, "PET"    ) ) fread_pet  ( ch, fp );
>             else if ( !str_cmp( word, "MOUNT"  ) ) fread_mount( ch, fp );
>             else if ( !str_cmp( word, "END"    ) ) break;
> 
> And I've modified that to read:
> fread_temp_char(ch, fp); // the new loading structure, checking for any old 
> players
>             word = fread_word( fp );
> 
>           if ( !str_cmp( word, "OBJECT" ) ) fread_obj  ( ch, fp );
>             else if ( !str_cmp( word, "O"      ) ) fread_obj  ( ch, fp );
>             else if ( !str_cmp( word, "BOX"    ) ) fread_bobj ( ch, fp );
>             else if ( !str_cmp( word, "PET"    ) ) fread_pet  ( ch, fp );
>             else if ( !str_cmp( word, "MOUNT"  ) ) fread_mount( ch, fp );
>             else if ( !str_cmp( word, "END"    ) ) break;
> 
> So, the word "PLAYER" isn't even called here, or it shouldn't be
> Yet (and this is after many clean compiles, shutdowns, reboots, etc), the 
> problem remains that IF that #PLAYER line is not at the top of the pfile, 
> then the player's file is not even loaded. When it is, the file is loaded 
> perfectly, when not, the file isn't. Like I said, I'm stumped on this one, is 
> there somewhere else that the #player check is made here?
> 
> --
> ROM mailing list
> ROM@rom.org
> Unsubscribe here ->>> http://www.rom.org/cgi-bin/mailman/listinfo/rom
>

Reply via email to