diff --git a/polymer/eduke32/source/gameexec.c b/polymer/eduke32/source/gameexec.c index be32e08b4..0d3dd4d72 100644 --- a/polymer/eduke32/source/gameexec.c +++ b/polymer/eduke32/source/gameexec.c @@ -4098,9 +4098,9 @@ nullquote: if (asize > 0) { /*OSD_Printf(OSDTEXT_GREEN "CON_RESIZEARRAY: resizing array %s from %d to %d\n", - aGameArrays[j].szLabel, aGameArrays[j].size, asize / sizeof(int32_t));*/ + aGameArrays[j].szLabel, aGameArrays[j].size, asize / GAR_ELTSZ);*/ aGameArrays[j].plValues=Brealloc(aGameArrays[j].plValues, asize); - aGameArrays[j].size = asize / sizeof(int32_t); + aGameArrays[j].size = asize / GAR_ELTSZ; kread(fil, aGameArrays[j].plValues, asize); } @@ -4143,7 +4143,7 @@ nullquote: if (asize > 0) { /*OSD_Printf(OSDTEXT_GREEN "CON_RESIZEARRAY: resizing array %s from %d to %d\n", aGameArrays[j].szLabel, aGameArrays[j].size, asize);*/ - aGameArrays[j].plValues=Brealloc(aGameArrays[j].plValues, sizeof(int32_t) * asize); + aGameArrays[j].plValues=Brealloc(aGameArrays[j].plValues, GAR_ELTSZ * asize); aGameArrays[j].size = asize; } continue; diff --git a/polymer/eduke32/source/gamevars.c b/polymer/eduke32/source/gamevars.c index 8cc8eb75e..2c0a24585 100644 --- a/polymer/eduke32/source/gamevars.c +++ b/polymer/eduke32/source/gamevars.c @@ -158,8 +158,8 @@ int32_t Gv_ReadSave(int32_t fil, int32_t newbehav) if (kdfread(aGameArrays[i].szLabel,sizeof(uint8_t) * MAXARRAYLABEL, 1, fil) != 1) goto corrupt; hash_add(&h_arrays, aGameArrays[i].szLabel, i, 1); - aGameArrays[i].plValues=Bcalloc(aGameArrays[i].size,sizeof(int32_t)); - if (kdfread(aGameArrays[i].plValues,sizeof(int32_t) * aGameArrays[i].size, 1, fil) < 1) goto corrupt; + aGameArrays[i].plValues=Bcalloc(aGameArrays[i].size, GAR_ELTSZ); + if (kdfread(aGameArrays[i].plValues, GAR_ELTSZ * aGameArrays[i].size, 1, fil) < 1) goto corrupt; } // Bsprintf(g_szBuf,"CP:%s %d",__FILE__,__LINE__); @@ -273,7 +273,7 @@ void Gv_WriteSave(FILE *fil, int32_t newbehav) { dfwrite(&(aGameArrays[i]),sizeof(gamearray_t),1,fil); dfwrite(aGameArrays[i].szLabel,sizeof(uint8_t) * MAXARRAYLABEL, 1, fil); - dfwrite(aGameArrays[i].plValues,sizeof(int32_t) * aGameArrays[i].size, 1, fil); + dfwrite(aGameArrays[i].plValues, GAR_ELTSZ * aGameArrays[i].size, 1, fil); } G_Util_PtrToIdx(apScriptGameEvent, MAXGAMEEVENTS, script, P2I_FWD_NON0); @@ -417,7 +417,7 @@ int32_t Gv_NewArray(const char *pszLabel, int32_t asize) aGameArrays[i].szLabel=(char *)Bcalloc(MAXVARLABEL,sizeof(uint8_t)); if (aGameArrays[i].szLabel != pszLabel) Bstrcpy(aGameArrays[i].szLabel,pszLabel); - aGameArrays[i].plValues=(intptr_t *)Bcalloc(asize,sizeof(int32_t)); + aGameArrays[i].plValues=(intptr_t *)Bcalloc(asize,GAR_ELTSZ); aGameArrays[i].size=asize; aGameArrays[i].bReset=0; g_gameArrayCount++; diff --git a/polymer/eduke32/source/gamevars.h b/polymer/eduke32/source/gamevars.h index b45d3fe85..826bc5482 100644 --- a/polymer/eduke32/source/gamevars.h +++ b/polymer/eduke32/source/gamevars.h @@ -74,6 +74,8 @@ typedef struct { } gamearray_t; #pragma pack(pop) +#define GAR_ELTSZ (sizeof(aGameArrays[0].plValues[0])) + extern gamevar_t aGameVars[MAXGAMEVARS]; extern gamearray_t aGameArrays[MAXGAMEARRAYS]; extern int32_t g_gameVarCount;