mirror of
https://github.com/ZDoom/raze-gles.git
synced 2025-01-15 20:20:54 +00:00
- safety commit
This commit is contained in:
parent
15c744f3da
commit
e007b9bceb
15 changed files with 1207 additions and 944 deletions
|
@ -1077,6 +1077,10 @@ inline int32_t setsprite(int16_t spritenum, int x, int y, int z)
|
||||||
return setsprite(spritenum, &v);
|
return setsprite(spritenum, &v);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void setspritepos(int spnum, int x, int y, int z)
|
||||||
|
{
|
||||||
|
sprite[spnum].pos = { x,y,z };
|
||||||
|
}
|
||||||
int32_t setspritez(int16_t spritenum, const vec3_t *) ATTRIBUTE((nonnull(2)));
|
int32_t setspritez(int16_t spritenum, const vec3_t *) ATTRIBUTE((nonnull(2)));
|
||||||
|
|
||||||
int32_t spriteheightofsptr(uspriteptr_t spr, int32_t *height, int32_t alsotileyofs);
|
int32_t spriteheightofsptr(uspriteptr_t spr, int32_t *height, int32_t alsotileyofs);
|
||||||
|
|
|
@ -68,6 +68,8 @@ int ifhitsectors_r(int sectnum);
|
||||||
int ifhitbyweapon_r(int sn);
|
int ifhitbyweapon_r(int sn);
|
||||||
int ifhitbyweapon_d(int sn);
|
int ifhitbyweapon_d(int sn);
|
||||||
int adjustfall(spritetype* s, int c);
|
int adjustfall(spritetype* s, int c);
|
||||||
|
void fall_d(int g_i, int g_p);
|
||||||
|
void fall_r(int g_i, int g_p);
|
||||||
|
|
||||||
bool ceilingspace(int sectnum)
|
bool ceilingspace(int sectnum)
|
||||||
{
|
{
|
||||||
|
@ -137,6 +139,11 @@ int ifhitbyweapon(int sectnum)
|
||||||
return isRR()? ifhitbyweapon_r(sectnum) : ifhitbyweapon_d(sectnum);
|
return isRR()? ifhitbyweapon_r(sectnum) : ifhitbyweapon_d(sectnum);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void fall(int g_i, int g_p)
|
||||||
|
{
|
||||||
|
if (isRR()) fall_r(g_i, g_p); else fall_d(g_i, g_p);
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
|
@ -5050,6 +5057,98 @@ void alterang(int a, int g_i, int g_p)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// the indirections here are to keep this core function free of game references
|
||||||
|
//
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
void fall_common(int g_i, int g_p, int JIBS6, int DRONE, int BLOODPOOL, int SHOTSPARK1, int squished, int thud, int(*fallspecial)(int, int), void (*falladjustz)(spritetype*))
|
||||||
|
{
|
||||||
|
int j;
|
||||||
|
auto g_sp = &sprite[g_i];
|
||||||
|
g_sp->xoffset = 0;
|
||||||
|
g_sp->yoffset = 0;
|
||||||
|
// if(!gotz)
|
||||||
|
{
|
||||||
|
long c;
|
||||||
|
|
||||||
|
int sphit = fallspecial? fallspecial(g_i, g_p) : 0;
|
||||||
|
if (floorspace(g_sp->sectnum))
|
||||||
|
c = 0;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (ceilingspace(g_sp->sectnum) || sector[g_sp->sectnum].lotag == 2)
|
||||||
|
c = gc / 6;
|
||||||
|
else c = gc;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (hittype[g_i].cgg <= 0 || (sector[g_sp->sectnum].floorstat & 2))
|
||||||
|
{
|
||||||
|
getglobalz(g_i);
|
||||||
|
hittype[g_i].cgg = 6;
|
||||||
|
}
|
||||||
|
else hittype[g_i].cgg--;
|
||||||
|
|
||||||
|
if (g_sp->z < (hittype[g_i].floorz - FOURSLEIGHT))
|
||||||
|
{
|
||||||
|
g_sp->zvel += c;
|
||||||
|
g_sp->z += g_sp->zvel;
|
||||||
|
|
||||||
|
if (g_sp->zvel > 6144) g_sp->zvel = 6144;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
g_sp->z = hittype[g_i].floorz - FOURSLEIGHT;
|
||||||
|
|
||||||
|
if (badguy(g_sp) || (g_sp->picnum == APLAYER && g_sp->owner >= 0))
|
||||||
|
{
|
||||||
|
|
||||||
|
if (g_sp->zvel > 3084 && g_sp->extra <= 1)
|
||||||
|
{
|
||||||
|
if (g_sp->pal != 1 && g_sp->picnum != DRONE)
|
||||||
|
{
|
||||||
|
if (g_sp->picnum == APLAYER && g_sp->extra > 0)
|
||||||
|
goto SKIPJIBS;
|
||||||
|
if (sphit)
|
||||||
|
{
|
||||||
|
guts(g_sp, JIBS6, 5, g_p);
|
||||||
|
spritesound(squished, g_i);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
guts(g_sp, JIBS6, 15, g_p);
|
||||||
|
spritesound(squished, g_i);
|
||||||
|
spawn(g_i, BLOODPOOL);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SKIPJIBS:
|
||||||
|
|
||||||
|
hittype[g_i].picnum = SHOTSPARK1;
|
||||||
|
hittype[g_i].extra = 1;
|
||||||
|
g_sp->zvel = 0;
|
||||||
|
}
|
||||||
|
else if (g_sp->zvel > 2048 && sector[g_sp->sectnum].lotag != 1)
|
||||||
|
{
|
||||||
|
|
||||||
|
short j = g_sp->sectnum;
|
||||||
|
int x = g_sp->x, y = g_sp->y, z = g_sp->z;
|
||||||
|
pushmove(&x, &y, &z, &j, 128, (4 << 8), (4 << 8), CLIPMASK0);
|
||||||
|
setspritepos(g_i, x, y, z); // wrap this for safety. The renderer may need processing of the new position.
|
||||||
|
if (j != g_sp->sectnum && j >= 0 && j < MAXSECTORS)
|
||||||
|
changespritesect(g_i, j);
|
||||||
|
|
||||||
|
spritesound(thud, g_i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (sector[g_sp->sectnum].lotag == 1)
|
||||||
|
falladjustz(g_sp);
|
||||||
|
else g_sp->zvel = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -460,6 +460,8 @@ void lotsofmoney(spritetype* s, short n);
|
||||||
|
|
||||||
int dodge(spritetype*);
|
int dodge(spritetype*);
|
||||||
void alterang(int a, int g_i, int g_p);
|
void alterang(int a, int g_i, int g_p);
|
||||||
|
void fall(int g_i, int g_p);
|
||||||
|
void fall_common(int g_i, int g_p, int JIBS6, int DRONE, int BLOODPOOL, int SHOTSPARK1, int squished, int thud, int(*fallspecial)(int, int), void (*falladjustz)(spritetype*));
|
||||||
|
|
||||||
// tile names which are identical for all games.
|
// tile names which are identical for all games.
|
||||||
enum
|
enum
|
||||||
|
|
|
@ -4156,4 +4156,29 @@ void move_d(int g_i, int g_p, int g_x)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
static void falladjustz(spritetype* g_sp)
|
||||||
|
{
|
||||||
|
switch (g_sp->picnum)
|
||||||
|
{
|
||||||
|
case OCTABRAIN:
|
||||||
|
case COMMANDER:
|
||||||
|
case DRONE:
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
g_sp->z += (24 << 8);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void fall_d(int g_i, int g_p)
|
||||||
|
{
|
||||||
|
fall_common(g_i, g_p, JIBS6, DRONE, BLOODPOOL, SHOTSPARK1, SQUISHED, THUD, nullptr, falladjustz);
|
||||||
|
}
|
||||||
|
|
||||||
END_DUKE_NS
|
END_DUKE_NS
|
||||||
|
|
|
@ -2115,10 +2115,10 @@ static void rrra_specialstats()
|
||||||
i = nexti;
|
i = nexti;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ps[screenpeek].raat609 > 0)
|
if (ps[screenpeek].MamaEnd > 0)
|
||||||
{
|
{
|
||||||
ps[screenpeek].raat609--;
|
ps[screenpeek].MamaEnd--;
|
||||||
if (ps[screenpeek].raat609 == 0)
|
if (ps[screenpeek].MamaEnd == 0)
|
||||||
{
|
{
|
||||||
ps[screenpeek].gm = MODE_EOL;
|
ps[screenpeek].gm = MODE_EOL;
|
||||||
ud.eog = 1;
|
ud.eog = 1;
|
||||||
|
@ -4350,4 +4350,134 @@ void move_r(int g_i, int g_p, int g_x)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void fakebubbaspawn(int g_i, int g_p)
|
||||||
|
{
|
||||||
|
fakebubba_spawn++;
|
||||||
|
switch (fakebubba_spawn)
|
||||||
|
{
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
spawn(g_i, PIG);
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
spawn(g_i, MINION);
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
spawn(g_i, CHEER);
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
spawn(g_i, VIXEN);
|
||||||
|
operateactivators(666, ps[g_p].i);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// special checks in fall that only apply to RR.
|
||||||
|
//
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
static int fallspecial(int g_i, int g_p)
|
||||||
|
{
|
||||||
|
int sphit = 0;
|
||||||
|
auto g_sp = &sprite[g_i];
|
||||||
|
if (isRRRA())
|
||||||
|
{
|
||||||
|
if (sector[g_sp->sectnum].lotag == 801)
|
||||||
|
{
|
||||||
|
if (g_sp->picnum == ROCK)
|
||||||
|
{
|
||||||
|
spawn(g_i, ROCK2);
|
||||||
|
spawn(g_i, ROCK2);
|
||||||
|
deletesprite(g_i);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
else if (sector[g_sp->sectnum].lotag == 802)
|
||||||
|
{
|
||||||
|
if (g_sp->picnum != APLAYER && badguy(g_sp) && g_sp->z == hittype[g_i].floorz - FOURSLEIGHT)
|
||||||
|
{
|
||||||
|
guts(g_sp, JIBS6, 5, g_p);
|
||||||
|
spritesound(SQUISHED, g_i);
|
||||||
|
deletesprite(g_i);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
else if (sector[g_sp->sectnum].lotag == 803)
|
||||||
|
{
|
||||||
|
if (g_sp->picnum == ROCK2)
|
||||||
|
deletesprite(g_i);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (sector[g_sp->sectnum].lotag == 800)
|
||||||
|
{
|
||||||
|
if (g_sp->picnum == 40)
|
||||||
|
{
|
||||||
|
deletesprite(g_i);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
if (g_sp->picnum != APLAYER && (badguy(g_sp) || g_sp->picnum == HEN || g_sp->picnum == COW || g_sp->picnum == PIG || g_sp->picnum == DOGRUN || g_sp->picnum == RABBIT) && (!isRRRA() || g_spriteExtra[g_i] < 128))
|
||||||
|
{
|
||||||
|
g_sp->z = hittype[g_i].floorz - FOURSLEIGHT;
|
||||||
|
g_sp->zvel = 8000;
|
||||||
|
g_sp->extra = 0;
|
||||||
|
g_spriteExtra[g_i]++;
|
||||||
|
sphit = 1;
|
||||||
|
}
|
||||||
|
else if (g_sp->picnum != APLAYER)
|
||||||
|
{
|
||||||
|
if (!g_spriteExtra[g_i])
|
||||||
|
deletesprite(g_i);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
hittype[g_i].picnum = SHOTSPARK1;
|
||||||
|
hittype[g_i].extra = 1;
|
||||||
|
}
|
||||||
|
else if (isRRRA() && sector[g_sp->sectnum].floorpicnum == RRTILE7820 || sector[g_sp->sectnum].floorpicnum == RRTILE7768)
|
||||||
|
{
|
||||||
|
if (g_sp->picnum != MINION && g_sp->pal != 19)
|
||||||
|
{
|
||||||
|
if ((krand() & 3) == 1)
|
||||||
|
{
|
||||||
|
hittype[g_i].picnum = SHOTSPARK1;
|
||||||
|
hittype[g_i].extra = 5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return sphit;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
static void falladjustz(spritetype* g_sp)
|
||||||
|
{
|
||||||
|
if (isRRRA()) switch (g_sp->picnum)
|
||||||
|
{
|
||||||
|
case HULKBOAT:
|
||||||
|
g_sp->z += (12 << 8);
|
||||||
|
return;
|
||||||
|
case MINIONBOAT:
|
||||||
|
g_sp->z += (3 << 8);
|
||||||
|
return;
|
||||||
|
case CHEERBOAT:
|
||||||
|
case EMPTYBOAT:
|
||||||
|
g_sp->z += (6 << 8);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (g_sp->picnum != DRONE)
|
||||||
|
g_sp->z += (24 << 8);
|
||||||
|
}
|
||||||
|
|
||||||
|
void fall_r(int g_i, int g_p)
|
||||||
|
{
|
||||||
|
fall_common(g_i, g_p, JIBS6, DRONE, BLOODPOOL, SHOTSPARK1, 69, 158, fallspecial, falladjustz);
|
||||||
|
}
|
||||||
|
|
||||||
END_DUKE_NS
|
END_DUKE_NS
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -56,16 +56,8 @@ extern int errorcount, warningcount, line_count;
|
||||||
|
|
||||||
intptr_t *actorLoadEventScrptr[MAXTILES];
|
intptr_t *actorLoadEventScrptr[MAXTILES];
|
||||||
intptr_t *apScriptGameEvent[MAXGAMEEVENTS];
|
intptr_t *apScriptGameEvent[MAXGAMEEVENTS];
|
||||||
|
|
||||||
// global crap for event management
|
|
||||||
int g_i,g_p;
|
|
||||||
int g_x;
|
|
||||||
int *g_t;
|
|
||||||
uint8_t killit_flag;
|
|
||||||
spritetype *g_sp;
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
|
|
|
@ -197,8 +197,8 @@ G_EXTERN int32_t g_winderFlash;
|
||||||
G_EXTERN int32_t g_winderTime;
|
G_EXTERN int32_t g_winderTime;
|
||||||
G_EXTERN int32_t g_brightness;
|
G_EXTERN int32_t g_brightness;
|
||||||
|
|
||||||
G_EXTERN int16_t g_ambientLotag[64];
|
G_EXTERN int16_t ambientlotag[64];
|
||||||
G_EXTERN int16_t g_ambientHitag[64];
|
G_EXTERN int16_t ambienthitag[64];
|
||||||
G_EXTERN uint32_t g_ambientCnt;
|
G_EXTERN uint32_t g_ambientCnt;
|
||||||
|
|
||||||
G_EXTERN intptr_t *apScript;
|
G_EXTERN intptr_t *apScript;
|
||||||
|
@ -217,7 +217,7 @@ G_EXTERN msx_ msx;
|
||||||
G_EXTERN msy_ msy;
|
G_EXTERN msy_ msy;
|
||||||
|
|
||||||
G_EXTERN int32_t g_windTime, WindDir;
|
G_EXTERN int32_t g_windTime, WindDir;
|
||||||
G_EXTERN int16_t g_fakeBubbaCnt, g_mamaSpawnCnt, g_banjoSong, g_bellTime, g_bellSprite;
|
G_EXTERN int16_t fakebubba_spawn, mamaspawn_count, banjosound, g_bellTime, g_bellSprite;
|
||||||
#define BellTime g_bellTime
|
#define BellTime g_bellTime
|
||||||
#define word_119BE0 g_bellSprite
|
#define word_119BE0 g_bellSprite
|
||||||
G_EXTERN uint8_t g_spriteExtra[MAXSPRITES], g_sectorExtra[MAXSECTORS]; // move these back into the base structs!
|
G_EXTERN uint8_t g_spriteExtra[MAXSPRITES], g_sectorExtra[MAXSECTORS]; // move these back into the base structs!
|
||||||
|
|
|
@ -250,7 +250,7 @@ typedef struct player_struct {
|
||||||
int16_t yehaa_timer;
|
int16_t yehaa_timer;
|
||||||
int16_t drink_amt, eat_amt, drink_ang, eat_ang;
|
int16_t drink_amt, eat_amt, drink_ang, eat_ang;
|
||||||
int32_t drink_timer, eat_timer;
|
int32_t drink_timer, eat_timer;
|
||||||
int16_t level_end_timer;
|
int16_t MamaEnd;
|
||||||
int16_t MotoSpeed, tilt_status, moto_drink;
|
int16_t MotoSpeed, tilt_status, moto_drink;
|
||||||
uint8_t OnMotorcycle, OnBoat, moto_underwater, not_on_water, moto_on_ground;
|
uint8_t OnMotorcycle, OnBoat, moto_underwater, not_on_water, moto_on_ground;
|
||||||
uint8_t moto_do_bump, moto_bump_fast, moto_on_oil, moto_on_mud;
|
uint8_t moto_do_bump, moto_bump_fast, moto_on_oil, moto_on_mud;
|
||||||
|
@ -278,7 +278,7 @@ typedef struct player_struct {
|
||||||
#define heat_amount inv_amount[GET_HEATS]
|
#define heat_amount inv_amount[GET_HEATS]
|
||||||
#define scuba_amount inv_amount[GET_SCUBA]
|
#define scuba_amount inv_amount[GET_SCUBA]
|
||||||
#define boot_amount inv_amount[GET_BOOTS]
|
#define boot_amount inv_amount[GET_BOOTS]
|
||||||
#define raat609 level_end_timer // name in RRGDX is 'MamaEnd'
|
#define raat609 MamaEnd
|
||||||
#define raat5dd sea_sick_stat
|
#define raat5dd sea_sick_stat
|
||||||
|
|
||||||
|
|
||||||
|
@ -396,7 +396,7 @@ void addweapon(DukePlayer_t* pPlayer, int weaponNum);
|
||||||
void P_CheckWeapon(DukePlayer_t *pPlayer);
|
void P_CheckWeapon(DukePlayer_t *pPlayer);
|
||||||
void P_DisplayScuba(void);
|
void P_DisplayScuba(void);
|
||||||
void P_DisplayWeapon(void);
|
void P_DisplayWeapon(void);
|
||||||
void P_DropWeapon(int playerNum);
|
void checkweapons(DukePlayer_t* const pPlayer);
|
||||||
int findotherplayer(int p, int* d);
|
int findotherplayer(int p, int* d);
|
||||||
void P_FragPlayer(int playerNum);
|
void P_FragPlayer(int playerNum);
|
||||||
#ifdef YAX_ENABLE
|
#ifdef YAX_ENABLE
|
||||||
|
|
|
@ -25,8 +25,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
BEGIN_DUKE_NS
|
BEGIN_DUKE_NS
|
||||||
|
|
||||||
extern int16_t g_ambientLotag[64];
|
extern int16_t ambientlotag[64];
|
||||||
extern int16_t g_ambientHitag[64];
|
extern int16_t ambienthitag[64];
|
||||||
extern int32_t g_levelTextTime;
|
extern int32_t g_levelTextTime;
|
||||||
extern int32_t voting,vote_map,vote_episode;
|
extern int32_t voting,vote_map,vote_episode;
|
||||||
int G_EnterLevel(int gameMode);
|
int G_EnterLevel(int gameMode);
|
||||||
|
|
|
@ -2866,4 +2866,24 @@ void dofurniture(int wl, int sect, int snum)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
void tearitup(int sect)
|
||||||
|
{
|
||||||
|
int j = headspritesect[sect];
|
||||||
|
while (j != -1)
|
||||||
|
{
|
||||||
|
int nextj = nextspritesect[j];
|
||||||
|
if (sprite[j].picnum == DESTRUCTO)
|
||||||
|
{
|
||||||
|
hittype[j].picnum = SHOTSPARK1;
|
||||||
|
hittype[j].extra = 1;
|
||||||
|
}
|
||||||
|
j = nextj;
|
||||||
|
}
|
||||||
|
}
|
||||||
END_DUKE_NS
|
END_DUKE_NS
|
||||||
|
|
|
@ -894,7 +894,7 @@ GAMEEXEC_STATIC void VM_Execute(native_t loop)
|
||||||
|
|
||||||
case concmd_fakebubba:
|
case concmd_fakebubba:
|
||||||
insptr++;
|
insptr++;
|
||||||
switch (++g_fakeBubbaCnt)
|
switch (++fakebubba_spawn)
|
||||||
{
|
{
|
||||||
case 1:
|
case 1:
|
||||||
A_Spawn(vm.spriteNum, TILE_PIG);
|
A_Spawn(vm.spriteNum, TILE_PIG);
|
||||||
|
@ -925,9 +925,9 @@ GAMEEXEC_STATIC void VM_Execute(native_t loop)
|
||||||
|
|
||||||
case concmd_mamaspawn:
|
case concmd_mamaspawn:
|
||||||
insptr++;
|
insptr++;
|
||||||
if (g_mamaSpawnCnt)
|
if (mamaspawn_count)
|
||||||
{
|
{
|
||||||
g_mamaSpawnCnt--;
|
mamaspawn_count--;
|
||||||
A_Spawn(vm.spriteNum, TILE_RABBIT);
|
A_Spawn(vm.spriteNum, TILE_RABBIT);
|
||||||
}
|
}
|
||||||
continue;
|
continue;
|
||||||
|
@ -942,24 +942,24 @@ GAMEEXEC_STATIC void VM_Execute(native_t loop)
|
||||||
|
|
||||||
case concmd_garybanjo:
|
case concmd_garybanjo:
|
||||||
insptr++;
|
insptr++;
|
||||||
if (g_banjoSong == 0)
|
if (banjosound == 0)
|
||||||
{
|
{
|
||||||
switch (krand2()&3)
|
switch (krand2()&3)
|
||||||
{
|
{
|
||||||
case 3:
|
case 3:
|
||||||
g_banjoSong = 262;
|
banjosound = 262;
|
||||||
break;
|
break;
|
||||||
case 0:
|
case 0:
|
||||||
g_banjoSong = 272;
|
banjosound = 272;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
g_banjoSong = 273;
|
banjosound = 273;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
A_PlaySound(g_banjoSong, vm.spriteNum);
|
A_PlaySound(banjosound, vm.spriteNum, CHAN_WEAPON);
|
||||||
}
|
}
|
||||||
else if (!S_CheckSoundPlaying(vm.spriteNum, g_banjoSong))
|
else if (!S_CheckSoundPlaying(vm.spriteNum, banjosound))
|
||||||
A_PlaySound(g_banjoSong, vm.spriteNum, CHAN_WEAPON);
|
A_PlaySound(banjosound, vm.spriteNum, CHAN_WEAPON);
|
||||||
continue;
|
continue;
|
||||||
case concmd_motoloopsnd:
|
case concmd_motoloopsnd:
|
||||||
insptr++;
|
insptr++;
|
||||||
|
@ -1004,7 +1004,7 @@ GAMEEXEC_STATIC void VM_Execute(native_t loop)
|
||||||
case concmd_tossweapon:
|
case concmd_tossweapon:
|
||||||
insptr++;
|
insptr++;
|
||||||
// NOTE: assumes that current actor is TILE_APLAYER
|
// NOTE: assumes that current actor is TILE_APLAYER
|
||||||
P_DropWeapon(P_GetP(vm.pSprite));
|
checkweapons(&ps[P_GetP(vm.pSprite)]);
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
case concmd_mikesnd:
|
case concmd_mikesnd:
|
||||||
|
@ -1066,18 +1066,18 @@ GAMEEXEC_STATIC void VM_Execute(native_t loop)
|
||||||
|
|
||||||
case concmd_ifsoundid:
|
case concmd_ifsoundid:
|
||||||
insptr++;
|
insptr++;
|
||||||
VM_CONDITIONAL((int16_t)*insptr == g_ambientLotag[vm.pSprite->ang]);
|
VM_CONDITIONAL((int16_t)*insptr == ambientlotag[vm.pSprite->ang]);
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
case concmd_ifsounddist:
|
case concmd_ifsounddist:
|
||||||
insptr++;
|
insptr++;
|
||||||
if (*insptr == 0)
|
if (*insptr == 0)
|
||||||
{
|
{
|
||||||
VM_CONDITIONAL(g_ambientHitag[vm.pSprite->ang] > vm.playerDist);
|
VM_CONDITIONAL(ambienthitag[vm.pSprite->ang] > vm.playerDist);
|
||||||
}
|
}
|
||||||
else if (*insptr == 1)
|
else if (*insptr == 1)
|
||||||
{
|
{
|
||||||
VM_CONDITIONAL(g_ambientHitag[vm.pSprite->ang] < vm.playerDist);
|
VM_CONDITIONAL(ambienthitag[vm.pSprite->ang] < vm.playerDist);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1088,13 +1088,13 @@ GAMEEXEC_STATIC void VM_Execute(native_t loop)
|
||||||
|
|
||||||
case concmd_soundtag:
|
case concmd_soundtag:
|
||||||
insptr++;
|
insptr++;
|
||||||
A_PlaySound(g_ambientLotag[vm.pSprite->ang], vm.spriteNum);
|
A_PlaySound(ambientlotag[vm.pSprite->ang], vm.spriteNum);
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
case concmd_soundtagonce:
|
case concmd_soundtagonce:
|
||||||
insptr++;
|
insptr++;
|
||||||
if (!S_CheckSoundPlaying(vm.spriteNum, g_ambientLotag[vm.pSprite->ang]))
|
if (!S_CheckSoundPlaying(vm.spriteNum, ambientlotag[vm.pSprite->ang]))
|
||||||
A_PlaySound(g_ambientLotag[vm.pSprite->ang], vm.spriteNum);
|
A_PlaySound(ambientlotag[vm.pSprite->ang], vm.spriteNum);
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
case concmd_soundonce:
|
case concmd_soundonce:
|
||||||
|
@ -1158,7 +1158,7 @@ GAMEEXEC_STATIC void VM_Execute(native_t loop)
|
||||||
|
|
||||||
case concmd_mamaend:
|
case concmd_mamaend:
|
||||||
insptr++;
|
insptr++;
|
||||||
g_player[myconnectindex].ps->level_end_timer = 150;
|
g_player[myconnectindex].ps->MamaEnd = 150;
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
case concmd_ifactorhealthg:
|
case concmd_ifactorhealthg:
|
||||||
|
|
|
@ -4593,9 +4593,9 @@ int16_t WeaponPickupSprites[MAX_WEAPONS] = { KNEE__STATIC, FIRSTGUNSPRITE__STATI
|
||||||
TRIPBOMBSPRITE__STATIC, FREEZESPRITE__STATIC, HEAVYHBOMB__STATIC, SHRINKERSPRITE__STATIC
|
TRIPBOMBSPRITE__STATIC, FREEZESPRITE__STATIC, HEAVYHBOMB__STATIC, SHRINKERSPRITE__STATIC
|
||||||
};
|
};
|
||||||
// this is used for player deaths
|
// this is used for player deaths
|
||||||
void P_DropWeapon(int const playerNum)
|
void checkweapons(DukePlayer_t* const pPlayer)
|
||||||
{
|
{
|
||||||
DukePlayer_t *const pPlayer = g_player[playerNum].ps;
|
int playerNum = sprite[pPlayer->i].yvel;
|
||||||
int const currentWeapon = WW2GI ? PWEAPON(playerNum, pPlayer->curr_weapon, WorksLike) : pPlayer->curr_weapon;
|
int const currentWeapon = WW2GI ? PWEAPON(playerNum, pPlayer->curr_weapon, WorksLike) : pPlayer->curr_weapon;
|
||||||
|
|
||||||
if (RRRA && (g_netServer || numplayers > 1))
|
if (RRRA && (g_netServer || numplayers > 1))
|
||||||
|
|
|
@ -1165,7 +1165,7 @@ static void resetprestat(int playerNum, int gameMode)
|
||||||
{
|
{
|
||||||
g_windTime = 0;
|
g_windTime = 0;
|
||||||
WindDir = 0;
|
WindDir = 0;
|
||||||
g_fakeBubbaCnt = 0;
|
fakebubba_spawn = 0;
|
||||||
RRRA_ExitedLevel = 0;
|
RRRA_ExitedLevel = 0;
|
||||||
g_bellTime = 0;
|
g_bellTime = 0;
|
||||||
g_bellSprite = 0;
|
g_bellSprite = 0;
|
||||||
|
@ -1278,9 +1278,9 @@ static void prelevel(char g)
|
||||||
ufospawnsminion = 0;
|
ufospawnsminion = 0;
|
||||||
pistonsound = 0;
|
pistonsound = 0;
|
||||||
enemysizecheat = 0;
|
enemysizecheat = 0;
|
||||||
g_player[myconnectindex].ps->level_end_timer = 0;
|
g_player[myconnectindex].ps->MamaEnd = 0;
|
||||||
g_mamaSpawnCnt = 15;
|
mamaspawn_count = 15;
|
||||||
g_banjoSong = 0;
|
banjosound = 0;
|
||||||
RRRA_ExitedLevel = 0;
|
RRRA_ExitedLevel = 0;
|
||||||
if (!DEER)
|
if (!DEER)
|
||||||
{
|
{
|
||||||
|
@ -1293,11 +1293,11 @@ static void prelevel(char g)
|
||||||
ps->inv_amount[GET_STEROIDS] = 0;
|
ps->inv_amount[GET_STEROIDS] = 0;
|
||||||
}
|
}
|
||||||
if (ud.level_number == 3 && ud.volume_number == 0)
|
if (ud.level_number == 3 && ud.volume_number == 0)
|
||||||
g_mamaSpawnCnt = 5;
|
mamaspawn_count = 5;
|
||||||
else if (ud.level_number == 2 && ud.volume_number == 1)
|
else if (ud.level_number == 2 && ud.volume_number == 1)
|
||||||
g_mamaSpawnCnt = 10;
|
mamaspawn_count = 10;
|
||||||
else if (ud.level_number == 6 && ud.volume_number == 1)
|
else if (ud.level_number == 6 && ud.volume_number == 1)
|
||||||
g_mamaSpawnCnt = 15;
|
mamaspawn_count = 15;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1306,8 +1306,8 @@ static void prelevel(char g)
|
||||||
Bmemset(shadedsector, 0, sizeof(shadedsector));
|
Bmemset(shadedsector, 0, sizeof(shadedsector));
|
||||||
Bmemset(g_geoSectorWarp, -1, sizeof(g_geoSectorWarp));
|
Bmemset(g_geoSectorWarp, -1, sizeof(g_geoSectorWarp));
|
||||||
Bmemset(g_geoSectorWarp2, -1, sizeof(g_geoSectorWarp2));
|
Bmemset(g_geoSectorWarp2, -1, sizeof(g_geoSectorWarp2));
|
||||||
Bmemset(g_ambientHitag, -1, sizeof(g_ambientHitag));
|
Bmemset(ambienthitag, -1, sizeof(ambienthitag));
|
||||||
Bmemset(g_ambientLotag, -1, sizeof(g_ambientLotag));
|
Bmemset(ambientlotag, -1, sizeof(ambientlotag));
|
||||||
show2dsector.Zero();
|
show2dsector.Zero();
|
||||||
#ifdef LEGACY_ROR
|
#ifdef LEGACY_ROR
|
||||||
Bmemset(ror_protectedsectors, 0, MAXSECTORS);
|
Bmemset(ror_protectedsectors, 0, MAXSECTORS);
|
||||||
|
@ -1324,9 +1324,9 @@ static void prelevel(char g)
|
||||||
{
|
{
|
||||||
g_windTime = 0;
|
g_windTime = 0;
|
||||||
WindDir = 0;
|
WindDir = 0;
|
||||||
g_fakeBubbaCnt = 0;
|
fakebubba_spawn = 0;
|
||||||
RRRA_ExitedLevel = 0;
|
RRRA_ExitedLevel = 0;
|
||||||
g_mamaSpawnCnt = 15; // ???
|
mamaspawn_count = 15; // ???
|
||||||
g_bellTime = 0;
|
g_bellTime = 0;
|
||||||
g_bellSprite = 0;
|
g_bellSprite = 0;
|
||||||
|
|
||||||
|
@ -1532,8 +1532,8 @@ static void prelevel(char g)
|
||||||
G_GameExit("\nToo many ambient effects");
|
G_GameExit("\nToo many ambient effects");
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
g_ambientHitag[g_ambientCnt] = SHT(i);
|
ambienthitag[g_ambientCnt] = SHT(i);
|
||||||
g_ambientLotag[g_ambientCnt] = SLT(i);
|
ambientlotag[g_ambientCnt] = SLT(i);
|
||||||
sprite[i].ang = g_ambientCnt++;
|
sprite[i].ang = g_ambientCnt++;
|
||||||
sprite[i].lotag = 0;
|
sprite[i].lotag = 0;
|
||||||
sprite[i].hitag = 0;
|
sprite[i].hitag = 0;
|
||||||
|
|
|
@ -877,8 +877,8 @@ static const dataspec_t svgm_anmisc[] =
|
||||||
{ 0, &shadedsector[0], sizeof(shadedsector[0]), MAXSECTORS },
|
{ 0, &shadedsector[0], sizeof(shadedsector[0]), MAXSECTORS },
|
||||||
|
|
||||||
{ 0, &g_ambientCnt, sizeof(g_ambientCnt), 1 },
|
{ 0, &g_ambientCnt, sizeof(g_ambientCnt), 1 },
|
||||||
{ 0, &g_ambientHitag[0], sizeof(g_ambientHitag[0]), ARRAY_SIZE(g_ambientHitag) },
|
{ 0, &ambienthitag[0], sizeof(ambienthitag[0]), ARRAY_SIZE(ambienthitag) },
|
||||||
{ 0, &g_ambientLotag[0], sizeof(g_ambientLotag[0]), ARRAY_SIZE(g_ambientLotag) },
|
{ 0, &ambientlotag[0], sizeof(ambientlotag[0]), ARRAY_SIZE(ambientlotag) },
|
||||||
|
|
||||||
{ 0, &g_ufoSpawn, sizeof(g_ufoSpawn), 1 },
|
{ 0, &g_ufoSpawn, sizeof(g_ufoSpawn), 1 },
|
||||||
{ 0, &g_ufoCnt, sizeof(g_ufoCnt), 1 },
|
{ 0, &g_ufoCnt, sizeof(g_ufoCnt), 1 },
|
||||||
|
@ -896,9 +896,9 @@ static const dataspec_t svgm_anmisc[] =
|
||||||
|
|
||||||
{ 0, &g_windTime, sizeof(g_windTime), 1 },
|
{ 0, &g_windTime, sizeof(g_windTime), 1 },
|
||||||
{ 0, &WindDir, sizeof(WindDir), 1 },
|
{ 0, &WindDir, sizeof(WindDir), 1 },
|
||||||
{ 0, &g_fakeBubbaCnt, sizeof(g_fakeBubbaCnt), 1 },
|
{ 0, &fakebubba_spawn, sizeof(fakebubba_spawn), 1 },
|
||||||
{ 0, &g_mamaSpawnCnt, sizeof(g_mamaSpawnCnt), 1 },
|
{ 0, &mamaspawn_count, sizeof(mamaspawn_count), 1 },
|
||||||
{ 0, &g_banjoSong, sizeof(g_banjoSong), 1 },
|
{ 0, &banjosound, sizeof(banjosound), 1 },
|
||||||
{ 0, &g_bellTime, sizeof(g_bellTime), 1 },
|
{ 0, &g_bellTime, sizeof(g_bellTime), 1 },
|
||||||
{ 0, &g_bellSprite, sizeof(g_bellSprite), 1 },
|
{ 0, &g_bellSprite, sizeof(g_bellSprite), 1 },
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue