mirror of
https://github.com/ZDoom/Raze.git
synced 2025-02-20 18:42:26 +00:00
- InitShell / SpawnShell
This commit is contained in:
parent
aef68363b4
commit
7012a77685
6 changed files with 46 additions and 63 deletions
|
@ -181,7 +181,7 @@ CONPIC_ENTRY(STAR_THROW+4,ThrowStar4)
|
|||
#define UZI_RELOAD 2007
|
||||
#endif
|
||||
|
||||
#define UZI_SHELL 2152
|
||||
#define CON_UZI_SHELL 2152
|
||||
|
||||
|
||||
// RIGHT UZI
|
||||
|
@ -204,19 +204,19 @@ CONPIC_ENTRY(UZI_CLIP,UziClip0)
|
|||
//reload
|
||||
CONPIC_ENTRY(UZI_RELOAD,UziReload0)
|
||||
|
||||
CONPIC_ENTRY(UZI_SHELL+0,UziShell0)
|
||||
CONPIC_ENTRY(UZI_SHELL+1,UziShell1)
|
||||
CONPIC_ENTRY(UZI_SHELL+2,UziShell2)
|
||||
CONPIC_ENTRY(UZI_SHELL+3,UziShell3)
|
||||
CONPIC_ENTRY(UZI_SHELL+4,UziShell4)
|
||||
CONPIC_ENTRY(UZI_SHELL+5,UziShell5)
|
||||
CONPIC_ENTRY(CON_UZI_SHELL+0,UziShell0)
|
||||
CONPIC_ENTRY(CON_UZI_SHELL+1,UziShell1)
|
||||
CONPIC_ENTRY(CON_UZI_SHELL+2,UziShell2)
|
||||
CONPIC_ENTRY(CON_UZI_SHELL+3,UziShell3)
|
||||
CONPIC_ENTRY(CON_UZI_SHELL+4,UziShell4)
|
||||
CONPIC_ENTRY(CON_UZI_SHELL+5,UziShell5)
|
||||
|
||||
CONPIC_ENTRY(UZI_SHELL+0,Uzi2Shell0)
|
||||
CONPIC_ENTRY(UZI_SHELL+1,Uzi2Shell1)
|
||||
CONPIC_ENTRY(UZI_SHELL+2,Uzi2Shell2)
|
||||
CONPIC_ENTRY(UZI_SHELL+3,Uzi2Shell3)
|
||||
CONPIC_ENTRY(UZI_SHELL+4,Uzi2Shell4)
|
||||
CONPIC_ENTRY(UZI_SHELL+5,Uzi2Shell5)
|
||||
CONPIC_ENTRY(CON_UZI_SHELL+0,Uzi2Shell0)
|
||||
CONPIC_ENTRY(CON_UZI_SHELL+1,Uzi2Shell1)
|
||||
CONPIC_ENTRY(CON_UZI_SHELL+2,Uzi2Shell2)
|
||||
CONPIC_ENTRY(CON_UZI_SHELL+3,Uzi2Shell3)
|
||||
CONPIC_ENTRY(CON_UZI_SHELL+4,Uzi2Shell4)
|
||||
CONPIC_ENTRY(CON_UZI_SHELL+5,Uzi2Shell5)
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
|
|
|
@ -597,7 +597,7 @@ ANIMATOR QueueFloorBlood; // Weapon.c
|
|||
int QueueFootPrint(short hit_sprite); // Weapon.c
|
||||
int QueueGeneric(short SpriteNum, short pic); // Weapon.c
|
||||
int QueueLoWangs(short SpriteNum); // Weapon.c
|
||||
int SpawnShell(short SpriteNum, short ShellNum); // Weapon.c
|
||||
int SpawnShell(DSWActor* actor, int ShellNum); // JWeapon.c
|
||||
void UnlockKeyLock(short key_num, DSWActor* actor); // JSector.c
|
||||
|
||||
#define MAX_PAIN 5
|
||||
|
|
|
@ -1377,7 +1377,7 @@ int PlayerInitChemBomb(PLAYERp pp)
|
|||
wp->clipdist = 0;
|
||||
|
||||
// wp->ang = NORM_ANGLE(wp->ang - 512);
|
||||
// HelpMissileLateral(w, 800);
|
||||
// HelpMissileLateral(actorNew->GetSpriteIndex(), 800);
|
||||
// wp->ang = NORM_ANGLE(wp->ang + 512);
|
||||
|
||||
MissileSetPos(actorNew->GetSpriteIndex(), DoChemBomb, 1000);
|
||||
|
@ -2240,12 +2240,10 @@ int DoCarryFlag(DSWActor* actor)
|
|||
return false;
|
||||
}
|
||||
|
||||
int
|
||||
DoCarryFlagNoDet(DSWActor* actor)
|
||||
int DoCarryFlagNoDet(DSWActor* actor)
|
||||
{
|
||||
USER* u = actor->u();
|
||||
int Weapon = u->SpriteNum;
|
||||
SPRITEp sp = &sprite[Weapon];
|
||||
SPRITEp sp = &actor->s();
|
||||
|
||||
SPRITEp ap = &u->attachActor->s();
|
||||
USERp au = u->attachActor->u();
|
||||
|
@ -2256,15 +2254,15 @@ DoCarryFlagNoDet(DSWActor* actor)
|
|||
|
||||
|
||||
if (u->flagOwnerActor != nullptr)
|
||||
fu->WaitTics = 30 * 120; // Keep setting respawn tics so it
|
||||
// won't respawn
|
||||
fu->WaitTics = 30 * 120; // Keep setting respawn tics so it won't respawn
|
||||
|
||||
// if no owner then die
|
||||
if (u->attachActor != nullptr)
|
||||
{
|
||||
SPRITEp ap = &u->attachActor->s();
|
||||
|
||||
setspritez_old(Weapon, ap->x, ap->y, SPRITEp_MID(ap));
|
||||
vec3_t pos = { ap->x, ap->y, SPRITEp_MID(ap) };
|
||||
SetActorZ(actor, &pos);
|
||||
sp->ang = NORM_ANGLE(ap->ang + 1536);
|
||||
sp->z = ap->z - DIV2(SPRITEp_SIZE_Z(ap));
|
||||
}
|
||||
|
@ -2357,22 +2355,16 @@ int DoFlag(DSWActor* actor)
|
|||
}
|
||||
|
||||
|
||||
int
|
||||
InitShell(int16_t SpriteNum, int16_t ShellNum)
|
||||
int SpawnShell(DSWActor* actor, int ShellNum)
|
||||
{
|
||||
auto actor = &swActors[SpriteNum];
|
||||
USERp u = User[SpriteNum].Data();
|
||||
USERp u = actor->u();
|
||||
USERp wu;
|
||||
SPRITEp sp = &sprite[SpriteNum], wp;
|
||||
SPRITEp sp = &actor->s(), wp;
|
||||
int nx, ny, nz;
|
||||
short w;
|
||||
short id=0,velocity=0;
|
||||
STATEp p=nullptr;
|
||||
short id=0,velocity=0; STATEp p=nullptr;
|
||||
extern STATE s_UziShellShrap[];
|
||||
extern STATE s_ShotgunShellShrap[];
|
||||
|
||||
#define UZI_SHELL 2152
|
||||
#define SHOT_SHELL 2180
|
||||
|
||||
nx = sp->x;
|
||||
ny = sp->y;
|
||||
|
@ -2393,11 +2385,10 @@ InitShell(int16_t SpriteNum, int16_t ShellNum)
|
|||
break;
|
||||
}
|
||||
|
||||
w = SpawnSprite(STAT_SKIP4, id, p, sp->sectnum,
|
||||
nx, ny, nz, sp->ang, 64);
|
||||
auto actorNew = SpawnActor(STAT_SKIP4, id, p, sp->sectnum, nx, ny, nz, sp->ang, 64);
|
||||
|
||||
wp = &sprite[w];
|
||||
wu = User[w].Data();
|
||||
wp = &actorNew->s();
|
||||
wu = actorNew->u();
|
||||
|
||||
wp->zvel = -(velocity);
|
||||
|
||||
|
@ -2414,17 +2405,17 @@ InitShell(int16_t SpriteNum, int16_t ShellNum)
|
|||
if (ShellNum == -3)
|
||||
{
|
||||
wp->ang = sp->ang;
|
||||
HelpMissileLateral(w,2500);
|
||||
HelpMissileLateral(actorNew->GetSpriteIndex(),2500);
|
||||
wp->ang = NORM_ANGLE(wp->ang-512);
|
||||
HelpMissileLateral(w,1000); // Was 1500
|
||||
HelpMissileLateral(actorNew->GetSpriteIndex(),1000); // Was 1500
|
||||
wp->ang = NORM_ANGLE(wp->ang+712);
|
||||
}
|
||||
else
|
||||
{
|
||||
wp->ang = sp->ang;
|
||||
HelpMissileLateral(w,2500);
|
||||
HelpMissileLateral(actorNew->GetSpriteIndex(),2500);
|
||||
wp->ang = NORM_ANGLE(wp->ang+512);
|
||||
HelpMissileLateral(w,1500);
|
||||
HelpMissileLateral(actorNew->GetSpriteIndex(),1500);
|
||||
wp->ang = NORM_ANGLE(wp->ang-128);
|
||||
}
|
||||
wp->ang += (RANDOM_P2(128<<5)>>5) - DIV2(128);
|
||||
|
@ -2437,9 +2428,9 @@ InitShell(int16_t SpriteNum, int16_t ShellNum)
|
|||
case SHOT_SHELL:
|
||||
wp->z -= Z(13);
|
||||
wp->ang = sp->ang;
|
||||
HelpMissileLateral(w,2500);
|
||||
HelpMissileLateral(actorNew->GetSpriteIndex(),2500);
|
||||
wp->ang = NORM_ANGLE(wp->ang+512);
|
||||
HelpMissileLateral(w,1300);
|
||||
HelpMissileLateral(actorNew->GetSpriteIndex(),1300);
|
||||
wp->ang = NORM_ANGLE(wp->ang-128-64);
|
||||
wp->ang += (RANDOM_P2(128<<5)>>5) - DIV2(128);
|
||||
wp->ang = NORM_ANGLE(wp->ang);
|
||||
|
@ -2450,7 +2441,7 @@ InitShell(int16_t SpriteNum, int16_t ShellNum)
|
|||
break;
|
||||
}
|
||||
|
||||
SetOwner(SpriteNum, w);
|
||||
SetOwner(actor, actorNew);
|
||||
wp->shade = -15;
|
||||
wu->ceiling_dist = Z(1);
|
||||
wu->floor_dist = Z(1);
|
||||
|
|
|
@ -2451,14 +2451,14 @@ SpawnUziShell(PANEL_SPRITEp psp)
|
|||
// LEFT side
|
||||
pp->UziShellLeftAlt = !pp->UziShellLeftAlt;
|
||||
if (pp->UziShellLeftAlt)
|
||||
SpawnShell(pp->PlayerSprite,-3);
|
||||
SpawnShell(pp->Actor(),-3);
|
||||
}
|
||||
else
|
||||
{
|
||||
// RIGHT side
|
||||
pp->UziShellRightAlt = !pp->UziShellRightAlt;
|
||||
if (pp->UziShellRightAlt)
|
||||
SpawnShell(pp->PlayerSprite,-2);
|
||||
SpawnShell(pp->Actor(),-2);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2516,7 +2516,7 @@ void
|
|||
SpawnShotgunShell(PANEL_SPRITEp psp)
|
||||
{
|
||||
PLAYERp pp = psp->PlayerP;
|
||||
SpawnShell(pp->PlayerSprite,-4);
|
||||
SpawnShell(pp->Actor(),-4);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -18760,9 +18760,9 @@ InitEnemyUzi(DSWActor* actor)
|
|||
if (RANDOM_P2(1024<<4)>>4 > 700)
|
||||
{
|
||||
if (u->ID == TOILETGIRL_R0 || u->ID == WASHGIRL_R0 || u->ID == CARGIRL_R0)
|
||||
SpawnShell(SpriteNum,-3);
|
||||
SpawnShell(actor,-3);
|
||||
else
|
||||
SpawnShell(SpriteNum,-2); // Enemy Uzi shell
|
||||
SpawnShell(actor,-2); // Enemy Uzi shell
|
||||
}
|
||||
|
||||
if ((alternate++)>2) alternate = 0;
|
||||
|
@ -20786,21 +20786,6 @@ DoShellShrap(short SpriteNum)
|
|||
}
|
||||
#endif
|
||||
|
||||
int
|
||||
SpawnShell(short SpriteNum, short ShellNum)
|
||||
{
|
||||
extern int InitShell(int16_t SpriteNum, int16_t ShellNum);
|
||||
|
||||
//ShellCount++;
|
||||
//SpawnShrap(SpriteNum,ShellNum); // -2 signifies right Uzi shell
|
||||
// -3 is left Uzi
|
||||
// -4 is Shotgun shell
|
||||
|
||||
InitShell(SpriteNum, ShellNum);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
DoShrapVelocity(int16_t SpriteNum)
|
||||
{
|
||||
|
|
|
@ -51,6 +51,13 @@ extern FOOT_TYPE FootMode;
|
|||
extern int ShellCount;
|
||||
#define MAXSHELLS 32
|
||||
|
||||
enum
|
||||
{
|
||||
UZI_SHELL = 2152,
|
||||
SHOT_SHELL = 2180
|
||||
};
|
||||
|
||||
|
||||
extern short StarQueueHead;
|
||||
extern short StarQueue[MAX_STAR_QUEUE];
|
||||
extern short HoleQueueHead;
|
||||
|
|
Loading…
Reference in a new issue