raze/wadsrc/static/zscript/games/exhumed/exhumedgame.zs

181 lines
3.5 KiB
Text
Raw Normal View History

struct Exhumed native
{
native static void PlayLocalSound(int snd, int pitch, bool b, int chanf);
native static void StopLocalSound();
native static bool LocalSoundPlaying();
native static void playCDTrack(int track, bool looped);
native static void DrawPlasma();
native static Seq GetStatusSequence(int seqId);
native static ExhumedPlayer GetViewPlayer();
native static int GetPistolClip();
native static int GetPlayerClip();
static void DrawAbs(String img, int x, int y, int shade = 0)
{
Screen.DrawTexture(TexMan.CheckForTexture(img, TexMan.Type_Any), false, x, y, DTA_FullscreenScale, FSMode_Fit320x200, DTA_TopLeft, true, DTA_Color, Raze.shadeToLight(shade));
}
static void DrawRel(String img, int x, int y, int shade = 0)
{
let tex = TexMan.CheckForTexture(img, TexMan.Type_Any);
if (!tex.IsValid()) return;
let size = TexMan.GetScaledSize(tex);
let offs = TexMan.GetScaledOffset(tex);
// The integer truncation here is important. Old Build versions were bugged here.
x -= (int(size.x) >> 1) + int(offs.x);
y -= (int(size.y) >> 1) + int(offs.y);
Screen.DrawTexture(tex, false, x, y, DTA_FullscreenScale, FSMode_Fit320x200, DTA_TopLeft, true, DTA_Color, Raze.shadeToLight(shade));
}
}
struct SeqFrameChunk native
{
native int16 xpos;
native int16 ypos;
native TextureID tex;
native int16 flags;
}
struct SeqFrame native
{
native int16 sound;
native int16 flags;
native uint Size();
native SeqFrameChunk getChunk(int chunkId);
native void playSound();
}
struct Seq native
{
native int16 flags;
native uint Size();
native SeqFrame getFrame(int frameId);
}
class ExhumedPlayer : CorePlayer native
{
native readonly ExhumedActor actor;
native int16 nHealth;
native int16 nLives;
native int16 nDouble;
native int16 nInvisible;
native int16 nTorch;
2021-10-21 20:39:17 +00:00
//native int16 nSprite;
native int16 bIsMummified;
native int16 invincibility;
native int16 nAir;
native int16 nMaskAmount;
native uint16 keys;
native int16 nMagic;
native int16 nItem;
native int8 items[8];
native int16 nAmmo[7]; // TODO - kMaxWeapons?
2022-10-17 19:22:13 +00:00
native int16 nPlayerWeapons;
native int16 nCurrentWeapon;
2023-04-16 06:49:51 +00:00
native int16 nWeapFrame;
native int16 nNextWeapon;
native int16 nState;
native int16 nLastWeapon;
native int16 bIsFiring;
native int16 nRun;
//fixedhoriz nDestVertPan;
//PlayerHorizon horizon;
//PlayerAngle angle;
native bool IsUnderwater();
native int GetAngle();
}
enum EEWeap
{
kWeaponSword = 0,
kWeaponPistol,
kWeaponM60,
kWeaponFlamer,
kWeaponGrenade,
kWeaponStaff,
kWeaponRing,
kWeaponMummified
}
struct ExhumedSnd native
{
enum ESounds
{
kSound0 = 0,
kSound1,
kSound2,
kSound3,
kSound4,
kSound5,
kSound6,
kSound7,
kSound8,
kSound9,
kSoundItemSpecial,
kSound11,
kSoundTorchOn,
kSound13,
kSound14,
kSound15,
kSound16,
kSound17,
kSound18,
kSound19,
kSound20,
kSound21,
kSound22,
kSound23,
kSound24,
kSound25,
kSound26,
kSound27,
kSoundJonLaugh2,
kSound29,
kSound30,
kSound31,
kSound32,
kSound33,
kSound34,
kSound35,
kSound36,
kSound38 = 38,
kSound39,
kSound40,
kSound41,
kSound42,
kSound43,
kSound47 = 47,
kSound48 = 48,
kSoundQTail = 50,
kSound52 = 52,
kSoundTauntStart = 53,
kSoundJonFDie = 60,
kSound61,
kSound62,
kSound63,
kSound64,
kSound65,
kSound66,
kSoundMana1,
kSoundMana2,
kSoundAmmoPickup,
kSound70,
kSound71,
kSound72,
kSoundAlarm,
kSound74,
kSound75,
kSound76,
kSound77,
kSound78,
kSound79,
}
}