class Object native { native bool bDestroyed; // These really should be global functions... native static int G_SkillPropertyInt(int p); native static double G_SkillPropertyFloat(int p); virtual native void Destroy(); } class Thinker : Object native { const TICRATE = 35; virtual native void Tick(); virtual native void PostBeginPlay(); } class ThinkerIterator : Object native { enum EStatnums { MAX_STATNUM = 127 } native static ThinkerIterator Create(class type = "Actor", int statnum=MAX_STATNUM+1); native Thinker Next(bool exact = false); native void Reinit(); } class ActorIterator : Object native { native static ActorIterator Create(int tid, class type = "Actor"); native Actor Next(); native void Reinit(); } class DropItem : Object native { native readonly DropItem Next; native readonly name Name; native readonly int Probability; native int Amount; } class SpotState : Object native { native static SpotState GetSpotState(); native SpecialSpot GetNextInList(class type, int skipcounter); native SpecialSpot GetSpotWithMinMaxDistance(Class type, double x, double y, double mindist, double maxdist); } struct LevelLocals native { native readonly int time; native readonly int maptime; native readonly int totaltime; native readonly int starttime; native readonly int partime; native readonly int sucktime; native readonly int cluster; native readonly int clusterflags; native readonly int levelnum; native readonly String LevelName; native readonly String MapName; native String NextMap; native String NextSecretMap; native readonly int maptype; native readonly String Music; native readonly int musicorder; native readonly int total_secrets; native int found_secrets; native readonly int total_items; native int found_items; native readonly int total_monsters; native int killed_monsters; native double gravity; native double aircontrol; native double airfriction; native int airsupply; native double teamdamage; native bool monsterstelefrag; native bool actownspecial; native bool sndseqtotalctrl; native bool allmap; native bool missilesactivateimpact; native bool monsterfallingdamage; native bool checkswitchrange; native bool polygrind; // level_info_t *info cannot be done yet. } struct State native { State NextState; int sprite; int16 Tics; uint16 TicRange; uint8 Frame; uint8 UseFlags; int Misc1; int Misc2; uint16 bSlow; uint16 bFast; bool bFullbright; bool bNoDelay; bool bSameFrame; bool bCanRaise; bool bDehacked; } struct Sector native { }