2021-04-28 18:16:13 +00:00
|
|
|
// contains all global Blood definitions
|
|
|
|
struct Blood native
|
|
|
|
{
|
2021-05-11 20:21:52 +00:00
|
|
|
// POWERUPS /////////////////////////////////////////////////////
|
|
|
|
enum EPowerupType {
|
|
|
|
kPwUpFeatherFall = 12,
|
|
|
|
kPwUpShadowCloak = 13,
|
|
|
|
kPwUpDeathMask = 14,
|
|
|
|
kPwUpJumpBoots = 15,
|
|
|
|
kPwUpTwoGuns = 17,
|
|
|
|
kPwUpDivingSuit = 18,
|
|
|
|
kPwUpGasMask = 19,
|
|
|
|
kPwUpCrystalBall = 21,
|
|
|
|
kPwUpDoppleganger = 23,
|
|
|
|
kPwUpReflectShots = 24,
|
|
|
|
kPwUpBeastVision = 25,
|
|
|
|
kPwUpShadowCloakUseless = 26,
|
|
|
|
kPwUpDeliriumShroom = 28,
|
|
|
|
kPwUpGrowShroom = 29,
|
|
|
|
kPwUpShrinkShroom = 30,
|
|
|
|
kPwUpDeathMaskUseless = 31,
|
|
|
|
kPwUpAsbestArmor = 39,
|
|
|
|
kMaxPowerUps = 51,
|
|
|
|
};
|
|
|
|
|
2022-10-15 21:13:47 +00:00
|
|
|
enum EWeapon
|
|
|
|
{
|
|
|
|
kWeapNone = 0,
|
|
|
|
kWeapPitchFork = 1,
|
|
|
|
kWeapFlareGun = 2,
|
|
|
|
kWeapShotgun = 3,
|
|
|
|
kWeapTommyGun = 4,
|
|
|
|
kWeapNapalm = 5,
|
|
|
|
kWeapDynamite = 6,
|
|
|
|
kWeapSpraycan = 7,
|
|
|
|
kWeapTeslaCannon = 8,
|
|
|
|
kWeapLifeLeech = 9,
|
|
|
|
kWeapVoodooDoll = 10,
|
|
|
|
kWeapProximity = 11,
|
|
|
|
kWeapRemote = 12,
|
|
|
|
kWeapBeast = 13,
|
|
|
|
kWeapMax = 14,
|
|
|
|
};
|
|
|
|
|
|
|
|
|
2021-04-28 18:16:13 +00:00
|
|
|
native static void PlayIntroMusic();
|
|
|
|
native static bool OriginalLoadScreen(); // doing it generically would necessitate exporting the tile manage which we do not want.
|
|
|
|
native static void sndStartSample(int resid, int volume, int channel, bool loop = false, int chanflags = 0);
|
|
|
|
native static void sndStartSampleNamed(String sname, int volume, int channel);
|
2021-05-11 20:21:52 +00:00
|
|
|
native static TextureID PowerupIcon(int pwup);
|
|
|
|
native static BloodPlayer GetViewPlayer();
|
2021-12-30 09:30:21 +00:00
|
|
|
|
2021-05-13 07:31:08 +00:00
|
|
|
// These are just dummies to make the MP statusbar code compile.
|
2021-12-30 09:30:21 +00:00
|
|
|
|
2021-05-13 07:31:08 +00:00
|
|
|
static void GetPlayers(Array<BloodPlayer> players)
|
|
|
|
{
|
|
|
|
players.Clear();
|
|
|
|
players.Push(GetViewPlayer());
|
|
|
|
}
|
|
|
|
static int getGameType()
|
|
|
|
{
|
|
|
|
return 0;
|
|
|
|
}
|
2021-04-28 18:16:13 +00:00
|
|
|
}
|
2021-05-11 16:04:17 +00:00
|
|
|
|
|
|
|
struct PACKINFO // not native!
|
|
|
|
{
|
2021-05-11 20:21:52 +00:00
|
|
|
bool isActive;
|
|
|
|
int curAmount;
|
2021-05-11 16:04:17 +00:00
|
|
|
}
|
|
|
|
|
2023-10-02 19:03:59 +00:00
|
|
|
class BloodPlayer : CorePlayer native
|
2021-05-11 16:04:17 +00:00
|
|
|
{
|
2021-05-11 20:21:52 +00:00
|
|
|
native int GetHealth(); // health is stored in the XSPRITE which cannot be safely exported to scripting at the moment due to pending refactoring.
|
|
|
|
native int powerupCheck(int pwup);
|
2023-10-02 19:03:59 +00:00
|
|
|
|
|
|
|
native readonly BloodActor actor;
|
|
|
|
|
2021-05-11 20:21:52 +00:00
|
|
|
//DUDEINFO* pDudeInfo;
|
|
|
|
//PlayerHorizon horizon;
|
|
|
|
//PlayerAngle angle;
|
|
|
|
native uint8 newWeapon;
|
|
|
|
native int weaponQav;
|
|
|
|
native int qavCallback;
|
|
|
|
native bool isRunning;
|
|
|
|
native int posture; // stand, crouch, swim
|
|
|
|
native int sceneQav; // by NoOne: used to keep qav id
|
2022-10-07 03:27:10 +00:00
|
|
|
native double bobPhase;
|
2021-05-11 20:21:52 +00:00
|
|
|
native int bobAmp;
|
2022-09-12 11:16:31 +00:00
|
|
|
native double bobHeight;
|
|
|
|
native double bobWidth;
|
2021-05-11 20:21:52 +00:00
|
|
|
native int swayAmp;
|
2022-09-12 11:16:31 +00:00
|
|
|
native double swayHeight;
|
|
|
|
native double swayWidth;
|
2021-09-05 07:53:06 +00:00
|
|
|
//native int nSprite;
|
2021-05-11 20:21:52 +00:00
|
|
|
native int lifeMode;
|
2022-09-11 12:09:19 +00:00
|
|
|
native double zView;
|
2022-09-11 12:39:38 +00:00
|
|
|
native double zViewVel;
|
2022-09-11 13:19:19 +00:00
|
|
|
native double zWeapon;
|
2022-09-11 13:21:36 +00:00
|
|
|
native double zWeaponVel;
|
2022-09-28 15:58:22 +00:00
|
|
|
native double slope;
|
2021-05-11 20:21:52 +00:00
|
|
|
native bool isUnderwater;
|
|
|
|
native bool hasKey[8];
|
|
|
|
native int8 hasFlag;
|
|
|
|
native int damageControl[7];
|
|
|
|
native int8 curWeapon;
|
|
|
|
native int8 nextWeapon;
|
|
|
|
native int weaponTimer;
|
|
|
|
native int weaponState;
|
|
|
|
native int weaponAmmo; //rename
|
|
|
|
native bool hasWeapon[14];
|
|
|
|
native int weaponMode[14];
|
|
|
|
native int weaponOrder[2][14];
|
|
|
|
native int ammoCount[12];
|
|
|
|
native bool qavLoop;
|
|
|
|
native int fuseTime;
|
|
|
|
native int throwTime;
|
2022-09-29 11:17:27 +00:00
|
|
|
native double throwPower;
|
2021-05-11 20:21:52 +00:00
|
|
|
//native Aim aim; // world
|
2021-08-29 16:13:15 +00:00
|
|
|
//native int aimTarget; // aim target sprite
|
2021-05-11 20:21:52 +00:00
|
|
|
native int aimTargetsCount;
|
2021-09-05 06:41:44 +00:00
|
|
|
//native short aimTargets[16];
|
2021-05-11 20:21:52 +00:00
|
|
|
native int deathTime;
|
|
|
|
native int pwUpTime[51]; // kMaxPowerUps
|
|
|
|
native int fragCount;
|
|
|
|
native int fragInfo[8];
|
2021-05-13 07:31:08 +00:00
|
|
|
native int teamId;
|
2021-05-11 20:21:52 +00:00
|
|
|
native int underwaterTime;
|
|
|
|
native int bubbleTime;
|
|
|
|
native int restTime;
|
|
|
|
native int kickPower;
|
|
|
|
native int laughCount;
|
|
|
|
native bool godMode;
|
|
|
|
native bool fallScream;
|
|
|
|
native bool cantJump;
|
|
|
|
native int packItemTime; // pack timer
|
|
|
|
native int packItemId; // pack id 1: diving suit, 2: crystal ball, 3: beast vision 4: jump boots
|
|
|
|
native PACKINFO packSlots[5]; // at325 [1]: diving suit, [2]: crystal ball, [3]: beast vision [4]: jump boots
|
|
|
|
native int armor[3]; // armor
|
2021-08-29 16:13:15 +00:00
|
|
|
//native int voodooTarget;
|
2021-05-11 20:21:52 +00:00
|
|
|
native int flickerEffect;
|
|
|
|
native int tiltEffect;
|
|
|
|
native int visibility;
|
|
|
|
native int painEffect;
|
|
|
|
native int blindEffect;
|
|
|
|
native int chokeEffect;
|
|
|
|
native int handTime;
|
|
|
|
native bool hand; // if true, there is hand start choking the player
|
|
|
|
native int pickupEffect;
|
|
|
|
native bool flashEffect; // if true, reduce pPlayer->visibility counter
|
|
|
|
native int quakeEffect;
|
|
|
|
native int player_par;
|
|
|
|
native int nWaterPal;
|
|
|
|
//POSTURE pPosture[kModeMax][kPostureMax];
|
2023-10-02 19:03:59 +00:00
|
|
|
}
|