From 0b1f6f91a9845fc9c073f585d4293c731b6b9333 Mon Sep 17 00:00:00 2001 From: terminx Date: Wed, 4 Jul 2007 09:15:08 +0000 Subject: [PATCH] grp shit git-svn-id: https://svn.eduke32.com/eduke32@552 1a8010ca-5511-0410-912e-c29ae57300e0 --- polymer/build/src/build.c | 22 ------- polymer/build/src/sdlayer.c | 3 +- polymer/eduke32/source/astub.c | 105 +++++++++++++++++++++++++------ polymer/eduke32/source/game.c | 41 +++++++++--- polymer/eduke32/source/gamedef.c | 2 +- polymer/eduke32/source/player.c | 1 - 6 files changed, 121 insertions(+), 53 deletions(-) diff --git a/polymer/build/src/build.c b/polymer/build/src/build.c index 203ee7234..57529150a 100644 --- a/polymer/build/src/build.c +++ b/polymer/build/src/build.c @@ -243,15 +243,6 @@ extern int startwin_run(void); extern char *defsfilename; // set in bstub.c -char **grps = NULL; -char grpstoadd = 0; - -void buildaddgroup(const char *buffer) -{ - grps = (char**)realloc(grps, sizeof(char*)*(grpstoadd+1)); - grps[grpstoadd++] = strdup(buffer); -} - int app_main(int argc, char **argv) { char ch, quitflag, cmdsetup = 0; @@ -277,10 +268,6 @@ int app_main(int argc, char **argv) for (i=1; i 0) { - for (i=0;i i+1) + { + buildaddgroup(argv[i+1]); + i++; + } + i++; + continue; + } + if (!Bstrcasecmp(c+1,"game_dir")) { if (argc > i+1) @@ -5096,6 +5115,16 @@ static void checkcommandline(int argc,char **argv) i++; continue; } + if (!Bstrcasecmp(c+1,"gamegrp")) + { + if (argc > i+1) + { + Bstrcpy(defaultduke3dgrp,argv[i+1]); + i++; + } + i++; + continue; + } if (!Bstrcasecmp(c+1,"nam")) { strcpy(duke3dgrp, "nam.grp"); @@ -5115,6 +5144,13 @@ static void checkcommandline(int argc,char **argv) i++; continue; } + if (!Bstrcasecmp(c+1,"noautoload")) + { + initprintf("Autoload disabled\n"); + NoAutoLoad = 1; + i++; + continue; + } #if !defined(_WIN32) if (!Bstrcasecmp(c+1,"usecwd")) { @@ -5514,6 +5550,19 @@ static int getatoken(scriptfile *sf, tokenlist *tl, int ntokens) return T_ERROR; } +static void autoloadgrps(const char *fn) +{ + Bsprintf(tempbuf,"autoload/%s",fn); + getfilenames(tempbuf,"*.grp"); + while (findfiles) { Bsprintf(tempbuf,"autoload/%s/%s",fn,findfiles->name); initprintf("Using group file '%s'.\n",tempbuf); initgroupfile(tempbuf); findfiles = findfiles->next; } + Bsprintf(tempbuf,"autoload/%s",fn); + getfilenames(tempbuf,"*.zip"); + while (findfiles) { Bsprintf(tempbuf,"autoload/%s/%s",fn,findfiles->name); initprintf("Using group file '%s'.\n",tempbuf); initgroupfile(tempbuf); findfiles = findfiles->next; } + Bsprintf(tempbuf,"autoload/%s",fn); + getfilenames(tempbuf,"*.pk3"); + while (findfiles) { Bsprintf(tempbuf,"autoload/%s/%s",fn,findfiles->name); initprintf("Using group file '%s'.\n",tempbuf); initgroupfile(tempbuf); findfiles = findfiles->next; } +} + int parsegroupfiles(scriptfile *script) { int tokn; @@ -5535,16 +5584,25 @@ int parsegroupfiles(scriptfile *script) case T_LOADGRP: { char *fn; + + pathsearchmode = 1; if (!scriptfile_getstring(script,&fn)) { int j = initgroupfile(fn); if (j == -1) - initprintf("Could not find GRP file %s.\n",fn); + initprintf("Could not find group file '%s'.\n",fn); else - initprintf("Using GRP file %s.\n",fn); + { + initprintf("Using group file '%s'.\n",fn); + if (!NoAutoLoad) + autoloadgrps(fn); + } + } + pathsearchmode = 0; } + break; case T_INCLUDE: { char *fn; @@ -5754,6 +5812,7 @@ int loadtilegroups(char *fn) int ExtInit(void) { long rv = 0; + int i; char cwd[BMAX_PATH]; #if defined(__linux__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) @@ -5821,24 +5880,21 @@ int ExtInit(void) duke3dgrp = getenv("DUKE3DGRP"); initprintf("Using %s as main GRP file\n", duke3dgrp); } - initgroupfile(duke3dgrp); - Bsprintf(tempbuf,"autoload/%s",duke3dgrp); - getfilenames(tempbuf,"*.grp"); - while (findfiles) { Bsprintf(tempbuf,"autoload/%s/%s",duke3dgrp,findfiles->name); initprintf("Using group file '%s'.\n",tempbuf); initgroupfile(tempbuf); findfiles = findfiles->next; } - Bsprintf(tempbuf,"autoload/%s",duke3dgrp); - getfilenames(tempbuf,"*.zip"); - while (findfiles) { Bsprintf(tempbuf,"autoload/%s/%s",duke3dgrp,findfiles->name); initprintf("Using group file '%s'.\n",tempbuf); initgroupfile(tempbuf); findfiles = findfiles->next; } - Bsprintf(tempbuf,"autoload/%s",duke3dgrp); - getfilenames(tempbuf,"*.pk3"); - while (findfiles) { Bsprintf(tempbuf,"autoload/%s/%s",duke3dgrp,findfiles->name); initprintf("Using group file '%s'.\n",tempbuf); initgroupfile(tempbuf); findfiles = findfiles->next; } + i = initgroupfile(duke3dgrp); - getfilenames("autoload","*.grp"); - while (findfiles) { Bsprintf(tempbuf,"autoload/%s",findfiles->name); initprintf("Using group file '%s'.\n",tempbuf); initgroupfile(tempbuf); findfiles = findfiles->next; } - getfilenames("autoload","*.zip"); - while (findfiles) { Bsprintf(tempbuf,"autoload/%s",findfiles->name); initprintf("Using group file '%s'.\n",tempbuf); initgroupfile(tempbuf); findfiles = findfiles->next; } - getfilenames("autoload","*.pk3"); - while (findfiles) { Bsprintf(tempbuf,"autoload/%s",findfiles->name); initprintf("Using group file '%s'.\n",tempbuf); initgroupfile(tempbuf); findfiles = findfiles->next; } + if (!NoAutoLoad) + { + getfilenames("autoload","*.grp"); + while (findfiles) { Bsprintf(tempbuf,"autoload/%s",findfiles->name); initprintf("Using group file '%s'.\n",tempbuf); initgroupfile(tempbuf); findfiles = findfiles->next; } + getfilenames("autoload","*.zip"); + while (findfiles) { Bsprintf(tempbuf,"autoload/%s",findfiles->name); initprintf("Using group file '%s'.\n",tempbuf); initgroupfile(tempbuf); findfiles = findfiles->next; } + getfilenames("autoload","*.pk3"); + while (findfiles) { Bsprintf(tempbuf,"autoload/%s",findfiles->name); initprintf("Using group file '%s'.\n",tempbuf); initgroupfile(tempbuf); findfiles = findfiles->next; } + + if (i != -1) + autoloadgrps(duke3dgrp); + } if (getenv("DUKE3DDEF")) { @@ -5847,6 +5903,17 @@ int ExtInit(void) } loadgroupfiles(defsfilename); + if (grps && grpstoadd > 0) { + for (i=0;i i+1) + { + Bstrcpy(defaultduke3dgrp,argv[i+1]); + i++; + } + i++; + continue; + } if (!Bstrcasecmp(c+1,"nam")) { strcpy(defaultduke3dgrp, "nam.grp"); @@ -8670,6 +8682,13 @@ static void checkcommandline(int argc,char **argv) i++; continue; } + if (!Bstrcasecmp(c+1,"noautoload")) + { + initprintf("Autoload disabled\n"); + NoAutoLoad = 1; + i++; + continue; + } if (!Bstrcasecmp(c+1,"keepaddr")) { keepaddr = 1; @@ -10004,15 +10023,18 @@ void app_main(int argc,char **argv) else initprintf("Using group file '%s' as main group file.\n", duke3dgrp); - getfilenames("autoload","*.grp"); -while (findfiles) { Bsprintf(tempbuf,"autoload/%s",findfiles->name); initprintf("Using group file '%s'.\n",tempbuf); initgroupfile(tempbuf); findfiles = findfiles->next; } - getfilenames("autoload","*.zip"); - while (findfiles) { Bsprintf(tempbuf,"autoload/%s",findfiles->name); initprintf("Using group file '%s'.\n",tempbuf); initgroupfile(tempbuf); findfiles = findfiles->next; } - getfilenames("autoload","*.pk3"); + if (!NoAutoLoad) + { + getfilenames("autoload","*.grp"); while (findfiles) { Bsprintf(tempbuf,"autoload/%s",findfiles->name); initprintf("Using group file '%s'.\n",tempbuf); initgroupfile(tempbuf); findfiles = findfiles->next; } + getfilenames("autoload","*.zip"); + while (findfiles) { Bsprintf(tempbuf,"autoload/%s",findfiles->name); initprintf("Using group file '%s'.\n",tempbuf); initgroupfile(tempbuf); findfiles = findfiles->next; } + getfilenames("autoload","*.pk3"); + while (findfiles) { Bsprintf(tempbuf,"autoload/%s",findfiles->name); initprintf("Using group file '%s'.\n",tempbuf); initgroupfile(tempbuf); findfiles = findfiles->next; } - if (i != -1) - autoloadgrps(duke3dgrp); + if (i != -1) + autoloadgrps(duke3dgrp); + } loadgroupfiles(duke3ddef); @@ -10029,7 +10051,8 @@ while (findfiles) { Bsprintf(tempbuf,"autoload/%s",findfiles->name); initprintf( { groupfile = j; initprintf("Using group file '%s'.\n",CommandGrps->str); - autoloadgrps(CommandGrps->str); + if (!NoAutoLoad) + autoloadgrps(CommandGrps->str); } free(CommandGrps->str); diff --git a/polymer/eduke32/source/gamedef.c b/polymer/eduke32/source/gamedef.c index 6ee1afe36..f2f87f1f4 100644 --- a/polymer/eduke32/source/gamedef.c +++ b/polymer/eduke32/source/gamedef.c @@ -1318,7 +1318,7 @@ static void transvartype(int type) if ((aGameVars[i].dwFlags & GAMEVAR_FLAG_SYNCCHECK) && parsing_actor && CheckEventSync(current_event)) { ReportError(-1); - initprintf("%s:%ld: warning: found local gamevar `%s' used within %s.\n",compilefile,line_number,label+(labelcnt<<6),parsing_event?"a synced event":"an actor"); + initprintf("%s:%ld: warning: found local gamevar `%s' used within %s; expect multiplayer synchronization issues.\n",compilefile,line_number,label+(labelcnt<<6),parsing_event?"a synced event":"an actor"); } if (!(error || warning) && condebug > 1) initprintf("%s:%ld: debug: accepted gamevar `%s'.\n",compilefile,line_number,label+(labelcnt<<6)); diff --git a/polymer/eduke32/source/player.c b/polymer/eduke32/source/player.c index e1c9f5706..7784b7fc4 100644 --- a/polymer/eduke32/source/player.c +++ b/polymer/eduke32/source/player.c @@ -1533,7 +1533,6 @@ SKIPBULLETHOLE: else zvel = (100-ps[p].horiz-ps[p].horizoff)*81; if (atwith == RPG) spritesound(RPG_SHOOT,i); - } else {