diff --git a/polymer/eduke32/source/gamevars.c b/polymer/eduke32/source/gamevars.c index da2c2738c..2accf45a1 100644 --- a/polymer/eduke32/source/gamevars.c +++ b/polymer/eduke32/source/gamevars.c @@ -360,6 +360,7 @@ void Gv_DumpValues(void) OSD_Printf("\n// end of game definitions\n"); } +// XXX: This function is very strange. void Gv_ResetVars(void) /* this is called during a new game and nowhere else */ { int32_t i; diff --git a/polymer/eduke32/source/premap.c b/polymer/eduke32/source/premap.c index eebaf05b7..3b8400031 100644 --- a/polymer/eduke32/source/premap.c +++ b/polymer/eduke32/source/premap.c @@ -1536,6 +1536,10 @@ void G_NewGame(int32_t vn,int32_t ln,int32_t sk) Gv_InitWeaponPointers(); + // PK: Gv_ResetVars() might trip up the system (pointer) gamevars, + // e.g. if some earlier-version CON code had been loaded before + Gv_RefreshPointers(); + Gv_ResetSystemDefaults(); for (i=0; i<(MAXVOLUMES*MAXLEVELS); i++)