mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-12-28 12:30:46 +00:00
- wip
# Conflicts: # source/games/duke/src/sbar.cpp
This commit is contained in:
parent
cde100598c
commit
cb54a03d60
16 changed files with 716 additions and 141 deletions
|
@ -65,14 +65,10 @@ bool ceilingspace(int sectnum)
|
|||
{
|
||||
case MOONSKY1:
|
||||
case BIGORBIT1:
|
||||
return !(g_gameType & GAMEFLAG_RRALL);
|
||||
|
||||
case RR_MOONSKY1:
|
||||
case RR_BIGORBIT1:
|
||||
return !!(g_gameType & GAMEFLAG_RRALL);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
return false;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
|
@ -89,14 +85,93 @@ bool floorspace(int sectnum)
|
|||
{
|
||||
case MOONSKY1:
|
||||
case BIGORBIT1:
|
||||
return !(g_gameType & GAMEFLAG_RRALL);
|
||||
|
||||
case RR_MOONSKY1:
|
||||
case RR_BIGORBIT1:
|
||||
return !!(g_gameType & GAMEFLAG_RRALL);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
return false;
|
||||
}
|
||||
|
||||
void addammo(short weapon, struct player_struct* p, short amount)
|
||||
{
|
||||
p->ammo_amount[weapon] += amount;
|
||||
|
||||
if (p->ammo_amount[weapon] > max_ammo_amount[weapon])
|
||||
p->ammo_amount[weapon] = max_ammo_amount[weapon];
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
void addweapon(struct player_struct* p, short weapon)
|
||||
{
|
||||
if (p->gotweapon[weapon] == 0)
|
||||
{
|
||||
p->gotweapon.Set(weapon);
|
||||
if (weapon == SHRINKER_WEAPON)
|
||||
p->gotweapon.Set(GROW_WEAPON);
|
||||
}
|
||||
|
||||
p->random_club_frame = 0;
|
||||
|
||||
if (p->holster_weapon == 0)
|
||||
{
|
||||
p->weapon_pos = -1;
|
||||
p->last_weapon = p->curr_weapon;
|
||||
}
|
||||
else
|
||||
{
|
||||
p->weapon_pos = 10;
|
||||
p->holster_weapon = 0;
|
||||
p->last_weapon = -1;
|
||||
}
|
||||
|
||||
p->kickback_pic = 0;
|
||||
#ifdef EDUKE
|
||||
if (p->curr_weapon != weapon)
|
||||
{
|
||||
short snum;
|
||||
snum = sprite[p->i].yvel;
|
||||
|
||||
SetGameVarID(g_iWeaponVarID, weapon, p->i, snum);
|
||||
if (p->curr_weapon >= 0)
|
||||
{
|
||||
SetGameVarID(g_iWorksLikeVarID, aplWeaponWorksLike[weapon][snum], p->i, snum);
|
||||
}
|
||||
else
|
||||
{
|
||||
SetGameVarID(g_iWorksLikeVarID, -1, p->i, snum);
|
||||
}
|
||||
SetGameVarID(g_iReturnVarID, 0, -1, snum);
|
||||
OnEvent(EVENT_CHANGEWEAPON, p->i, snum, -1);
|
||||
if (GetGameVarID(g_iReturnVarID, -1, snum) == 0)
|
||||
{
|
||||
p->curr_weapon = weapon;
|
||||
}
|
||||
}
|
||||
#else
|
||||
p->curr_weapon = weapon;
|
||||
#endif
|
||||
|
||||
switch (weapon)
|
||||
{
|
||||
case KNEE_WEAPON:
|
||||
case TRIPBOMB_WEAPON:
|
||||
case HANDREMOTE_WEAPON:
|
||||
case HANDBOMB_WEAPON:
|
||||
break;
|
||||
case SHOTGUN_WEAPON:
|
||||
spritesound(SHOTGUN_COCK, p->i);
|
||||
break;
|
||||
case PISTOL_WEAPON:
|
||||
spritesound(INSERT_CLIP, p->i);
|
||||
break;
|
||||
default:
|
||||
spritesound(SELECT_WEAPON, p->i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
|
@ -107,8 +182,6 @@ bool floorspace(int sectnum)
|
|||
|
||||
bool ifsquished(int i, int p)
|
||||
{
|
||||
if (g_gameType & GAMEFLAG_RRALL) return false; // this function is a no-op in RR's source.
|
||||
|
||||
bool squishme = false;
|
||||
if (sprite[i].picnum == TILE_APLAYER && ud.clipping)
|
||||
return false;
|
||||
|
|
|
@ -5882,7 +5882,7 @@ DETONATEB:
|
|||
P_AddAmmo(pPlayer, RPG_WEAPON, 1);
|
||||
A_PlaySound(DUKE_GET, pPlayer->i);
|
||||
|
||||
if ((pPlayer->gotweapon & (1<<HANDBOMB_WEAPON)) == 0 || pSprite->owner == pPlayer->i)
|
||||
if ((pPlayer->gotweapon[HANDBOMB_WEAPON]) == 0 || pSprite->owner == pPlayer->i)
|
||||
P_AddWeapon(pPlayer, HANDBOMB_WEAPON);
|
||||
|
||||
if (sprite[pSprite->owner].picnum != TILE_APLAYER)
|
||||
|
|
|
@ -433,7 +433,7 @@ void G_DoCheats(void)
|
|||
for (bssize_t weaponNum = PISTOL_WEAPON; weaponNum < weaponLimit; weaponNum++)
|
||||
{
|
||||
P_AddAmmo(pPlayer, weaponNum, pPlayer->max_ammo_amount[weaponNum]);
|
||||
pPlayer->gotweapon |= (1<<weaponNum);
|
||||
pPlayer->gotweapon.Set(weaponNum);
|
||||
}
|
||||
|
||||
if (RRRA) pPlayer->ammo_amount[SLINGBLADE_WEAPON] = 1;
|
||||
|
@ -568,7 +568,7 @@ void G_DoCheats(void)
|
|||
int const weaponLimit = (VOLUMEONE) ? SHRINKER_WEAPON : MAX_WEAPONS;
|
||||
|
||||
for (bssize_t weaponNum = PISTOL_WEAPON; weaponNum < weaponLimit; weaponNum++)
|
||||
pPlayer->gotweapon |= (1 << weaponNum);
|
||||
pPlayer->gotweapon.Set(weaponNum);
|
||||
|
||||
for (bssize_t weaponNum = PISTOL_WEAPON; weaponNum < weaponLimit; weaponNum++)
|
||||
P_AddAmmo(pPlayer, weaponNum, pPlayer->max_ammo_amount[weaponNum]);
|
||||
|
@ -786,7 +786,7 @@ void G_DoCheats(void)
|
|||
|
||||
case CHEAT_RARHETT:
|
||||
ud.god = 0;
|
||||
pPlayer->gotweapon = 1<<KNEE_WEAPON;
|
||||
pPlayer->gotweapon.Set(KNEE_WEAPON);
|
||||
pPlayer->curr_weapon = KNEE_WEAPON;
|
||||
pPlayer->nocheat = 1;
|
||||
sprite[pPlayer->i].extra = 1;
|
||||
|
@ -852,7 +852,7 @@ void G_DoCheats(void)
|
|||
case CHEAT_RAMIKAEL:
|
||||
for (bssize_t weaponNum = PISTOL_WEAPON; weaponNum < MAX_WEAPONS; weaponNum++)
|
||||
{
|
||||
pPlayer->gotweapon |= 1 << weaponNum;
|
||||
pPlayer->gotweapon.Set(weaponNum);
|
||||
pPlayer->ammo_amount[weaponNum] = 66;
|
||||
}
|
||||
|
||||
|
|
|
@ -228,7 +228,7 @@ void G_OnMotorcycle(DukePlayer_t *pPlayer, int spriteNum)
|
|||
pPlayer->on_motorcycle = 1;
|
||||
pPlayer->last_full_weapon = pPlayer->curr_weapon;
|
||||
pPlayer->curr_weapon = MOTORCYCLE_WEAPON;
|
||||
pPlayer->gotweapon |= (1 << MOTORCYCLE_WEAPON);
|
||||
pPlayer->gotweapon.Set(MOTORCYCLE_WEAPON);
|
||||
pPlayer->vel.x = 0;
|
||||
pPlayer->vel.y = 0;
|
||||
pPlayer->q16horiz = F16(100);
|
||||
|
@ -253,7 +253,7 @@ void G_OffMotorcycle(DukePlayer_t *pPlayer)
|
|||
if (!A_CheckSoundPlaying(pPlayer->i,42))
|
||||
A_PlaySound(42, pPlayer->i);
|
||||
pPlayer->on_motorcycle = 0;
|
||||
pPlayer->gotweapon &= ~(1<<MOTORCYCLE_WEAPON);
|
||||
pPlayer->gotweapon.Clear(MOTORCYCLE_WEAPON);
|
||||
pPlayer->curr_weapon = pPlayer->last_full_weapon;
|
||||
P_CheckWeapon(pPlayer);
|
||||
pPlayer->q16horiz = F16(100);
|
||||
|
@ -293,7 +293,7 @@ void G_OnBoat(DukePlayer_t *pPlayer, int spriteNum)
|
|||
pPlayer->on_boat = 1;
|
||||
pPlayer->last_full_weapon = pPlayer->curr_weapon;
|
||||
pPlayer->curr_weapon = BOAT_WEAPON;
|
||||
pPlayer->gotweapon |= (1<<BOAT_WEAPON);
|
||||
pPlayer->gotweapon.Set(BOAT_WEAPON);
|
||||
pPlayer->vel.x = 0;
|
||||
pPlayer->vel.y = 0;
|
||||
pPlayer->q16horiz = F16(100);
|
||||
|
@ -306,7 +306,7 @@ void G_OffBoat(DukePlayer_t *pPlayer)
|
|||
if (pPlayer->on_boat)
|
||||
{
|
||||
pPlayer->on_boat = 0;
|
||||
pPlayer->gotweapon &= ~(1<<BOAT_WEAPON);
|
||||
pPlayer->gotweapon.Clear(BOAT_WEAPON);
|
||||
pPlayer->curr_weapon = pPlayer->last_full_weapon;
|
||||
P_CheckWeapon(pPlayer);
|
||||
pPlayer->q16horiz = F16(100);
|
||||
|
@ -6935,7 +6935,6 @@ void app_loop();
|
|||
|
||||
// TODO: reorder (net)actor_t to eliminate slop and update assertion
|
||||
EDUKE32_STATIC_ASSERT(sizeof(actor_t)%4 == 0);
|
||||
EDUKE32_STATIC_ASSERT(sizeof(DukePlayer_t)%4 == 0);
|
||||
|
||||
static const char* actions[] = {
|
||||
"Move_Forward",
|
||||
|
|
|
@ -1028,19 +1028,19 @@ void G_DoGameStartup(const int32_t *params)
|
|||
g_bouncemineRadius = params[j++];
|
||||
g_seenineRadius = params[j++];
|
||||
|
||||
g_player[0].ps->max_ammo_amount[1] = params[j++];
|
||||
g_player[0].ps->max_ammo_amount[2] = params[j++];
|
||||
g_player[0].ps->max_ammo_amount[3] = params[j++];
|
||||
g_player[0].ps->max_ammo_amount[4] = params[j++];
|
||||
g_player[0].ps->max_ammo_amount[5] = params[j++];
|
||||
g_player[0].ps->max_ammo_amount[6] = params[j++];
|
||||
g_player[0].ps->max_ammo_amount[7] = params[j++];
|
||||
g_player[0].ps->max_ammo_amount[8] = params[j++];
|
||||
g_player[0].ps->max_ammo_amount[9] = params[j++];
|
||||
g_player[0].ps->max_ammo_amount[11] = params[j++];
|
||||
max_ammo_amount[1] = g_player[0].ps->max_ammo_amount[1] = params[j++];
|
||||
max_ammo_amount[2] = g_player[0].ps->max_ammo_amount[2] = params[j++];
|
||||
max_ammo_amount[3] = g_player[0].ps->max_ammo_amount[3] = params[j++];
|
||||
max_ammo_amount[4] = g_player[0].ps->max_ammo_amount[4] = params[j++];
|
||||
max_ammo_amount[5] = g_player[0].ps->max_ammo_amount[5] = params[j++];
|
||||
max_ammo_amount[6] = g_player[0].ps->max_ammo_amount[6] = params[j++];
|
||||
max_ammo_amount[7] = g_player[0].ps->max_ammo_amount[7] = params[j++];
|
||||
max_ammo_amount[8] = g_player[0].ps->max_ammo_amount[8] = params[j++];
|
||||
max_ammo_amount[9] = g_player[0].ps->max_ammo_amount[9] = params[j++];
|
||||
max_ammo_amount[11] = g_player[0].ps->max_ammo_amount[11] = params[j++];
|
||||
|
||||
if (RR)
|
||||
g_player[0].ps->max_ammo_amount[12] = params[j++];
|
||||
max_ammo_amount[12] = g_player[0].ps->max_ammo_amount[12] = params[j++];
|
||||
|
||||
g_damageCameras = params[j++];
|
||||
g_numFreezeBounces = params[j++];
|
||||
|
@ -1050,9 +1050,9 @@ void G_DoGameStartup(const int32_t *params)
|
|||
|
||||
if (RRRA)
|
||||
{
|
||||
g_player[0].ps->max_ammo_amount[13] = params[j++];
|
||||
g_player[0].ps->max_ammo_amount[14] = params[j++];
|
||||
g_player[0].ps->max_ammo_amount[16] = params[j++];
|
||||
max_ammo_amount[13] = g_player[0].ps->max_ammo_amount[13] = params[j++];
|
||||
max_ammo_amount[14] = g_player[0].ps->max_ammo_amount[14] = params[j++];
|
||||
max_ammo_amount[16] = g_player[0].ps->max_ammo_amount[16] = params[j++];
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -879,7 +879,7 @@ static void VM_AddWeapon(DukePlayer_t * const pPlayer, int const weaponNum, int
|
|||
return;
|
||||
}
|
||||
|
||||
if ((pPlayer->gotweapon & (1 << weaponNum)) == 0)
|
||||
if ((pPlayer->gotweapon[weaponNum]) == 0)
|
||||
{
|
||||
P_AddWeapon(pPlayer, weaponNum);
|
||||
}
|
||||
|
@ -891,7 +891,7 @@ static void VM_AddWeapon(DukePlayer_t * const pPlayer, int const weaponNum, int
|
|||
|
||||
P_AddAmmo(pPlayer, weaponNum, nAmount);
|
||||
|
||||
if (pPlayer->curr_weapon == KNEE_WEAPON && (pPlayer->gotweapon & (1<<weaponNum)))
|
||||
if (pPlayer->curr_weapon == KNEE_WEAPON && (pPlayer->gotweapon[weaponNum]))
|
||||
P_AddWeapon(pPlayer, weaponNum);
|
||||
}
|
||||
|
||||
|
@ -911,7 +911,7 @@ static void VM_AddAmmo(DukePlayer_t * const pPlayer, int const weaponNum, int co
|
|||
|
||||
P_AddAmmo(pPlayer, weaponNum, nAmount);
|
||||
|
||||
if (pPlayer->curr_weapon == KNEE_WEAPON && (pPlayer->gotweapon & (1<<weaponNum)))
|
||||
if (pPlayer->curr_weapon == KNEE_WEAPON && (pPlayer->gotweapon[weaponNum]))
|
||||
P_AddWeapon(pPlayer, weaponNum);
|
||||
}
|
||||
|
||||
|
|
|
@ -2921,47 +2921,6 @@ void freehashnames(void)
|
|||
}
|
||||
#endif
|
||||
|
||||
|
||||
static struct dynitem g_dynWeaponList[] =
|
||||
{
|
||||
{ "KNEE_WEAPON", DVPTR(KNEE_WEAPON), KNEE_WEAPON__STATIC, KNEE_WEAPON__STATIC },
|
||||
{ "PISTOL_WEAPON", DVPTR(PISTOL_WEAPON), PISTOL_WEAPON__STATIC, PISTOL_WEAPON__STATIC },
|
||||
{ "SHOTGUN_WEAPON", DVPTR(SHOTGUN_WEAPON), SHOTGUN_WEAPON__STATIC, SHOTGUN_WEAPON__STATIC },
|
||||
{ "CHAINGUN_WEAPON", DVPTR(CHAINGUN_WEAPON), CHAINGUN_WEAPON__STATIC, CHAINGUN_WEAPON__STATIC },
|
||||
{ "RPG_WEAPON", DVPTR(RPG_WEAPON), RPG_WEAPON__STATIC, HANDBOMB_WEAPON__STATIC },
|
||||
{ "HANDBOMB_WEAPON", DVPTR(HANDBOMB_WEAPON), HANDBOMB_WEAPON__STATIC, RPG_WEAPON__STATIC },
|
||||
{ "SHRINKER_WEAPON", DVPTR(SHRINKER_WEAPON), SHRINKER_WEAPON__STATIC, SHRINKER_WEAPON__STATIC },
|
||||
{ "DEVISTATOR_WEAPON", DVPTR(DEVISTATOR_WEAPON), DEVISTATOR_WEAPON__STATIC, FREEZE_WEAPON__STATIC },
|
||||
{ "TRIPBOMB_WEAPON", DVPTR(TRIPBOMB_WEAPON), TRIPBOMB_WEAPON__STATIC, TRIPBOMB_WEAPON__STATIC },
|
||||
{ "FREEZE_WEAPON", DVPTR(FREEZE_WEAPON), FREEZE_WEAPON__STATIC, DEVISTATOR_WEAPON__STATIC },
|
||||
{ "HANDREMOTE_WEAPON", DVPTR(HANDREMOTE_WEAPON), HANDREMOTE_WEAPON__STATIC, HANDREMOTE_WEAPON__STATIC },
|
||||
{ "GROW_WEAPON", DVPTR(GROW_WEAPON), GROW_WEAPON__STATIC, GROW_WEAPON__STATIC },
|
||||
{ "BOWLINGBALL_WEAPON", DVPTR(BOWLINGBALL_WEAPON), BOWLINGBALL_WEAPON__STATIC, BOWLINGBALL_WEAPON__STATIC },
|
||||
{ "MOTORCYCLE_WEAPON", DVPTR(MOTORCYCLE_WEAPON), MOTORCYCLE_WEAPON__STATIC, MOTORCYCLE_WEAPON__STATIC },
|
||||
{ "BOAT_WEAPON", DVPTR(BOAT_WEAPON), BOAT_WEAPON__STATIC, BOAT_WEAPON__STATIC },
|
||||
{ "SLINGBLADE_WEAPON", DVPTR(SLINGBLADE_WEAPON), SLINGBLADE_WEAPON__STATIC, SLINGBLADE_WEAPON__STATIC },
|
||||
{ "CHICKEN_WEAPON", DVPTR(CHICKEN_WEAPON), CHICKEN_WEAPON__STATIC, CHICKEN_WEAPON__STATIC },
|
||||
{ NULL, NULL, -1, -1 },
|
||||
};
|
||||
|
||||
int32_t KNEE_WEAPON = KNEE_WEAPON__STATIC;
|
||||
int32_t PISTOL_WEAPON = PISTOL_WEAPON__STATIC;
|
||||
int32_t SHOTGUN_WEAPON = SHOTGUN_WEAPON__STATIC;
|
||||
int32_t CHAINGUN_WEAPON = CHAINGUN_WEAPON__STATIC;
|
||||
int32_t RPG_WEAPON = RPG_WEAPON__STATIC;
|
||||
int32_t HANDBOMB_WEAPON = HANDBOMB_WEAPON__STATIC;
|
||||
int32_t SHRINKER_WEAPON = SHRINKER_WEAPON__STATIC;
|
||||
int32_t DEVISTATOR_WEAPON = DEVISTATOR_WEAPON__STATIC;
|
||||
int32_t TRIPBOMB_WEAPON = TRIPBOMB_WEAPON__STATIC;
|
||||
int32_t FREEZE_WEAPON = FREEZE_WEAPON__STATIC;
|
||||
int32_t HANDREMOTE_WEAPON = HANDREMOTE_WEAPON__STATIC;
|
||||
int32_t GROW_WEAPON = GROW_WEAPON__STATIC;
|
||||
int32_t BOWLINGBALL_WEAPON = BOWLINGBALL_WEAPON__STATIC;
|
||||
int32_t MOTORCYCLE_WEAPON = MOTORCYCLE_WEAPON__STATIC;
|
||||
int32_t BOAT_WEAPON = BOAT_WEAPON__STATIC;
|
||||
int32_t SLINGBLADE_WEAPON = SLINGBLADE_WEAPON__STATIC;
|
||||
int32_t CHICKEN_WEAPON = CHICKEN_WEAPON__STATIC;
|
||||
|
||||
// This is run after all CON define's have been processed to set up the
|
||||
// dynamic->static tile mapping.
|
||||
void G_InitDynamicTiles(void)
|
||||
|
@ -2978,9 +2937,6 @@ void G_InitDynamicTiles(void)
|
|||
DynamicTileMap[*(g_dynTileList[i].dynvalptr)] = g_dynTileList[i].staticval_rr;
|
||||
NameToTileIndex.Insert(g_dynTileList[i].str, *(g_dynTileList[i].dynvalptr));
|
||||
}
|
||||
for (i = 0; g_dynWeaponList[i].staticval >= 0; i++)
|
||||
*(g_dynWeaponList[i].dynvalptr) = g_dynWeaponList[i].staticval_rr;
|
||||
|
||||
PHEIGHT = PHEIGHT_RR;
|
||||
}
|
||||
|
||||
|
@ -2991,9 +2947,6 @@ void G_InitDynamicTiles(void)
|
|||
NameToTileIndex.Insert(g_dynTileList[i].str, *(g_dynTileList[i].dynvalptr));
|
||||
}
|
||||
|
||||
for (i=0; g_dynWeaponList[i].staticval >= 0; i++)
|
||||
DynamicWeaponMap[*(g_dynWeaponList[i].dynvalptr)] = g_dynWeaponList[i].staticval;
|
||||
|
||||
DynamicTileMap[0] = 0;
|
||||
|
||||
g_blimpSpawnItems[0] = TILE_RPGSPRITE;
|
||||
|
|
|
@ -3571,25 +3571,28 @@ enum dukeweapon_t
|
|||
MAX_WEAPONS
|
||||
};
|
||||
|
||||
extern int16_t DynamicWeaponMap[MAX_WEAPONS];
|
||||
enum dukeweapon_t_alt
|
||||
{
|
||||
KNEE_WEAPON, // 0
|
||||
PISTOL_WEAPON,
|
||||
SHOTGUN_WEAPON,
|
||||
CHAINGUN_WEAPON,
|
||||
RPG_WEAPON,
|
||||
HANDBOMB_WEAPON, // 5
|
||||
SHRINKER_WEAPON,
|
||||
DEVISTATOR_WEAPON,
|
||||
TRIPBOMB_WEAPON,
|
||||
FREEZE_WEAPON,
|
||||
HANDREMOTE_WEAPON, // 10
|
||||
GROW_WEAPON,
|
||||
BOWLINGBALL_WEAPON,
|
||||
MOTORCYCLE_WEAPON,
|
||||
BOAT_WEAPON,
|
||||
SLINGBLADE_WEAPON, // 15
|
||||
CHICKEN_WEAPON,
|
||||
};
|
||||
|
||||
extern int32_t KNEE_WEAPON;
|
||||
extern int32_t PISTOL_WEAPON;
|
||||
extern int32_t SHOTGUN_WEAPON;
|
||||
extern int32_t CHAINGUN_WEAPON;
|
||||
extern int32_t RPG_WEAPON;
|
||||
extern int32_t HANDBOMB_WEAPON;
|
||||
extern int32_t SHRINKER_WEAPON;
|
||||
extern int32_t DEVISTATOR_WEAPON;
|
||||
extern int32_t TRIPBOMB_WEAPON;
|
||||
extern int32_t FREEZE_WEAPON;
|
||||
extern int32_t HANDREMOTE_WEAPON;
|
||||
extern int32_t GROW_WEAPON;
|
||||
extern int32_t BOWLINGBALL_WEAPON;
|
||||
extern int32_t MOTORCYCLE_WEAPON;
|
||||
extern int32_t BOAT_WEAPON;
|
||||
extern int32_t SLINGBLADE_WEAPON;
|
||||
extern int32_t CHICKEN_WEAPON;
|
||||
extern int16_t DynamicWeaponMap[MAX_WEAPONS];
|
||||
|
||||
#define DYNAMICWEAPONMAP(Weaponnum) (DynamicWeaponMap[Weaponnum])
|
||||
|
||||
|
|
|
@ -4605,7 +4605,7 @@ void P_DropWeapon(int const playerNum)
|
|||
sprite[newSprite].ang = fix16_to_int(pPlayer->q16ang);
|
||||
sprite[newSprite].owner = pPlayer->ammo_amount[MOTORCYCLE_WEAPON];
|
||||
pPlayer->on_motorcycle = 0;
|
||||
pPlayer->gotweapon &= ~(1<<MOTORCYCLE_WEAPON);
|
||||
pPlayer->gotweapon.Clear(MOTORCYCLE_WEAPON);
|
||||
pPlayer->q16horiz = F16(100);
|
||||
pPlayer->moto_do_bump = 0;
|
||||
pPlayer->moto_speed = 0;
|
||||
|
@ -4621,7 +4621,7 @@ void P_DropWeapon(int const playerNum)
|
|||
sprite[newSprite].ang = fix16_to_int(pPlayer->q16ang);
|
||||
sprite[newSprite].owner = pPlayer->ammo_amount[BOAT_WEAPON];
|
||||
pPlayer->on_boat = 0;
|
||||
pPlayer->gotweapon &= ~(1<<BOAT_WEAPON);
|
||||
pPlayer->gotweapon.Clear(BOAT_WEAPON);
|
||||
pPlayer->q16horiz = F16(100);
|
||||
pPlayer->moto_do_bump = 0;
|
||||
pPlayer->moto_speed = 0;
|
||||
|
@ -4689,34 +4689,34 @@ void P_AddWeapon(DukePlayer_t *pPlayer, int weaponNum)
|
|||
|
||||
if (pPlayer->on_motorcycle || pPlayer->on_boat)
|
||||
{
|
||||
pPlayer->gotweapon |= (1<<weaponNum);
|
||||
pPlayer->gotweapon.Set(weaponNum);
|
||||
|
||||
if (weaponNum == SHRINKER_WEAPON)
|
||||
{
|
||||
pPlayer->gotweapon |= (1<<GROW_WEAPON);
|
||||
pPlayer->gotweapon.Set(GROW_WEAPON);
|
||||
pPlayer->ammo_amount[GROW_WEAPON] = 1;
|
||||
}
|
||||
else if (weaponNum == RPG_WEAPON)
|
||||
pPlayer->gotweapon |= (1<<CHICKEN_WEAPON);
|
||||
pPlayer->gotweapon.Set(CHICKEN_WEAPON);
|
||||
else if (weaponNum == SLINGBLADE_WEAPON)
|
||||
pPlayer->ammo_amount[SLINGBLADE_WEAPON] = 1;
|
||||
return;
|
||||
}
|
||||
|
||||
if ((pPlayer->gotweapon & (1<<weaponNum)) == 0)
|
||||
if ((pPlayer->gotweapon[weaponNum]) == 0)
|
||||
{
|
||||
pPlayer->gotweapon |= (1<<weaponNum);
|
||||
pPlayer->gotweapon.Set(weaponNum);
|
||||
|
||||
if (weaponNum == SHRINKER_WEAPON)
|
||||
{
|
||||
pPlayer->gotweapon |= (1<<GROW_WEAPON);
|
||||
pPlayer->gotweapon.Set(GROW_WEAPON);
|
||||
if (RR)
|
||||
pPlayer->ammo_amount[GROW_WEAPON] = 1;
|
||||
}
|
||||
if (RRRA)
|
||||
{
|
||||
if (weaponNum == RPG_WEAPON)
|
||||
pPlayer->gotweapon |= (1<<CHICKEN_WEAPON);
|
||||
pPlayer->gotweapon.Set(CHICKEN_WEAPON);
|
||||
else if (weaponNum == SLINGBLADE_WEAPON)
|
||||
pPlayer->ammo_amount[SLINGBLADE_WEAPON] = 50;
|
||||
}
|
||||
|
@ -4796,7 +4796,7 @@ void P_CheckWeapon(DukePlayer_t *pPlayer)
|
|||
if (weaponNum == pPlayer->curr_weapon)
|
||||
return;
|
||||
|
||||
if ((pPlayer->gotweapon & (1<<weaponNum)) && pPlayer->ammo_amount[weaponNum] > 0)
|
||||
if ((pPlayer->gotweapon[weaponNum]) && pPlayer->ammo_amount[weaponNum] > 0)
|
||||
{
|
||||
P_AddWeapon(pPlayer, weaponNum);
|
||||
return;
|
||||
|
@ -4805,7 +4805,7 @@ void P_CheckWeapon(DukePlayer_t *pPlayer)
|
|||
|
||||
weaponNum = pPlayer->curr_weapon;
|
||||
|
||||
if ((pPlayer->gotweapon & (1<<weaponNum)) && pPlayer->ammo_amount[weaponNum] > 0)
|
||||
if ((pPlayer->gotweapon[weaponNum]) && pPlayer->ammo_amount[weaponNum] > 0)
|
||||
return;
|
||||
|
||||
playerNum = P_Get(pPlayer->i);
|
||||
|
@ -4822,7 +4822,7 @@ void P_CheckWeapon(DukePlayer_t *pPlayer)
|
|||
weaponNum = RR ? DEVISTATOR_WEAPON : FREEZE_WEAPON;
|
||||
else weaponNum--;
|
||||
|
||||
if (weaponNum == KNEE_WEAPON || ((pPlayer->gotweapon & (1<<weaponNum)) && pPlayer->ammo_amount[weaponNum] > 0))
|
||||
if (weaponNum == KNEE_WEAPON || ((pPlayer->gotweapon[weaponNum]) && pPlayer->ammo_amount[weaponNum] > 0))
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -5922,7 +5922,7 @@ static void P_ProcessWeapon(int playerNum)
|
|||
if (playerNum == screenpeek)
|
||||
pus = 1;
|
||||
pPlayer->ammo_amount[TRIPBOMB_WEAPON]--;
|
||||
pPlayer->gotweapon &= ~(1<<TRIPBOMB_WEAPON);
|
||||
pPlayer->gotweapon.Clear(TRIPBOMB_WEAPON);
|
||||
if (pPlayer->on_ground && TEST_SYNC_KEY(playerBits, SK_CROUCH) && (!RRRA || !pPlayer->on_motorcycle))
|
||||
{
|
||||
FwdVel = 15;
|
||||
|
@ -5963,7 +5963,7 @@ static void P_ProcessWeapon(int playerNum)
|
|||
if ((*weaponFrame) > 40)
|
||||
{
|
||||
(*weaponFrame) = 0;
|
||||
pPlayer->gotweapon &= ~(1 << BOWLINGBALL_WEAPON);
|
||||
pPlayer->gotweapon.Clear(BOWLINGBALL_WEAPON);
|
||||
P_CheckWeapon(pPlayer);
|
||||
}
|
||||
break;
|
||||
|
@ -9418,4 +9418,6 @@ int P_HasKey(int sectNum, int playerNum)
|
|||
return 0;
|
||||
}
|
||||
|
||||
int16_t max_ammo_amount[MAX_WEAPONS];
|
||||
|
||||
END_DUKE_NS
|
||||
|
|
|
@ -27,6 +27,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|||
#include "namesdyn.h"
|
||||
#include "fix16.h"
|
||||
#include "net.h"
|
||||
#include "tarray.h"
|
||||
|
||||
BEGIN_DUKE_NS
|
||||
|
||||
|
@ -114,7 +115,7 @@ typedef struct {
|
|||
int16_t got_access, last_extra, inv_amount[GET_MAX], curr_weapon, holoduke_on;
|
||||
int16_t last_weapon, weapon_pos, kickback_pic;
|
||||
int16_t ammo_amount[MAX_WEAPONS], frag[MAXPLAYERS];
|
||||
uint32_t gotweapon;
|
||||
FixedBitArray<MAX_WEAPONS> gotweapon;
|
||||
char inven_icon, jetpack_on, heat_on;
|
||||
} DukeStatus_t;
|
||||
|
||||
|
@ -133,7 +134,7 @@ typedef struct {
|
|||
// Need to carefully think about implications!
|
||||
// TODO: rearrange this if the opportunity arises!
|
||||
// KEEPINSYNC lunatic/_defs_game.lua
|
||||
typedef struct {
|
||||
typedef struct player_struct {
|
||||
vec3_t pos, opos, vel, npos;
|
||||
vec2_t bobpos, fric;
|
||||
|
||||
|
@ -147,7 +148,7 @@ typedef struct {
|
|||
|
||||
uint32_t interface_toggle_flag;
|
||||
uint16_t max_actors_killed, actors_killed;
|
||||
uint32_t gotweapon;
|
||||
FixedBitArray<MAX_WEAPONS> gotweapon;
|
||||
uint16_t zoom;
|
||||
|
||||
int16_t loogiex[64], loogiey[64], sbs, sound_pitch;
|
||||
|
@ -381,6 +382,7 @@ static inline int P_GetP(const void *pSprite)
|
|||
|
||||
// Get the player index given an TILE_APLAYER sprite index.
|
||||
static inline int P_Get(int32_t spriteNum) { return P_GetP((const uspritetype *)&sprite[spriteNum]); }
|
||||
extern int16_t max_ammo_amount[MAX_WEAPONS];
|
||||
|
||||
END_DUKE_NS
|
||||
|
||||
|
|
|
@ -973,7 +973,7 @@ void P_ResetStatus(int playerNum)
|
|||
if (pPlayer->on_motorcycle)
|
||||
{
|
||||
pPlayer->on_motorcycle = 0;
|
||||
pPlayer->gotweapon &= ~(1 << MOTORCYCLE_WEAPON);
|
||||
pPlayer->gotweapon.Clear(MOTORCYCLE_WEAPON);
|
||||
pPlayer->curr_weapon = SLINGBLADE_WEAPON;
|
||||
}
|
||||
pPlayer->lotag800kill = 0;
|
||||
|
@ -992,7 +992,7 @@ void P_ResetStatus(int playerNum)
|
|||
if (pPlayer->on_boat)
|
||||
{
|
||||
pPlayer->on_boat = 0;
|
||||
pPlayer->gotweapon &= ~(1 << BOAT_WEAPON);
|
||||
pPlayer->gotweapon.Clear(BOAT_WEAPON);
|
||||
pPlayer->curr_weapon = SLINGBLADE_WEAPON;
|
||||
}
|
||||
pPlayer->not_on_water = 0;
|
||||
|
@ -1030,12 +1030,15 @@ void P_ResetWeapons(int playerNum)
|
|||
pPlayer->weapon_pos = WEAPON_POS_START;
|
||||
pPlayer->curr_weapon = PISTOL_WEAPON;
|
||||
pPlayer->kickback_pic = 5;
|
||||
pPlayer->gotweapon = ((1 << PISTOL_WEAPON) | (1 << KNEE_WEAPON) | (1 << HANDREMOTE_WEAPON));
|
||||
pPlayer->gotweapon.Zero();
|
||||
pPlayer->gotweapon.Set(PISTOL_WEAPON);
|
||||
pPlayer->gotweapon.Set(KNEE_WEAPON);
|
||||
pPlayer->gotweapon.Set(HANDREMOTE_WEAPON);
|
||||
pPlayer->ammo_amount[PISTOL_WEAPON] = min<int16_t>(pPlayer->max_ammo_amount[PISTOL_WEAPON], 48);
|
||||
if (RRRA)
|
||||
{
|
||||
g_chickenWeaponTimer = 0;
|
||||
pPlayer->gotweapon |= (1 << SLINGBLADE_WEAPON);
|
||||
pPlayer->gotweapon.Set(SLINGBLADE_WEAPON);
|
||||
pPlayer->ammo_amount[KNEE_WEAPON] = 1;
|
||||
pPlayer->ammo_amount[SLINGBLADE_WEAPON] = 1;
|
||||
pPlayer->on_motorcycle = 0;
|
||||
|
@ -1974,12 +1977,12 @@ end_vol4a:
|
|||
if (worksLike == PISTOL_WEAPON)
|
||||
{
|
||||
pPlayer->curr_weapon = weaponNum;
|
||||
pPlayer->gotweapon |= (1 << weaponNum);
|
||||
pPlayer->gotweapon.Set(weaponNum);
|
||||
pPlayer->ammo_amount[weaponNum] = min<int16_t>(pPlayer->max_ammo_amount[weaponNum], 48);
|
||||
}
|
||||
else if (worksLike == KNEE_WEAPON || (!RR && worksLike == HANDREMOTE_WEAPON) || (RRRA && worksLike == SLINGBLADE_WEAPON))
|
||||
{
|
||||
pPlayer->gotweapon |= (1 << weaponNum);
|
||||
pPlayer->gotweapon.Set(weaponNum);
|
||||
if (RRRA)
|
||||
pPlayer->ammo_amount[KNEE_WEAPON] = 1;
|
||||
}
|
||||
|
@ -2363,7 +2366,7 @@ int G_EnterLevel(int gameMode)
|
|||
{
|
||||
for (bssize_t i = PISTOL_WEAPON; i < MAX_WEAPONS; i++)
|
||||
g_player[0].ps->ammo_amount[i] = 0;
|
||||
g_player[0].ps->gotweapon &= (1<<KNEE_WEAPON);
|
||||
g_player[0].ps->gotweapon.Clear(KNEE_WEAPON);
|
||||
}
|
||||
|
||||
pPlayer->q16ang = fix16_from_int(lbang);
|
||||
|
@ -2380,8 +2383,8 @@ int G_EnterLevel(int gameMode)
|
|||
{
|
||||
for (bssize_t i = PISTOL_WEAPON; i < MAX_WEAPONS; i++)
|
||||
g_player[0].ps->ammo_amount[i] = 0;
|
||||
g_player[0].ps->gotweapon &= (1<<KNEE_WEAPON);
|
||||
g_player[0].ps->gotweapon |= (1<<SLINGBLADE_WEAPON);
|
||||
g_player[0].ps->gotweapon.Clear(KNEE_WEAPON);
|
||||
g_player[0].ps->gotweapon.Set(SLINGBLADE_WEAPON);
|
||||
g_player[0].ps->ammo_amount[SLINGBLADE_WEAPON] = 1;
|
||||
g_player[0].ps->curr_weapon = SLINGBLADE_WEAPON;
|
||||
}
|
||||
|
@ -2440,7 +2443,7 @@ int G_EnterLevel(int gameMode)
|
|||
P_ResetWeapons(i);
|
||||
P_ResetInventory(i);
|
||||
|
||||
g_player[i].ps->gotweapon &= ~(1 << PISTOL_WEAPON);
|
||||
g_player[i].ps->gotweapon.Clear(PISTOL_WEAPON);
|
||||
g_player[i].ps->ammo_amount[PISTOL_WEAPON] = 0;
|
||||
|
||||
g_player[i].ps->curr_weapon = KNEE_WEAPON;
|
||||
|
|
|
@ -690,7 +690,7 @@ public:
|
|||
auto ShadeForWeapon = [=](int weapon, int optweapon = -1)
|
||||
{
|
||||
// Headache-inducing math at play here.
|
||||
return (((!p->ammo_amount[weapon]) | ((p->gotweapon & (1 << weapon)) == 0)) * 9) + 12 - 18 * ((cw == weapon) || (optweapon != -1 && cw == optweapon));
|
||||
return (((!p->ammo_amount[weapon]) | ((p->gotweapon[weapon]) == 0)) * 9) + 12 - 18 * ((cw == weapon) || (optweapon != -1 && cw == optweapon));
|
||||
};
|
||||
|
||||
DrawWeaponNum(2, x, y, p->ammo_amount[PISTOL_WEAPON], p->max_ammo_amount[PISTOL_WEAPON], 12 - 20 * (cw == PISTOL_WEAPON), 3);
|
||||
|
@ -792,7 +792,7 @@ public:
|
|||
}
|
||||
else
|
||||
{
|
||||
if (p->gotweapon & (1 << (i + 1))) {
|
||||
if (p->gotweapon[i+1]) {
|
||||
DrawGraphic(tileGetTexture(TILE_AMMO_ICON + i), 18 + i * 32, top - 6, DI_ITEM_OFFSETS, 1, 0, 0, sbscale, sbscale);
|
||||
}
|
||||
format.Format("%d", p->ammo_amount[i+1]);
|
||||
|
|
|
@ -3844,7 +3844,7 @@ CHECKINV1:
|
|||
if (currentWeapon == -1) currentWeapon = FREEZE_WEAPON;
|
||||
else if (currentWeapon == 10) currentWeapon = KNEE_WEAPON;
|
||||
|
||||
if ((pPlayer->gotweapon & (1<<currentWeapon)) && pPlayer->ammo_amount[currentWeapon] > 0)
|
||||
if ((pPlayer->gotweapon[currentWeapon]) && pPlayer->ammo_amount[currentWeapon] > 0)
|
||||
{
|
||||
if (!RR && currentWeapon == SHRINKER_WEAPON && pPlayer->subweapon&(1<<GROW_WEAPON))
|
||||
currentWeapon = GROW_WEAPON;
|
||||
|
@ -3852,14 +3852,14 @@ CHECKINV1:
|
|||
break;
|
||||
}
|
||||
else if (!RR && currentWeapon == GROW_WEAPON && pPlayer->ammo_amount[GROW_WEAPON] == 0
|
||||
&& (pPlayer->gotweapon & (1<<SHRINKER_WEAPON)) && pPlayer->ammo_amount[SHRINKER_WEAPON] > 0)
|
||||
&& (pPlayer->gotweapon[SHRINKER_WEAPON]) && pPlayer->ammo_amount[SHRINKER_WEAPON] > 0)
|
||||
{
|
||||
weaponNum = SHRINKER_WEAPON;
|
||||
pPlayer->subweapon &= ~(1<<GROW_WEAPON);
|
||||
break;
|
||||
}
|
||||
else if (!RR && currentWeapon == SHRINKER_WEAPON && pPlayer->ammo_amount[SHRINKER_WEAPON] == 0
|
||||
&& (pPlayer->gotweapon & (1<<SHRINKER_WEAPON)) && pPlayer->ammo_amount[GROW_WEAPON] > 0)
|
||||
&& (pPlayer->gotweapon[SHRINKER_WEAPON]) && pPlayer->ammo_amount[GROW_WEAPON] > 0)
|
||||
{
|
||||
weaponNum = GROW_WEAPON;
|
||||
pPlayer->subweapon |= (1<<GROW_WEAPON);
|
||||
|
@ -3883,7 +3883,7 @@ CHECKINV1:
|
|||
{
|
||||
if (sprite[spriteNum].picnum == TILE_HEAVYHBOMB && sprite[spriteNum].owner == pPlayer->i)
|
||||
{
|
||||
pPlayer->gotweapon |= 1<<HANDREMOTE_WEAPON;
|
||||
pPlayer->gotweapon.Set(HANDREMOTE_WEAPON);
|
||||
weaponNum = HANDREMOTE_WEAPON;
|
||||
break;
|
||||
}
|
||||
|
@ -3992,7 +3992,7 @@ CHECKINV1:
|
|||
playerBits |= BIT(SK_HOLSTER);
|
||||
pPlayer->weapon_pos = WEAPON_POS_LOWER;
|
||||
}
|
||||
else if ((uint32_t)weaponNum < MAX_WEAPONS && (pPlayer->gotweapon & (1<<weaponNum)) && pPlayer->curr_weapon != weaponNum)
|
||||
else if ((uint32_t)weaponNum < MAX_WEAPONS && (pPlayer->gotweapon[weaponNum]) && pPlayer->curr_weapon != weaponNum)
|
||||
switch (DYNAMICWEAPONMAP(weaponNum))
|
||||
{
|
||||
case SLINGBLADE_WEAPON__STATIC:
|
||||
|
@ -4032,7 +4032,7 @@ rrtripbomb_case:
|
|||
case HANDBOMB_WEAPON__STATIC:
|
||||
case TRIPBOMB_WEAPON__STATIC:
|
||||
if (RR && weaponNum == TILE_TRIPBOMB) goto rrtripbomb_case;
|
||||
if (pPlayer->ammo_amount[weaponNum] > 0 && (pPlayer->gotweapon & (1<<weaponNum)))
|
||||
if (pPlayer->ammo_amount[weaponNum] > 0 && (pPlayer->gotweapon[weaponNum]))
|
||||
P_AddWeapon(pPlayer, weaponNum);
|
||||
break;
|
||||
case MOTORCYCLE_WEAPON__STATIC:
|
||||
|
|
|
@ -51,6 +51,10 @@ enum esound_t
|
|||
|
||||
int A_CheckSoundPlaying(int spriteNum, int soundNum, int channel = 0);
|
||||
int A_PlaySound(int soundNum, int spriteNum, int channel = CHAN_AUTO, EChanFlags flags = 0);
|
||||
inline int spritesound(int soundnum, int spritenum)
|
||||
{
|
||||
return A_PlaySound(soundnum, spritenum);
|
||||
}
|
||||
int A_CheckAnySoundPlaying(int spriteNum);
|
||||
int S_CheckSoundPlaying(int soundNum);
|
||||
inline int S_CheckSoundPlaying(int sprnum, int soundNum) { return S_CheckSoundPlaying(soundNum); }
|
||||
|
|
106
source/games/rr/actors.cpp
Normal file
106
source/games/rr/actors.cpp
Normal file
|
@ -0,0 +1,106 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 1996, 2003 - 3D Realms Entertainment
|
||||
Copyright (C) 2000, 2003 - Matt Saettler (EDuke Enhancements)
|
||||
Copyright (C) 2017-2019 - Nuke.YKT
|
||||
Copyright (C) 2020 - Christoph Oelckers
|
||||
|
||||
This file is part of Enhanced Duke Nukem 3D version 1.5 - Atomic Edition
|
||||
|
||||
Duke Nukem 3D is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
See the GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Original Source: 1996 - Todd Replogle
|
||||
Prepared for public release: 03/21/2003 - Charlie Wiederhold, 3D Realms
|
||||
|
||||
EDuke enhancements integrated: 04/13/2003 - Matt Saettler
|
||||
|
||||
Note: EDuke source was in transition. Changes are in-progress in the
|
||||
source as it is released.
|
||||
|
||||
This file is a combination of code from the following sources:
|
||||
- EDuke 2 by Matt Saettler
|
||||
- JFDuke by Jonathon Fowler (jf@jonof.id.au),
|
||||
- DukeGDX and RedneckGDX by Alexander Makarov-[M210] (m210-2007@mail.ru)
|
||||
- Redneck Rampage reconstructed source by Nuke.YKT
|
||||
|
||||
Note:
|
||||
Most of this code follows DukeGDX and RedneckGDX because for Java it had
|
||||
to undo all the macro hackery that make the Duke source extremely hard to read.
|
||||
The other code bases were mainly used to add missing feature support (e.g. WW2GI)
|
||||
and verify correctness.
|
||||
|
||||
*/
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
#include "ns.h"
|
||||
#include "global.h"
|
||||
#include "names.h"
|
||||
|
||||
BEGIN_RR_NS
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
bool ceilingspace(int sectnum)
|
||||
{
|
||||
if ((sector[sectnum].ceilingstat & 1) && sector[sectnum].ceilingpal == 0)
|
||||
{
|
||||
switch (sector[sectnum].ceilingpicnum)
|
||||
{
|
||||
case MOONSKY1:
|
||||
case BIGORBIT1:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
bool floorspace(int sectnum)
|
||||
{
|
||||
if ((sector[sectnum].floorstat & 1) && sector[sectnum].ceilingpal == 0)
|
||||
{
|
||||
switch (sector[sectnum].floorpicnum)
|
||||
{
|
||||
case MOONSKY1:
|
||||
case BIGORBIT1:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
bool ifsquished(int i, int p)
|
||||
{
|
||||
return false; // this function is a no-op in RR's source.
|
||||
}
|
||||
|
||||
|
||||
END_RR_NS
|
430
source/games/rr/names.h
Normal file
430
source/games/rr/names.h
Normal file
|
@ -0,0 +1,430 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 1996, 2003 - 3D Realms Entertainment
|
||||
|
||||
This file is part of Duke Nukem 3D version 1.5 - Atomic Edition
|
||||
|
||||
Duke Nukem 3D is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
See the GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Original Source: 1996 - Todd Replogle
|
||||
Prepared for public release: 03/21/2003 - Charlie Wiederhold, 3D Realms
|
||||
*/
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
enum
|
||||
{
|
||||
GRID = 0,
|
||||
SECTOREFFECTOR = 1,
|
||||
ACTIVATOR = 2,
|
||||
TOUCHPLATE = 3,
|
||||
ACTIVATORLOCKED = 4,
|
||||
MUSICANDSFX = 5,
|
||||
LOCATORS = 6,
|
||||
CYCLER = 7,
|
||||
MASTERSWITCH = 8,
|
||||
RESPAWN = 9,
|
||||
GPSPEED = 10,
|
||||
JAILDOOR = 11,
|
||||
LNRDTAG = 15,
|
||||
SIGN1 = 16,
|
||||
SIGN2 = 17,
|
||||
TORCH = 18,
|
||||
FIRSTGUNSPRITE = 21,
|
||||
RIFLESPRITE = 22,
|
||||
CROSSBOWSPRITE = 23,
|
||||
TEATGUN = 24,
|
||||
BUZSAWSPRITE = 25,
|
||||
DYNAMITE = 26,
|
||||
POWDERKEGSPRITE = 27,
|
||||
SHOTGUNSPRITE = 28,
|
||||
ALIENARMGUN = 29,
|
||||
HEALTHBOX = 30,
|
||||
AMMOBOX = 31,
|
||||
TEATAMMO = 32,
|
||||
INVENTORYBOX = 33,
|
||||
DOORKEYS = 34,
|
||||
LIGHTNIN = 35,
|
||||
DESTRUCTO = 36,
|
||||
JAILSOUND = 38,
|
||||
AMMO = 40,
|
||||
RIFLEAMMO = 41,
|
||||
ALIENBLASTERAMMO = 42,
|
||||
BLADEAMMO = 43,
|
||||
HBOMBAMMO = 47,
|
||||
SHOTGUNAMMO = 49,
|
||||
BEER = 51,
|
||||
PORKBALLS = 52,
|
||||
WHISKEY = 53,
|
||||
MOONSHINE = 55,
|
||||
SNORKLE = 56,
|
||||
COWPIE = 57,
|
||||
DOORKEY = 60,
|
||||
BOOTS = 61,
|
||||
MINECARTKILLER = 67,
|
||||
SHADESECTOR = 68,
|
||||
SOUNDFX = 71,
|
||||
MULTISWITCH = 98,
|
||||
DOORSHOCK = 120,
|
||||
FLOORSLIME = 132,
|
||||
BIGFORCE = 135,
|
||||
SCREENBREAK6 = 164,
|
||||
SCREENBREAK7 = 165,
|
||||
SCREENBREAK8 = 166,
|
||||
FANSPRITEWORK = 210,
|
||||
FANSPRITE = 211,
|
||||
FANSPRITEBROKE = 215,
|
||||
GRATE1 = 234,
|
||||
BGRATE1 = 235,
|
||||
WATERDRIP = 239,
|
||||
WATERBUBBLE = 240,
|
||||
WATERBUBBLEMAKER = 241,
|
||||
W_FORCEFIELD = 242,
|
||||
LIGHTSWITCH2 = 250,
|
||||
UFOBEAM = 252,
|
||||
BOULDER = 256,
|
||||
BOULDER1 = 264,
|
||||
BOWLLINE = 280,
|
||||
CHICKENA = 285,
|
||||
CHICKENC = 286,
|
||||
HEADCHK = 287,
|
||||
FEATHERCHK = 288,
|
||||
LOAF = 289,
|
||||
NUGGETS = 290,
|
||||
PACKEDCHK = 291,
|
||||
BONELESSCHK = 292,
|
||||
JIBSCHK = 293,
|
||||
BIGFNTCURSOR = 512,
|
||||
SMALLFNTCURSOR = 513,
|
||||
STARTALPHANUM = 514,
|
||||
ENDALPHANUM = 607,
|
||||
BIGALPHANUM = 632,
|
||||
BIGPERIOD = 694,
|
||||
BIGCOMMA = 695,
|
||||
BIGX = 696,
|
||||
BIGQ = 697,
|
||||
BIGSEMI = 698,
|
||||
BIGCOLIN = 699,
|
||||
THREEBYFIVE = 702,
|
||||
BIGAPPOS = 714,
|
||||
MINIFONT = 718,
|
||||
RESPAWNMARKERRED = 866,
|
||||
|
||||
MOONSKY1 = 1022,
|
||||
MOONSKY2 = 1023,
|
||||
MOONSKY3 = 1024,
|
||||
MOONSKY4 = 1025,
|
||||
BIGORBIT1 = 1026,
|
||||
BIGORBIT2 = 1027,
|
||||
BIGORBIT3 = 1028,
|
||||
BIGORBIT4 = 1029,
|
||||
BIGORBIT5 =1030,
|
||||
WATERTILE2 = 1045,
|
||||
GLASS = 1056,
|
||||
GLASS2 = 1057,
|
||||
CRACK1 = 1075,
|
||||
CRACK2 = 1076,
|
||||
CRACK3 = 1077,
|
||||
CRACK4 = 1078,
|
||||
FOOTPRINTS = 1079,
|
||||
MIRROR = 1089,
|
||||
WATERFOUNTAIN = 1092,
|
||||
REACTOR = 1107,
|
||||
REACTORBURNT = 1108,
|
||||
REACTORSPARK = 1109,
|
||||
BOLT1 = 1127,
|
||||
|
||||
|
||||
CAMERA1 = 1134,
|
||||
FOOTPRINTS2 = 1144,
|
||||
FOOTPRINTS3 = 1145,
|
||||
FOOTPRINTS4 = 1146,
|
||||
SLIME = 1161,
|
||||
QUEBALL = 1184,
|
||||
STRIPEBALL = 1185,
|
||||
POCKET = 1186,
|
||||
NEON1 = 1200,
|
||||
NEON2 = 1201,
|
||||
BOUNCEMINE = 1204,
|
||||
BULLETHOLE = 1212,
|
||||
TIRE = 1230,
|
||||
NEON3 = 1241,
|
||||
NEON4 = 1242,
|
||||
NEON5 = 1243,
|
||||
GLASSPIECES = 1256,
|
||||
NEON6 = 1264,
|
||||
OOZFILTER = 1273,
|
||||
FLOORPLASMA = 1276,
|
||||
BOTTLE12 = 1282,
|
||||
BOTTLE13 = 1283,
|
||||
BOTTLE14 = 1284,
|
||||
BOTTLE15 = 1285,
|
||||
BOTTLE16 = 1286,
|
||||
BOTTLE17 = 1287,
|
||||
BOTTLE18 = 1288,
|
||||
VENDMACHINE = 1291,
|
||||
VENDMACHINEBROKE = 1293,
|
||||
COLAMACHINE = 1294,
|
||||
COLAMACHINEBROKE = 1296,
|
||||
CRANE = 1299,
|
||||
BLOODPOOL = 1303,
|
||||
CANWITHSOMETHING = 1309,
|
||||
FEATHERS = 1310,
|
||||
BANNER = 1313,
|
||||
SEENINE = 1324,
|
||||
SEENINEDEAD = 1325,
|
||||
STEAM = 1327,
|
||||
CEILINGSTEAM = 1332,
|
||||
TRANSPORTERBEAM = 1338,
|
||||
RAT = 1344,
|
||||
TRASH = 1346,
|
||||
WATERSPLASH2 = 1383,
|
||||
BLOOD = 1391,
|
||||
TRANSPORTERSTAR = 1398,
|
||||
ALIENBLAST = 1409,
|
||||
TONGUE = 1414,
|
||||
MORTER = 1416,
|
||||
MUD = 1420,
|
||||
RADIUSEXPLOSION = 1426,
|
||||
FORCERIPPLE = 1427,
|
||||
INNERJAW = 1439,
|
||||
EXPLOSION2 = 1441,
|
||||
EXPLOSION3 = 1442,
|
||||
JIBS1 = 1463,
|
||||
JIBS2 = 1468,
|
||||
JIBS3 = 1473,
|
||||
JIBS4 = 1478,
|
||||
JIBS5 = 1483,
|
||||
BURNING = 1494,
|
||||
FIRE = 1495,
|
||||
JIBS6 = 1515,
|
||||
BLOODSPLAT1 = 1525,
|
||||
BLOODSPLAT3 = 1526,
|
||||
BLOODSPLAT2 = 1527,
|
||||
BLOODSPLAT4 = 1528,
|
||||
OOZ = 1529,
|
||||
WALLBLOOD1 = 1530,
|
||||
WALLBLOOD2 = 1531,
|
||||
WALLBLOOD3 = 1532,
|
||||
WALLBLOOD4 = 1533,
|
||||
WALLBLOOD5 = 1534,
|
||||
WALLBLOOD6 = 1535,
|
||||
WALLBLOOD7 = 1536,
|
||||
WALLBLOOD8 = 1537,
|
||||
OOZ2 = 1538,
|
||||
BURNING2 = 1539,
|
||||
FIRE2 = 1540,
|
||||
SMALLSMOKE = 1554,
|
||||
SMALLSMOKEMAKER = 1555,
|
||||
SCRAP6 = 1595,
|
||||
SCRAP1 = 1605,
|
||||
SCRAP2 = 1609,
|
||||
SCRAP3 = 1613,
|
||||
SCRAP4 = 1617,
|
||||
SCRAP5 = 1621,
|
||||
F1HELP = 1633,
|
||||
MENUSCREEN = 1641,
|
||||
MENUBAR = 1642,
|
||||
KILLSICON = 1643,
|
||||
WHISHKEY_ICON = 1645,
|
||||
EMPTY_ICON = 1646,
|
||||
BOTTOMSTATUSBAR = 1647,
|
||||
BOOT_ICON = 1648,
|
||||
FRAGBAR = 1650,
|
||||
COWPIE_ICON = 1652,
|
||||
SNORKLE_ICON = 1653,
|
||||
MOONSHINE_ICON = 1654,
|
||||
BEER_ICON = 1655,
|
||||
ACCESS_ICON = 1656,
|
||||
DIGITALNUM = 1657,
|
||||
SLIDEBAR = 1674,
|
||||
WINDOWBORDER1 = 1679,
|
||||
TEXTBOX = 1680,
|
||||
WINDOWBORDER2 = 1681,
|
||||
INGAMELNRDTHREEDEE = 1684,
|
||||
TENSCREEN = 1685,
|
||||
NEWCROSSHAIR = 1689,
|
||||
CROSSHAIR = 1692,
|
||||
SHELL = 1702,
|
||||
SHOTGUNSHELL = 1704,
|
||||
FORCESPHERE = 1759,
|
||||
SHOTSPARK1 = 1764,
|
||||
CROSSBOW = 1774,
|
||||
TORNADO = 1930,
|
||||
TIKILAMP = 1990,
|
||||
POPCORN = 2021,
|
||||
TESLACON = 2056,
|
||||
TESLABALL = 2094,
|
||||
DILDO = 2095,
|
||||
TESLA = 2097,
|
||||
HURTRAIL = 2221,
|
||||
LOCKSWITCH1 = 2224,
|
||||
REACTOR2 = 2239,
|
||||
REACTOR2SPARK = 2243,
|
||||
REACTOR2BURNT = 2247,
|
||||
EXPLOSION2BOT = 2272,
|
||||
SELECTDIR = 2444,
|
||||
VIEWBORDER = 2520,
|
||||
ORDERING = 2531,
|
||||
TEXTSTORY = 2541,
|
||||
LOADSCREEN = 2542,
|
||||
STARSKY2 = 2577,
|
||||
SPINNINGNUKEICON = 896,
|
||||
TOILETPAPER = 2864,
|
||||
BUSTAWIN5A = 2878,
|
||||
BUSTAWIN5B = 2879,
|
||||
BUSTAWIN4A = 2898,
|
||||
BUSTAWIN4B = 2899,
|
||||
FRAMEEFFECT1 = 2999,
|
||||
|
||||
LOAFTILE = 3120,
|
||||
NUGGETTILE = 3122,
|
||||
BROASTEDTILE = 3123,
|
||||
BONELESSTILE = 3124,
|
||||
HEAD1TILE = 3132,
|
||||
HEAD2TILE = 3133,
|
||||
CHICKENATILE = 3190,
|
||||
CHICKENBTILE = 3191,
|
||||
CHICKENCTILE = 3192,
|
||||
|
||||
NEWPISTOL = 3328,
|
||||
NEWPISTOLCOCK = 3336,
|
||||
NEWCROWBAR = 3340,
|
||||
CROWBAR = NEWCROWBAR,
|
||||
NEWSHOTGUN = 3350,
|
||||
SHOTGUN = NEWSHOTGUN,
|
||||
NEWDYNAMITE = 3360,
|
||||
RIFLE = 3380,
|
||||
CIRCLESTUCK = 3388,
|
||||
SHITBALL = 3390,
|
||||
BUZSAW = 3395,
|
||||
CIRCLESAW = 3400,
|
||||
LUMBERBLADE = 3411,
|
||||
FIRELASER = 3420,
|
||||
BOWLINGBALL = 3430,
|
||||
BOWLINGBALLSPRITE = 3437,
|
||||
OWHIP = 3471,
|
||||
UWHIP = 3475,
|
||||
BACKGROUND = 3822,
|
||||
APLAYERTOP = 3840,
|
||||
APLAYER = 3845,
|
||||
PLAYERONWATER = 3860,
|
||||
LNYDLADDER = 3975,
|
||||
LNRDLYINGDEAD = 3998,
|
||||
LNRDGUN = 4041,
|
||||
LNRDTORSO = 4046,
|
||||
LNRLEG = 4055,
|
||||
DOGATTACK = 4060,
|
||||
BILLYWALK = 4096,
|
||||
BILLYDIE = 4137,
|
||||
BILLYCOCK = 4147,
|
||||
BILLYRAY = 4162,
|
||||
BILLYSHOOT = 4162,
|
||||
BILLYRAYSTAYPUT = 4163,
|
||||
BILLYBUT = 4188,
|
||||
BILLYSCRATCH = 4191,
|
||||
BILLYSNIFF = 4195,
|
||||
BILLYWOUND = 4202,
|
||||
BILLYGORE = 4228,
|
||||
BILLYJIBA = 4235,
|
||||
BILLYJIBB = 4244,
|
||||
DOGRUN = 4260,
|
||||
DOGDIE = 4295,
|
||||
DOGDEAD = 4303,
|
||||
DOGBARK = 4305,
|
||||
LTH = 4352,
|
||||
LTHSTRAFE = 4395,
|
||||
LTHLOAD = 4430,
|
||||
LTHDIE = 4456,
|
||||
BUBBASCRATCH = 4464,
|
||||
BUBBANOSE = 4476,
|
||||
BUBBAPISS = 4487,
|
||||
BUBBASTAND = 4504,
|
||||
BUBBAOUCH = 4506,
|
||||
BUBBADIE = 4513,
|
||||
BUBBADEAD = 4523,
|
||||
HULK = 4649,
|
||||
HULKSTAYPUT = 4650,
|
||||
HULKA = 4651,
|
||||
HULKB = 4652,
|
||||
HULKC = 4653,
|
||||
HULKJIBA = 4748,
|
||||
HULKJIBB = 4753,
|
||||
HULKJIBC = 4758,
|
||||
SBSWIPE = 4770,
|
||||
SBPAIN = 4810,
|
||||
SBDIE = 4820,
|
||||
HEN = 4861,
|
||||
HENSTAYPUT = 4862,
|
||||
HENSTAND = 4897,
|
||||
MOSQUITO = 4916,
|
||||
PIG = 4945,
|
||||
PIGSTAYPUT = 4946,
|
||||
PIGEAT = 4983,
|
||||
SBMOVE = 5015,
|
||||
SBSPIT = 5050,
|
||||
SBDIP = 5085,
|
||||
MINION = 5120,
|
||||
MINIONSTAYPUT = 5121,
|
||||
UFO1 = 5270,
|
||||
UFO2 = 5274,
|
||||
UFO3 = 5278,
|
||||
UFO4 = 5282,
|
||||
UFO5 = 5286,
|
||||
MINJIBA = 5290,
|
||||
MINJIBB = 5295,
|
||||
MINJIBC = 5300,
|
||||
COW = 5317,
|
||||
COOT = 5376,
|
||||
COOTSTAYPUT = 5377,
|
||||
COOTSHOOT = 5411,
|
||||
COOTDIE = 5437,
|
||||
COOTDUCK = 5481,
|
||||
COOTPAIN = 5548,
|
||||
COOTTRANS = 5568,
|
||||
COOTGETUP = 5579,
|
||||
ECLAIRHEALTH = 5595,
|
||||
COOTJIBA = 5602,
|
||||
COOTJIBB = 5607,
|
||||
COOTJIBC = 5616,
|
||||
VIXEN = 5635,
|
||||
VIXENPAIN = 5675,
|
||||
VIXENDIE = 5710,
|
||||
VIXENSHOOT = 5720,
|
||||
VIXENWDN = 5740,
|
||||
VIXENWUP = 5775,
|
||||
VIXENKICK = 5805,
|
||||
VIXENTELE = 5845,
|
||||
VIXENTEAT = 5851,
|
||||
|
||||
//RA
|
||||
AIRPLANE = 8450,
|
||||
SWAMPBUGGY = 7233,
|
||||
MOTORCYCLE = 7220,
|
||||
CHIKENCROSSBOW = 1781,
|
||||
BIKERSTAND = 5995,
|
||||
BIKERRIDE = 5890,
|
||||
BIKERRIDEDAISY = 6401,
|
||||
MINIONAIRBOAT = 7192,
|
||||
HULKAIRBOAT = 7199,
|
||||
DAISYMAE = 6658,
|
||||
DAISYAIRBOAT = 7206,
|
||||
MINIONUFO = 5260,
|
||||
JACKOLOPE = 7280,
|
||||
BANJOCOOTER = 7030,
|
||||
GUITARBILLY = 7035,
|
||||
MAMAJACKOLOPE = 8705,
|
||||
|
||||
};
|
Loading…
Reference in a new issue