]> Function Signature Data Type Function Signature Data Type Count of ammo to start with Always 0 bit 0 is set on creation initailized to param_4 initialized to value of field 0x4a initialized to 0 in constructor initialized to 0 in constructor initialized to 0 in constructor initialized to 0 in constructor initialized to 1; starts a new animation in the terminate function if the anim flag 0x40 is set initialized to 0 in constructor, used to fail but never gets set initialized to 0 in constructor; something about targetting used in destructor as terminate value, lo word used in destructor as terminate value, hi word used in area searches initailized to param_7 initailized to startpt.lowword initailized to startpt.hiword starting dir of the npc initialized to combatDatInternalStartOffset which of the 4 offsets we started using in the combat dat tactic currently in use the tactic no inside the combat dat initialised to the first of 4 offsets used as temporary storage in combat metalang probably a dword with 0x71? init to 0 init to 0 init to 0 init to 0 init to 0, or 1 if attack9 or attackB type init to 0, pr 1 if attackA or attackB type init to 0 init to 0 init to 0, set by fn 1108:252d init to 0 init to value of weapon field 0x8 init to 0 init to 0 init to 0 init to -1 init to 0 init to 0 inititalized based on shape no - 0x386,0x388,0x38e -> 0x3c, otherwise 0x1e init to 0 initialized based on difficulty/wpnshape/npcshape - per difficulty, 1 = 0x78, 2 = 0x5a, otherwise bsed on npcshape (0x3ac->0xf, else 0x3c) init to 0 Initialized to 0 Initialized to 0 Bits: 0 = has hitpoints; 1/2 = explosiontype+1; 3 = explode-with-damage; 4 = ?; 5 = destroyonexplosionexplodesomething; 6 = setframetype meaning depends on flags Set to 0xFFFF when file closed Real data just goes 0,1,2,3,4,5.. RandomRange called with this and next field range. 0 = no splash damage maybe num shots (based on Regret) maybe shield cost (based on Regret) maybe shield mask (based on Regret) flag (0 or 1) - see Sprite fn 1138:09c9. maybe "accurate" (based on regret) near sprite always 200 Flag in top nibble. 5 = any item, 2 = family match, 1 = shapeno match starts as minx starts as miny starts as minx starts as miny See fn 10c0:14c9. 0x1 means match for Z equals.. 0x2 means above? Output to match 0x3f flag we matched fn 10e8:3556 - gets initialized to 150 (avatar default HP) fn 10e8:3305 - proabably activity fn 10e8:3e2d, see 10e8:2cbe where it's copied from 0x2 used as next activity when activty request is 0x70 used as next activity when activty request is 0x71 used as next activity when activty request is 0x72 fn 10e8:370c (get), 36ef (set) Returned by fn at 10e8:3726 - maybe last/active anim fn 10e8:2c56 fn 10e8:2208. bits: 0 = dead, 1 = immortal, 2 = kneeling fn 10e8:331f - offset to array 0x1b (33db), probably weapon based on 10e8:39b9 fn 10e8:3654, 3339 - value found in array 0x1b fn 10e8:3671 - value found in array 0x1b - used in cycling items Item numbers for inventory (weapons, etc) (see fn 10e8:3b4f). Size from fn 10e8:2973 fn 10e8:344c - maybe energy - see 10e8:34c2 bits: 0 = ?, 1 = falling (set in gravityproc, returned by Intrinsic 0AB), 2 = anim loop dir? (see 1150:17b2), 3 = in_combat, 4 = ? (twiddled in animprimitive, 1150:2bf6), 5 = pathfinding, 6 = ? fn 10e8:2556. bits: 0 = surrendering (used to decide if turn anim should be 0x0 or 0x3c), 1 = weapon ready, 2 = male(0)/female(1). fn 10e8:358c fn 10e8:35a9 -is this "home" x/y? fn 10e8:35d9 - is this "home" z? fn 10e8:3df4 - seems to be a q value used for pathfinding to "home" areas Usage in 10e8:1e7e and pathfinder. Some NPC num.. 0 = None, 1 = Ionic, 2 = Plasma, 3 = Graviton Set to 0 when AttackProcess starts, set to 1 based on some conditions in that proc.. Last time npc was hit (1128:0425). See also usage in fn 10e8:1fa7 init to 0 init to 10 (bg gump shape init to 0 init to 0 init to -1 for things like medkit etc Table of grenades and bombs etc Inherited from NPCActionProcess Inherited from NPCActionProcess Initialized to 0 initialized to 0x10 initialized to 0x10 (not initialized) initialized to false 0 (turn left) or 1 (turn right) initialized to false, or true if pathfinding is SOLID and has non-zero height initialized to MaxDiffXY always initialized to 64 - distance from target to stop. generally 12 or 100. max steps to take before stopping initialized to 0 initialized to Param 5 of toItem, Param 8 of topoint.. basically always 0? initialized to false initialized based on param initailized to true, set false during run some random val? x,y point x,y,z point Set with the parameter when terminate is called is this a pointer or an itemno or..? sound effect number (in flex) See type_flags.cpp in code flags? if low bit is set in Item_SetFrame, calls another function, used in fn 10a0:0fc4 x-related (see function at 10a0:029a) y-related (see function at 10a0:02de z-related Fetched by function 10a0:0487 Fetched by function 10a0:04f2 Initialized to 0 in SnapProcess_Init set to param 2 of create fn initialized to -1 initailized to 0 initialized to 0 initialized to 0 initialized to 0 initialized to 0 initialized to 0 initialized to -1 initialized to 0 initialized to -1 started as 0, then set to 1 during InitData then never checked again. initialized to 0 initialized to 0 initialized to 1 initialized to 0 Created by retype action initialized to 0 initialized to 0 initialized to 0 initialized to 0 initialized to 0 initialized to 0, set to 1 for firetype 9 initialized to 0 start time low word start time high word initialized to 0 initialized to 0 initialized to 0x10 initialized to 0 Flag 8 seems to be "buffer provided" (don't free) See function at 1118:0145 Function at 1118:01cf Function at 1118:01ef Function Weapon_GetAmmoShapeForWeaponShapeNo Function at 1118:02ce, used in attack proc like reload time Function at 1118:01ad unused? A flag for whether to use "small" animations See fn 1188:070f Something about sound - see 10e8:3b9b Function at 1118:0528 init to 0xd2 (210) (xsize?) init to 0x1b5 (437) (ysize?) init to -1 init to 0 credits count (updated for pending purchases) shapenos of pending purchase items init to -1 init to -1 init to 0, controlls which movie to play init to 0 first 2 bytes of stuff.dat init to 0, set to 1 when item selected for purchase init to 0, set to 1 when purchase confirmed init to 0, used in getPurchasedCount, number of 0x3e array elements that are used data from stuff.dat Segment: 1 Offset: 00037600 Length: 8400 Min Alloc: 8400 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Title: CRUSADER.EXE Format: New Executable (NE) Windows CRC: 00000000 Program Entry Point (CS:IP): 0001:0000 Initial Stack Pointer (SS:SP): 0091:2000 Auto Data Segment Index: 0090 Initial Heap Size: 0000 Initial Stack Size: 0000 Minimum Code Swap Size: 0000 Linker Version: 5.10 Target OS: Pharlap 286 OS/2 Windows Version: 0.0 Program Flags: 09 Single Data Protected Mode Application Flags: 00 Other Flags: 00 get segment of PSP for current process (into BX) get dos version number get system time terminate with return code swap memory banks swap memory banks swap memory banks swap memory banks swap memory banks swap memory banks swap memory banks swap memory banks swap memory banks swap memory banks swap memory banks switch memory banks AH = 0Eh DL = new default drive (00h = A:, 01h = B:, etc) dos lseek dos read from file dos_stderr_printf_float_formats_not_linked dos write to file no 2 - 5 bytes dos write to file no 2 - 39 bytes AX=0x700 DIRECT CHARACTER INPUT, WITHOUT ECHO get current file position 4400 = IOCTL - GET DEVICE INFORMATION device, not file 4201 = seek relative to current file pos (== get pos, cx/dx are 0) 4202h = seek to end of file seek back to the previous position GET DISK TRANSFER AREA ADDRESS (and push it to stack) Int 21/AH=1Ah - DOS 1+ - SET DISK TRANSFER AREA ADDRESS FINDFIRST - FIND FIRST MATCHING FILE Int 21/AH=1Ah - DOS 1+ - SET DISK TRANSFER AREA ADDRESS (popped off stack 4f == Find Next Matching File Formats via ProbablySomethingDebuggy/FUN_1000_67ac into DS:1478:6c46, the handle-1 stdio entry. This is the normal stdout path used by ConsolePrintf and related wrappers, including the retail -debug thresholded text lane. Probably pointer to FUN_1000_6e93 probably pointing to previous function? Segment: 2 Offset: 00040000 Length: 02b0 Min Alloc: 02b0 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 3 Offset: 00040400 Length: 055a Min Alloc: 055a Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) flag 1 = SI_SOLID flag 6 = SI_DAMAGING if not contained and non-zero z Segment: 4 Offset: 00040a00 Length: 10b1 Min Alloc: 10b1 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) references 0x1478009b == "crusader.cfg" if line is comment.. skip whitespace Segment: 5 Offset: 00041e00 Length: 08d7 Min Alloc: 08d7 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) play the intro movies shape 0x4d4 = data link shape 0x598 = some weird smiley face thing? Fresh-game startup path: pushes hardcoded map 1 and egg 0x1e before Teleporter_CreateProcessDirect. This is the normal new-game start selector, not a config-driven mission map lookup. Fresh-game startup path hardcodes Teleporter_CreateProcessDirect(1, 0x1e, 1), so a normal new game starts on map 1 at teleport egg 0x1e. start on level 1, starting egg (0x1e) Debug -warp path: mission number from g_warpToLevelNoArg indexes g_warpMissionToMapTable, then g_mapoffArgValue is added to produce the target map. Manual warp path uses the embedded mission-to-map table at 1478:0488 (now g_warpMissionToMapTable) plus -mapoff; this table is separate from the normal fresh-game hardcoded start. warp x/y/z not set script to find shape = 0x476 (1142) "item" editor item script to find shape = 0x476 (1142) "item" editor item function pointer to 0x10C000B9 give the first 0x1e objects to the avatar (if they are not null) set equipped set equipped? (if same flag meaning as U8) fn ptr = 0x147804b6 teleport id 0x1e, yes put in stasis Intrinsic 0CB called from usecode with values like 0x28, 0x29, 0x1D Segment: 6 Offset: 00042c00 Length: 075e Min Alloc: 075e Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) 0x900 = 2304 = 768*3 = the size of entry 0 in the xformpal.dat flex set all colors to the Y value fn ptr = 0x1478051e fn ptr = 0x147804fa Intrinsic 097 Segment: 7 Offset: 00043600 Length: 0484 Min Alloc: 0484 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) g_gameTimeProcessFnPtr = 0x147805ce 0x245 is the scheduler process in U8 0x1478058f = "GameTime" g_animProcessFnPtr = 0x147805a2 0x14780598 = "Animation" Segment: 8 Offset: 00043c00 Length: 1386 Min Alloc: 1386 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) g_gravityProcessFnPtr = 0x14780610 0x147805f2 = "Gravity" Note: Proctype 0x203, same as U8 clear flag 0x400 - maybe bouncing (if same as u8) set npc falling flag? set fall start z g_gravityProcessFnPtr = 0x14780610 0x8f = "ooh!" sound status 0x400 = bouncing? status 0x4000 = ??? clear bouncing flag Intrinsic 028 existing gravity process? returns gravityprocess proc id Intrinsic 03E Segment: 9 Offset: 00045400 Length: 0495 Min Alloc: 0495 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) get 0x2f (dos extensions) interrupt handler if handler installed This is also unused Intrisic 0x136 0x203 = gravity process Segment: 10 Offset: 00045a00 Length: 0d92 Min Alloc: 0d92 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) fn ptr = 0x14780bc4 Intrinsic 06B Intrinsic 0CE - is GAME COMPILE=1 "-?" "-u" Retail -debug branch is live. It raises g_debugMsgLevel to 10, prints "Debugging mode ON.", sets 1478:0845, and enables the seg1468 video-player debug timing overlay via 1478:0859. "-debug" "-setver" "-asylum" "-warp" "-skill" "-mapoff" "-egg" "-demo" Segment: 11 Offset: 00046e00 Length: 05b1 Min Alloc: 05b1 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 12 Offset: 00047600 Length: 094b Min Alloc: 094b Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) g_snapProcessFnPtr = 0x14780c9a 0x14780c7a = "SnapProcess" check if this egg is already in the list found an empty one, add it here reached the end of the list and no free eggs, add it here. remove this eggid from the list decompilation is confusing.. this is better read as proc->eggids[proc->numeggs - 1] != 0 copy egg2 data to egg1 get location of current controlled npc snap to this egg Alt+F7 overlay consumer. Walks the SnapProcess egg list and draws per-entry diamonds from packed egg range data via 1180:1ce5, so this overlay is closer to snap/trigger coverage than to a camera-aligned background grid. Segment: 13 Offset: 00048200 Length: 1f6c Min Alloc: 1f6c Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 14 Offset: 0004aa00 Length: 0526 Min Alloc: 0526 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) cache/handler.c Segment: 15 Offset: 0004b200 Length: 1c68 Min Alloc: 1c68 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) get full path to shapes.flx cache/shaphand.c Segment: 16 Offset: 0004d400 Length: 0677 Min Alloc: 0677 Flags: 0c00 Code Fixed LoadOnCall Impure (Non-shareable) FIXME: this is not a null fn FIXME: this is not a null fn FIXME: this is not a null fn.. FIXME: this is not a null function.. Segment: 17 Offset: 0004dc00 Length: 01a7 Min Alloc: 01a7 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 18 Offset: 0004e000 Length: 07e9 Min Alloc: 07e9 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) if volume is 0 if shape volume is 0 Segment: 19 Offset: 0004ea00 Length: 0b4d Min Alloc: 0b4d Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) fn ptr = 0x14780f5e g_teleporterProcessFnPtr = 0x14780f3a name = 0x14780ee3 ("Teleporter") fn ptr = 0x14780f3a == teleporter process functions fn ptr = 0x14780f3a == teleporterProcess have the new process wait for this one TeleporterProcess_Run consumes TeleporterProcess.mapno as a real target map array: if it differs from g_currentMapArray, the avatar/camera is moved onto that map before the target teleport egg is searched. mapno is a real map-array selector here, not just a mission label. Cross-map startup/warp logic uses it before egg search. find teleport egg (family 8) with frame 1 and q 0xff and (PARAM). intrinsic 079 intrinsic 096 intrinsic 0A7 intrinsic 0A3 intrinsic 03F g_eggHatcherProcessFnPtr = 0x14780f16 0x14780f0b = "EggHatcher" Egg-hatcher runtime step. Tracks avatar footprint against the egg item's X/Y range rectangle and Z window; for non-monster-egg families it toggles ishatched and calls Item_CallHatchEvent / Item_CallUnhatchEvent on enter/leave. Ctrl+F7 overlay consumer. When 1478:0ee0 is enabled, this draws egg-hatcher trigger diamonds using Egg_GetXRange / Egg_GetYRange and the shared diamond helper at 1180:1ce5. If the current map has no live EggHatcherProcess objects, or a non-monster-egg trigger has already hatched while gameplay is active, the overlay can appear blank even though the toggle succeeded. Segment: 20 Offset: 0004f800 Length: 0878 Min Alloc: 0878 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) item/glob.c fastonly, disposable Note: In Crusader, flag param seems to always start as 0 increment pointer Segment: 21 Offset: 00050200 Length: 4486 Min Alloc: 4486 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) note: this is just coincidence that the targeting reticle is 0x2800 terminate assuming that crusader uses the same flags as U8.. Find the container holding the item, if it's in a container? find the container holding the item? (flag 8 == contained) get the centre in x item_X + (((shapedata[shapeno][2]) / 32) & 0x1f) * -8 Intrinsic 0x120 get the centre in y Intrinsic 11E and 12B (((item_Y + shapedata[shapeno][3]) >> 2) & 0x1f) * -8 Intrinsic 11F find first item not in container if invisible, return 0 (assuming same flag meaning as U8) if family type is 6.. (container) Intrinsic 057 0x14780608 is a dword pointer to fn 0x10c01637? Intrinsic 024 for NPCs, frame high byte is held in this other struct for NPCs, frame high byte is held in this other struct Byte 1 bit 0 = SI_DRAW for NPCs, frame high byte is held in other struct. check flag SI_DRAW note: although mapno is only byte size, this fun returns a word - check the disasm assumes shape family 1 ("quality") is the same as in U8 Shape Family 1 - SF_QUALITY intrinsic 0A2 Family 4 = SF_UNKEGG shape family 4 == SF_UNKEGG if shape family is 3 (GlobEgg?) shape family 3 == Glob Egg if container or "monster egg".. which is just like a different container? intrinsic 03C shape 1278 (0x4fe) is a snap egg intrinsic 020 intrinsic 0ED Intrinsic 030 intrinsic 0EC intrinsic 022 boxes of various sorts intrinsic 03D not dead.. intrinsic 02E Intrinsic 127 Intrinsic 0C7 intrinsic 00D Intrinsic 064 and 12D if flipped (assuming same flags as u8) Intrinsic 0A4 intrinsics 044, 046, 048, 04A, 04C, 04E, 0A5, 0BC, 0C5, 0DC, 0F1, 0FA, 12C intrinsic 06F Intrinsic 065 - is held, meaning is the item contained by an NPC at some level Intrinsic 025 if item not ethereal? (if flags have same meaning as u8 Intrinsic 005 Intrinsic 01A and others Intrinsic 08C / 119 / 12A Thin local 0x0020 and UC_Hit lane. In the current verified caller set it is reached from 10f0:0379 only when process field +0x3c == 0x20b, reusing the same +0x36 and +0x38 aux pair as the sibling 0x20c branch. First closed non-hub caller family downstream of 1420:0dc5: recomputes the same class id, tests owner-row bit 0x0040 directly, writes the result through pflagout, and only then optionally enters the UC_GotHit lane. Treat the row bit as a generic capability flag, not a direct NPCTRIG or EVENT tag. Intrinsic 006 / 0B5 Intrinsic 0B0 Intrinsic 08B when shape 0x4fe enters, we trigger the snap process get their current activity clear last activity clear flag 0x59 bit 1 (? also cleared when AttackProcess starts) clear in-combat flag (0x8, bit 3) call if is npc or SI_NOISY Flags byte 6 bit 3 = SI_CRU_SOUND only call usecode for SI_NOISY objects Intrinsic 0E8 Intrinsic 0B1 flags field 6, 0x10 == SI_Targetable animcache something.. note: decompiler confused here, ptr goes to "x" Intrinsic 015 Intrinsic 02A intrinsic 043 intrinsic 038 Intrinsic 076 Intrinsic 03A I think this is to randomly give NPCs stronger weapons - it's called when difficulty level is set to 4 shape 899 - android shape 793 - guardsq shape 436 - enforcer shape 715 - roaming (robot) shape 824 - thermatr (robot) Intrinsic 12F Intrinsic 02F Intrinsic 007 Intrinsic 095 Intrinsic 103 is this shapenum? 2046 is near the end of the shape data (2048) copy the shape data into the on-stack buffer Segment: 22 Offset: 00055000 Length: 2bd6 Min Alloc: 2bd6 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Shape Family 3 = Glob Egg note: flag 0x80 == FLG_FastOnly get gravity process flg 0x80 == FLG_FastOnly shapeflag 0x80 = SI_NOISY flag 0x2000 = FLG_FastArea item is contained check FLG_EQUIPPED saves all the stuff into the file ItemCache_InitAndLoadFixedDat loads external fixed map content (FixedDat_LoadData plus optional static\\fixed.dat patch layer) and resets g_currentMapArray. Map contents are external even though the fresh-game start map is hardcoded in Game_Start. External map/resource loader anchor: fixed.dat/static\\fixed.dat provide map contents, while Game_Start chooses the fresh-game start map in code. zero out the blocks z = 0xf3 (free) 510 is the "bad newgumpid" ? first free npc num and last free npc num? if not ethereal.. if not ethereal.. if equipped.. clear equipped flag if not ethereal.. z = -2 means freed object set ethereal if we are moving the avatar, move the sprite too if fast area flag set.. Note: field 200 is the last flag in SnapProcess byte 1 bit 0 = SI_DRAW shape family 6 SF_CONTAINER shape family 6 (container) or 7 (monsteregg) Intrinsic 023 if FLG_FastOnly family 3 == SF_GLOBEGG get a char - if x, exit spaces spaces ptr to 2 spaces (null terminated) ptr to 2 spaces (null terminated) ptr to 2 spaces (null terminated) Segment: 23 Offset: 00058200 Length: 05d6 Min Alloc: 05d6 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Go through each of the allocated blocks and zero them Segment: 24 Offset: 00058a00 Length: 06d7 Min Alloc: 06d7 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) bits 1,2 give explosion type (0 means don't explode) Segment: 25 Offset: 00059200 Length: 1976 Min Alloc: 1976 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) shape family special case some common loopscript patterns if not contained.. Special case some common loopscript patterns TODO: work out what weird maths is going on here.. no value to find. call the callbackfn with -1 calculate map tile numbers for the minx/miny and maxx/maxy vals Segment: 26 Offset: 0005ae00 Length: 04de Min Alloc: 04de Flags: 0c00 Code Fixed LoadOnCall Impure (Non-shareable) minx_tile * 0x80 + miny_tile * 2 Segment: 27 Offset: 0005b400 Length: 057b Min Alloc: 057b Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Intrinsic 027 calc distance to "min" direction Segment: 28 Offset: 0005ba00 Length: 0788 Min Alloc: 0788 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Intrinsic 0B4 Intrinsic 0B6 Intrinsic 000 if creation failed, clear the alert?? Segment: 29 Offset: 0005c400 Length: 190a Min Alloc: 190a Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) swap x and y values return the result in psearch->someresult (offset 0x2f) if flipped if flipped.. go through the linked list create the "hit" notifier create the "gothit" notifier" NOTE: something weird going on here, the disasm assigns x/y/z to 3 separate structs on the stack, but only one of them seems to be used? Segment: 30 Offset: 0005e000 Length: 5071 Min Alloc: 5071 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) zero the words of memory just allocated (0x3c80 = 0x100 * 0x79 / 2) set up avatar (item 1) defaults Intrinsic 033 clear 5a flag 1 clear 0x5a flag 1 set 5a flag 1 Intrinsic 0E5 behavior 5/10 is attack.. field 100 of NPC is probably target NPC no? intrinsic 0AB falling (set in GravityProcess::create, cleared in ::finish) intrinsic 0CC intrinsics 039/122/12E Intrinsic 021/060/073/0A0/0A8/0D8/0E7/135 intrinsic 085 intrinsic 07B / 130 All "start running" animations (34, 35, 38) intrinsic 035 set the kneeling bit clear kneeling bit set high byte of frame No free ids, find one to destroy. set high byte of frame 940 and 1431 are female civilian NPC shapes. Does this set flag for them to scream in a different voice? intrinsic 061 intrinsic 0DF Intrinsic 0E0 set inventory item n to param3 interesting: when item is in inventory, the "z" is its inventory position Set flag "equipped" (if same as U8) FLG_EQUIPPED Intrinsic 063 Intrinsic 011 Intrinsic 052 Intrinsic 053 Intrinsic 054 Intrinsic 0E1 Intrinsic 0E2 Intrinsic 0E3 last activty = current activity intrinsic 055, 07D, 0CD, 0DB, 0F2, 131 Move value in field 0x2 to field 0x4 todo: is this loopscript?? set weapon ready flag (0x5a bit 1) clear weapon ready flag (0x5a bit 1) Do the animation first Intrinsic 051 clear field 0x59 flag 3 - this is also called from Intrinsic 00C if the flag is set terminate Attack process if there is one Intrinsic 00E intrinsic 07C Intrinsic 050 avatar intrinsic 082 intrinsic 083 intrinsic 081 if avatar, get something.. 2356 - chemical battery? fission battery? fusion battery? intrinsic 0DE Intrinsic 0B7 Intrinsic 00C in usecode, param is always 1 or 0. Intrinsic 01C / 112 / 121 Intrinsic 01D, 05A, 0B9, 0D7, 0E4, 124 intrinsic 0CA Intrinsic 0EB intrinsic 029 array 0x1b, but starting from NPC 1 (0x94 = 0x79 + 0x1b) reuses the variable but not the same meaning.. this weapon has no ammo.. Remove 1 from the count of ammo clips, add the clip size to the weapon Intrinsic 0FD Intrinsic 078 0x4ed is 1261, credits Intrinsic 00B Intrinsic 0E6 intrinsic 0DD Segment: 31 Offset: 00064000 Length: 06ee Min Alloc: 06ee Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Shape Family 3 == Glob Egg Creates the local 0x236 process family later split by 10f0:0379. Verified shared fields in that runner: subtype or tag at +0x3c and aux words at +0x36 and +0x38. Verified 0x236 process subtype gate: +0x3c == 0x20c routes to 10a0:275f, +0x3c == 0x20b routes to 10a0:2718, both using the same +0x36 and +0x38 aux pair. This closes one local caller family but does not prove the upstream owner-loaded class choice. Subtype 0x20c branch to 10a0:275f. Subtype 0x20b branch to 10a0:2718. call the run function call the terminate function Segment: 32 Offset: 00064800 Length: 056a Min Alloc: 056a Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) stop if we hit a LS end char ('$') add LS end char ('$') intrinsic 0AC Segment: 33 Offset: 00065000 Length: 10d7 Min Alloc: 10d7 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) if the direction is within +/- 2 of the current one set 0x5a flag 0 clear 5a flag 0 shape 759 - Man in suit ("OFFWORK") shape 757 - man with hardhat ("MAINTMAN") shape 758 - man in chemsuit ("CHEMSUIT") shape 836 - scientist ("SCIENTIS") shape 1431 - lady in an office chair Do Stand animation turn around, and wait for 60 take a step forward sleep for randval * 60 + 60 ticks (ie, randval+1 seconds) check the number of iterations left git random x/y from -160 to +160 starting x Segment: 34 Offset: 00066600 Length: 253a Min Alloc: 253a Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) if target is not avatar, and controlled npc is avatar, attack avatar. clear 5a flag 1 field 0x4d = combatDatCurOffset after the name, there are 4 offset values in the combat data - this picks one of them to use in the 0x55 field of the process struct. In practice, this function is never called with any values other than 0 or 1 47:45 is the pointer to the combat data set the combat dat offset pointers to block 0 get the metadata for the animation decided above script to find shape = 0x33A (826), the numbers that NPCs wander between 0x8f - pathfind to a point between npc and the target 0x94 - loiter a bit.. 0x96 - do activity specified by next word 0x97 - switch to tactic no (next word) 0xff = flip to block 1 and restart 0x9b - get next word and jump to that offset if distance > 0xa0 passes npc field 0x64 (= 100) this is called when the tactic no is 0 Check weapon ready flag if 5a flag 1 not set.. 5a flag 1 (weapon ready) set? 0x3c = 60 (1 second) Segment: 35 Offset: 00069400 Length: 0f67 Min Alloc: 0f67 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) SI_SOLID and footpad z != 0 0x5a flag 1 = weapon ready terminate if field_0x4a is true at destination point, terminate terminate if the next dir is 0x10 (current). if 0xff set flag flags: 16dir true, non-combat true flags: 16dir true, non-combat true in combat and weapon ready 0x14781fff = g_pathfindDirOffsets2 run the new anim proc now Segment: 36 Offset: 0006a600 Length: 069f Min Alloc: 069f Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Table holds 128 entries of 71 (0x47) bytes (0x2380 == 0x47 * 128). initalize all the data to 0 weapon data? 42 * 9 bytes, which matches no of weapon name entries pointer to "INVALID" this is the real return note: this returns junk, but we just assert-exited so it's fine. Segment: 37 Offset: 0006ae00 Length: 0636 Min Alloc: 0636 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) if this item is closer than the best so far, not occluded.. Segment: 38 Offset: 0006b600 Length: 2318 Min Alloc: 2318 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Intrinsic 098 "silencer terminated" terminate process These are all "robot" shapes [715, 824, 899, 901, 1117, 1224, 1254] intrinsic 032 shape 0x3ac (940) - vargas get process type 0xf0 (AnimPrimitive) not dead yet. (this is the only branch) update the last washit time not the controlled npc or the silencer is silencer? static electric sound thing.. shape 0x5a9 - small red shield zap shape 0x5a9 - small red shield zap shape 0x52b - big blue shield zap Die! 0x576 - flaming guy running around 1423 = plasma death 1430 = fire death skeleton 0x383 == 899 (robot), 1423 = plasma death, 1430 = fire death skeleton if male.. else (female) play random scream (male or female) not enough damage to die, just say "oof" or whatever if male.. female scream male "ugh!" 0x259 == attack process probably "sleep for random time" Second direct 10a0:275f caller family: Item_ReceiveHit's non-NPC path passes hitter=0x4000 plus packed damage=(damagetype<<8) Second direct 10a0:275f caller family: Item_ReceiveHit's non-NPC path passes hitter=0x4000 plus packed damage=(damagetype<<8) Intrinsic 01E This is either called from usecode or from an animation (via NPC_FireWeapon) shape 473, the various bullet bounce shapes Intrinsic 116 shape 1d9 (== 473) is various bullet projectiles (rockets etc) Intrinsic 042 shapeinfo._z 0xdb == zapping noise we're done! terminate that's all, terminate. Intrinsic 0EE Intrinsic 0F6 if we're at the rebel base.. Segment: 39 Offset: 0006e200 Length: 3416 Min Alloc: 3416 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) intrinsic 056 Intrinsic 01B 0x576 = Koresh (flaming guy running around) Terminate existing sprite process create the targeting reticle sprite 0x168 = 360 0x168 = 360 (degrees). 0x10e = 270 0x4cc == small red crosshairs Controller option-key handler. The F10 cheat branch is gated by the live keyboard cheat latch (0x6045). Within that branch, plain F10 performs the large restore/refill/loadout path, while Ctrl+F10 directly toggles the current controlled NPC's immortal flag through NPC_GetIsImmortal / NPC_SetImmortal / NPC_ClearImmortal and displays the local immortality enabled/disabled messages. This is stronger evidence for a real keyboard immortality combo than the older CTRL-Q scratch note. scan code 0x44 = F10? Pre-F10 gameplay gate. This byte is checked before the low-level cheat latch at DS:0x6045; it is written by Game_Start and the 1398:0212 / 1398:01f5 helper pair, so it appears to track a broader gameplay option-key enabled state rather than the cheat state itself. Pre-F10 gameplay gate. This byte is checked before the low-level cheat latch at DS:0x6045; it is written by Game_Start and the 1398:0212 / 1398:01f5 helper pair, so it appears to track a broader gameplay option-key enabled state rather than the cheat state itself. Live F10 cheat branch. Once the low-level cheat latch (0x6045) is active, plain F10 runs the restore/refill path and Alt+F10 directly toggles the current controlled NPC's immortal flag, displaying the local Immortality enabled/disabled strings. Stop any DeathSilence process set HP to max val Ctrl-gated F10 immortality branch: calls KeyEvent_IsCtrlDown on the queued KeyEvent snapshot before toggling the current NPC immortal flag. probably "is alt or control down", to toggle god mode Later unrelated branch uses KeyEvent_IsAltDown. This is not the F10 immortality path. scan code 0x4b = left scan code 0x4d = right animation 46 = kneeling with weapon animation 4 = combat stance check if capslock is on.. scan code 0x48 = up scan code 0x50 = down scan code 0x4b = left scan code 0x4d = right scan code 0x47 = home scan code 0x52 = ins scan code 0x49 = pgup scan code 0x4f = end scan code 0x51 = pg down scan code 0x4c = 5 scan code 0x53 = del scan code 0x35 = questionmark Copies the full incoming KeyEvent to a local snapshot before cheat-toggle and option-key handling. That preserves the queued modifier/repeat state all the way into the F10 immortality branch. note: decompiler is wrong, this is actually 0x1130273b The array we're comparing param2 to contains 1, 2, 4, 0x10, 0x100. The other array is all 0s The jump table is: 0x1130226E, 0x11302276, 0x113022B6, 0x113022BD, 0x113022B6 Controller_HandleKeyEvent copies the full incoming KeyEvent, including modifier/repeat bytes, before Key_CheckCheatToggle and Key_HandleOptionKeys inspect it. pressing fire when some global is set.. anim picked and field_0x8 != 0 scan code 0x4a = Scan_NumMinus scan code 0x37 = num-pad * scancode 0x4e numpad plus 0xf0 = animprimitive process terminate the current anim and replace with jumpforward if Scan_Ins and modifiers != 0 Note: jump table data is at 0x1130274f Shape 0x332 = SG-A1 reload now Shape 0x332 = SG-A1 not shots left and no inventory to reload with Exact hidden cheat-code matcher. Only keydown events participate; the terminal digits in DS:0x2833 are top-row scan codes 0x02 and 0x07, so keypad 1/6 will not complete jassica16. Exact hidden cheat-code matcher. Only keydown events participate; the terminal digits in DS:0x2833 are top-row scan codes 0x02 and 0x07, so keypad 1/6 will not complete jassica16. jassica16 success sets latch 1478:8c52 before toggling 1478:0844 and 1478:6045. Plain logical-~ at 13e8:203d only flips 1478:6045 under the existing 1478:0844 gate and does not set this extra post-sequence latch. Live cheat-code success core. The matcher bytes at DS:0x2833 are the scan-code sequence 24 1e 1f 1f 17 2e 1e 02 07 = j a s s i c a 1 6, with the final 1/6 using top-row scan codes. On completion this path toggles DS:0x844 and mirrors the same value into DS:0x6045. Live cheat-code success core. The matcher bytes at DS:0x2833 are the scan-code sequence 24 1e 1f 1f 17 2e 1e 02 07 = j a s s i c a 1 6, with the final 1/6 using top-row scan codes. On completion this path toggles DS:0x844 and mirrors the same value into DS:0x6045. jassica16 success path: raw scancode matcher over 1478:2833 toggles both 1478:0844 and 1478:6045, then emits 0x103 and shows the active/inactive cheat modal. This is structurally different from the later translated logical-~ hotkey path. Live cheat-code success path: toggles cheats_enabled (0x844/0x6045), then emits event 0x103. On a COPY only, the current best hidden-menu experiment in Ghidra is to retarget the existing CALLF/fixup at 1130:2b78 from 12d8:0476 to 13a0:0086 (cheat_menu_open_from_current_slot). Do not patch raw bytes here in the main database. cheat_code_check success path: resets the matcher index, marks the cheat side-effect latch, toggles both cheats_enabled (0x844) and the live keyboard cheat latch (0x6045), then emits event/helper 0x103. If -laurie has already forced 0x844 on, hitting this path again will toggle both values back off, which matches the observed 'jassica16 disables cheats when laurie is active' behavior. sound 0x103 - female voice saying "Crusader: No Remorse" stop process type 0xc (also stopped on destroy..) shape 0x38d (909) a big gun set last anim and anim frame Segment: 40 Offset: 00072200 Length: 1e7a Min Alloc: 1e7a Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Intrinsic 0C6 various explosions - shapes [796, 799, 800, 801, 802, 803, 804, 805, 806, 807] if this is the targeting reticle, record some data specially flag = 1 - accurate abs difference calculate a range for inaccuracy limit to 0x50 limit to 0x18 x,y,z inputs in Run are nowpt, pt3 sprite 0x426 == 1062, a little sparkly explosion Third direct 10a0:275f caller family: SuperSprite_HitAndFinish's non-NPC collision lane probes Item_GetDamaged with hitter=0x4000 and packed damage=(firetype<<8) Third direct 10a0:275f caller family: SuperSprite_HitAndFinish's non-NPC collision lane probes Item_GetDamaged with hitter=0x4000 and packed damage=(firetype<<8) terminate if we're not in the fast area new x value new y value new z value sprite is not initialized yet flag 0x8 on byte 1 - ShapeInfo::SI_TRANSL pt3.z is valid counter is lower than duration.. terminate if pt3 is not in the fast area check the 3rd bit of the 2nd byte of the shape data -> SI_ROOF Segment: 41 Offset: 00074600 Length: 028d Min Alloc: 028d Flags: 0c00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 42 Offset: 00074a00 Length: 0c9c Min Alloc: 0c9c Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) if 5a flag 0 (surrendering) is not set.. shape 1d8 == 472 == bullet sparks shape 0x537 = 1335 = a small rising fireball explosion shape 1d8 == 472 == bullet sparks shape 0x578 = 1400 = plasma splash explosion 0x56b = 1387 = fireball explosion 0x59b = 1435 = staticy electricity explosion fireball explosion.. randomize first frame Intrinsic 017 exptype 0 -> divisor = 3 2 different explosion sound effects 2 different explosions sfx cause damage Intrinsic 0BB shape 0x31a is an imaginary chequered wall thing.. do something for shape 0x31a Segment: 43 Offset: 00075a00 Length: 336f Min Alloc: 336f Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) FIXME: parameters here are pretty suspicious.. clear bit 4 of flag field 0x59 else, not a roll move 90 deg to the right 90 deg to the left 0x576 = flaming guy get field 0xd - last anim bit 0 = AAF_TWOSTEP (two parts, second half starts half way) two step and bit 2 = AAF_LOOPING not twostep or looping, start on frame 0 looping but not the same as last anim - start on frame 0 set current frame to 2 invalid animation no, stop. left fast area flag bit 0 (twostep) if animation is going back (flag held in npc) update current anim frame terminate double deltadir value if AFF_CRUFLIP, flip item. frame meta byte 2 = deltaz if rotated flag (bit 4 of second byte) is set.. frame flag bit 1 = ONGROUND bit 3 of flags is AAF_UNSTOPPABLE (else start pt not null) frame bit 1 AFF_ONGROUND proc->unstoppable is true. frame flag bit 1 = ONGROUND frame is ONGROUND.. frame bit 1 AFF_ONGROUND no delta z, is onground, don't need to check for fall terminate bit 3 of anim flags = AAF_UNSTOPPABLE Actually move the item.. terminate with code |= 2 bit 3 of flags is AAF_UNSTOPPABLE Frame flag bit 6 == AFF_USECODE frame flag bit 4 AFF_HURTY if AFF_USECODE flag set.. frame flag bit 4 AFF_HURTY has firex or firey or firez frame flags low byte bit 1 = AFF_ONGROUND: if AAF_HANGING flag is not set this is called if the startpt is not null if we started flipped, set us back to flipped. if bit4 of 0x59 was clear when we started, clear it now.. otherwise set it? byte 3 bit 7 - (AAF_DESTROYACTOR) destroy actor at end of animation if AAF_DESTROYACTOR flag is set.. clear bit 2 of 0x59 (anim loop dir) if 16 dir flag not set.. Segment: 44 Offset: 00079400 Length: 07f8 Min Alloc: 07f8 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) This can be called from animations, calls through to Crusader_FireWeapon to do the main logic. if male - 0x5a bit 2 (female) not set defaults to 0x65, a screaming male sound if is 8 dir Segment: 45 Offset: 00079e00 Length: 0200 Min Alloc: 0200 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 46 Offset: 0007a200 Length: 07dc Min Alloc: 07dc Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 47 Offset: 0007ac00 Length: 09b4 Min Alloc: 09b4 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) fixme; this is weird.. function doesn't seem to rerturn anything in DX?? Segment: 48 Offset: 0007b800 Length: 0063 Min Alloc: 0063 Flags: 0c00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 49 Offset: 0007ba00 Length: 1e3f Min Alloc: 1e3f Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Intrinsic 062 this calls function 0x118012F1, which calls fn 0x11801356 this calls function 0x118019C1 check SI_DRAW shape data byte 1 bit 3 == SI_TRANSL intrinsic 040 Camera debug-overlay helper. 1478:2bca draws the coarse 3x3 world-cell grid, while 1478:0ee0 iterates EggHatcherProcess objects and draws their egg / hatch trigger diamonds through EggHatcher_1090_0921 rather than a generic grid. get egg hatcher (0x20f) processes Main camera redraw pass that updates the viewport, applies the DS:0x085f gameplay-input gate to the avatar-centered redraw rectangle, and calls the 1188 overlay draw/clear helpers around the viewport blit. Main camera redraw pass that updates the viewport, applies the DS:0x085f gameplay-input gate to the avatar-centered redraw rectangle, and calls the 1188 overlay draw/clear helpers around the viewport blit. note: checked this list and they do all appear to be void fns. Intrinsic 041 Intrinsic 086 Intrinsic 087 Intrinsic 0D6 Segment: 50 Offset: 0007de00 Length: 09c8 Min Alloc: 09c8 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Scans the tracked overlay list at 1478:835a..8422, marks entries visible, and draws each active gameplay overlay window when the modal overlay-suppression flag at DS:0x2c64 is clear. Scans the tracked overlay list at 1478:835a..8422, marks entries visible, and draws each active gameplay overlay window when the modal overlay-suppression flag at DS:0x2c64 is clear. Clears the dirty rectangles for tracked gameplay overlay windows after the main viewport copy, but only while the modal overlay-suppression flag at DS:0x2c64 is clear. Clears the dirty rectangles for tracked gameplay overlay windows after the main viewport copy, but only while the modal overlay-suppression flag at DS:0x2c64 is clear. Segment: 51 Offset: 0007ea00 Length: 1d02 Min Alloc: 1d02 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 52 Offset: 00080a00 Length: 1d65 Min Alloc: 1d65 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) if flipped.. not SI_EDITOR clear flag 0.. what's that? bit 5 == SI_BAG bit 3 of byte 1 - SI_TRANSL flags1 bit 1 == SI_IGNORE Segment: 53 Offset: 00082c00 Length: 10de Min Alloc: 10de Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) 1216 bytes.. what's it for? clears a global then sets flag 0 on all valid sprites (non-zero shapeno) Segment: 54 Offset: 00084000 Length: 0005 Min Alloc: 0005 Flags: 0c00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 55 Offset: 00084200 Length: 0a06 Min Alloc: 0a06 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) intrinsic 05D intrinsic 05F called by intrinsic 05D called with "4" when energy changes, "3" when hp changes, "2" when field 0x66 is updated, "0" for active weapon change Segment: 56 Offset: 00085000 Length: 0706 Min Alloc: 0706 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Synthesizes repeated held-key KeyEvent records from the current-down tables. Each generated repeat event refreshes the modifier snapshot from DS:31a4 before dispatch/queue, which explains why holding F10 first and then pressing physical Ctrl can satisfy the immortality branch on later repeated F10 events. Snapshot the current extended-shift/modifier word from DS:31a4 into the synthesized repeat KeyEvent before dispatch/queue. Return the cached last KeyEvent exactly as stored by the keyboard process, including the queued modifier snapshot bytes. Returns the last keyboard-process KeyEvent snapshot verbatim, including the modifier bytes that were captured when the event was queued or synthesized. reset driver and read status define mickey/pixel ratio (3 horizontally, 16 vertically) call mask 3f - call the routine for ~all events Segment: 57 Offset: 00085a00 Length: 079b Min Alloc: 079b Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) clear the timer values function pointer to 0x11C0072D, which calls 0x11E0112C Segment: 58 Offset: 00086400 Length: 044b Min Alloc: 044b Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Tests AH bits 1 and 3 from INT 16h AH=12 keyboard shift state, i.e. left Alt or right Alt. The older Ctrl label was reversed. Test modifiers word for Alt bits: 0x0200 = left Alt, 0x0800 = right Alt from BIOS INT 16h AH=12 shift flags 2. Tests AH bits 0 and 2 from INT 16h AH=12 keyboard shift state, i.e. left Ctrl or right Ctrl. The older Alt label was reversed. Test modifiers word for Ctrl bits: 0x0100 = left Ctrl, 0x0400 = right Ctrl from BIOS INT 16h AH=12 shift flags 2. Segment: 59 Offset: 00086a00 Length: 4288 Min Alloc: 4288 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Intrinsic 0EF set an extended process flag - this is not in U8, what is it? Intrinsic 06C Called from the interpreter by opcode 0x54 assert process is "linear" if NoTerminatedState extflag is set cpu generated breakpoint Kernel/process snapshot writer: walks process tables/lists and serializes per-process state via writer callbacks. Serializes the process table, timer/keyboard/mouse proc-id lists, process sizes, names, and per-process state through a file-like writer; this is a kernel/process snapshot writer, not just a printf-style kernel-info routine. Port 0x43 PIT mode control - 00110110 = counter 0, write 16 bits, mode 3 (square wave), binary counter 0040 RW PIT counter 0, counter divisor (XT, AT, PS/2) Used to keep the system time; the default divisor of (1)0000h produces the 18.2Hz clock tick. Small repeat-suppression predicate used by the held-key repeat path and cycle update. Verified behavior: returns nonzero only when keyboard state word DS:31a4 has bit 0x0010 set and DS:39af is enabled; exact physical-key meaning of that bit is still not promoted. Queues one 12-byte KeyEvent into the pending keyboard ring at DS:31cc. If the ring is full, it sets DS:31a0 instead of writing a new event. Read BIOS INT 16h AH=12 extended keyboard shift states and cache the result in DS:31a4 for later KeyEvent synthesis. Reads BIOS extended keyboard shift state (INT 16h AH=12) and caches the current modifier word at DS:31a4. The held-key repeat path reuses that cached word when building repeated KeyEvent records. pushflags popflags Segment: 60 Offset: 0008b600 Length: 0231 Min Alloc: 0231 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 61 Offset: 0008ba00 Length: 1b6c Min Alloc: 1b6c Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) proc2 will wait for proc1 like waitfor 0x10 = Proc_Chain assert process capable of interrupts assert process is interrupt-capable Segment: 62 Offset: 0008da00 Length: 085f Min Alloc: 085f Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 63 Offset: 0008e400 Length: 0519 Min Alloc: 0519 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 64 Offset: 0008ea00 Length: 03b1 Min Alloc: 03b1 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) intrinsic 012 loop a/b/c Intrinsic 090 Segment: 65 Offset: 0008f000 Length: 05bd Min Alloc: 05bd Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 66 Offset: 0008f800 Length: 04a9 Min Alloc: 04a9 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 67 Offset: 0008fe00 Length: 0839 Min Alloc: 0839 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 68 Offset: 00090800 Length: 0b4a Min Alloc: 0b4a Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 69 Offset: 00091800 Length: 02a0 Min Alloc: 02a0 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 70 Offset: 00091c00 Length: 0f24 Min Alloc: 0f24 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) dos open file close file dos lseek dos read from file dos fseek dos write dos lseek Segment: 71 Offset: 00092e00 Length: 06c2 Min Alloc: 06c2 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 72 Offset: 00093600 Length: 0ca1 Min Alloc: 0ca1 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 73 Offset: 00094600 Length: 09aa Min Alloc: 09aa Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 74 Offset: 00095200 Length: 0337 Min Alloc: 0337 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) do something with UMBs in DOS memory chain SET HANDLE COUNT to 0x46 do something with UMBs in DOS memory chain close file Segment: 75 Offset: 00095600 Length: 1428 Min Alloc: 1428 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 76 Offset: 00096e00 Length: 0627 Min Alloc: 0627 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 77 Offset: 00097600 Length: 0616 Min Alloc: 0616 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) 256 cols brightness Segment: 78 Offset: 00097e00 Length: 0634 Min Alloc: 0634 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) object is inside viewport call interrupt to set mode Segment: 79 Offset: 00098600 Length: 0421 Min Alloc: 0421 Flags: 0c00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 80 Offset: 00098c00 Length: 0f27 Min Alloc: 0f27 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 81 Offset: 00099e00 Length: 0320 Min Alloc: 0320 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 82 Offset: 0009a200 Length: 1c8a Min Alloc: 1c8a Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) GET CURRENT PSP ADDRESS Segment: 83 Offset: 0009c400 Length: 031e Min Alloc: 031e Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 84 Offset: 0009c800 Length: 1478 Min Alloc: 1478 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 85 Offset: 0009e000 Length: 0404 Min Alloc: 0404 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 86 Offset: 0009e600 Length: 40f6 Min Alloc: 40f6 Flags: 0c00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 87 Offset: 000a2800 Length: 050c Min Alloc: 050c Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 88 Offset: 000a2e00 Length: 0523 Min Alloc: 0523 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 89 Offset: 000a3400 Length: 0373 Min Alloc: 0373 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 90 Offset: 000a3800 Length: 09c6 Min Alloc: 09c6 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) mod 360 scale 360 to 256 Segment: 91 Offset: 000a4400 Length: 06fa Min Alloc: 06fa Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) PIT control port: 11000010 - read back counter, programmable one-shot, binary counter read timer flags and val check flags against 00001000, or software triggered strobe? fire one-shots read joystick position and status cpu-generated breakpoint Threshold-gated positioned debug print helper. Moves the cursor via 1000:4d68, then prints only when g_debugMsgLevel <= level. Threshold-gated debug print plus blocking key wait. Current recovered callers are failure/debug-stop paths in dispatch/gump allocation code, not the seg1468 AVI overlay lane. Threshold-gated positioned debug print helper. Moves the cursor via 1000:4d68, then prints only when g_debugMsgLevel <= level. Initializes shared system/video state and allocates the 0x400-byte staging buffer at 1478:45a6 used by ConsolePrintf / DebugPrintAndWaitForInput. Retail -debug does not create this sink; it only sets the print threshold and the video overlay flag. set mode 3 (80x25 8x8 640x200 16) set mode from param1 get current video mode get font information function ptr, defaults to 11140003h Segment: 92 Offset: 000a4e00 Length: 059e Min Alloc: 059e Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) attribute 0x10, search for directories? Segment: 93 Offset: 000a5600 Length: 04f1 Min Alloc: 04f1 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) compared str to "ASYLUM" Segment: 94 Offset: 000a5e00 Length: 0606 Min Alloc: 0606 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Note: this reuses the variable "res" but it's not the same thing Segment: 95 Offset: 000a6600 Length: 0c9f Min Alloc: 0c9f Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 96 Offset: 000a7600 Length: 0582 Min Alloc: 0582 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 97 Offset: 000a7e00 Length: 0db0 Min Alloc: 0db0 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) trim to screen coords Segment: 98 Offset: 000a8e00 Length: 068a Min Alloc: 068a Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 99 Offset: 000a9600 Length: 0355 Min Alloc: 0355 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 100 Offset: 000a9c00 Length: 0697 Min Alloc: 0697 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 101 Offset: 000aa400 Length: 17bc Min Alloc: 17bc Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 102 Offset: 000ac000 Length: 073c Min Alloc: 073c Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 103 Offset: 000aca00 Length: 16cd Min Alloc: 16cd Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 104 Offset: 000ae600 Length: 041b Min Alloc: 041b Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 105 Offset: 000aec00 Length: 09f6 Min Alloc: 09f6 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 106 Offset: 000af800 Length: 1795 Min Alloc: 1795 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 107 Offset: 000b1400 Length: 040c Min Alloc: 040c Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 108 Offset: 000b1a00 Length: 113f Min Alloc: 113f Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) 0~1278 0~479 keyboard get extended shift states Segment: 109 Offset: 000b2e00 Length: 1424 Min Alloc: 1424 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 110 Offset: 000b4400 Length: 04c4 Min Alloc: 04c4 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 111 Offset: 000b4a00 Length: 0489 Min Alloc: 0489 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) frame no 0 Segment: 112 Offset: 000b5000 Length: 1670 Min Alloc: 1670 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 113 Offset: 000b6a00 Length: 04a6 Min Alloc: 04a6 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 114 Offset: 000b7000 Length: 0df1 Min Alloc: 0df1 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 115 Offset: 000b8000 Length: 0978 Min Alloc: 0978 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 116 Offset: 000b8c00 Length: 0aa3 Min Alloc: 0aa3 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Intrinsic 0FE shapeno 21 is the computer frame End of ComputerGump_CreateGump: clears DS:0x085f before returning the modal computer gump, which explains why gameplay option-key handling (including Alt+F10) is suppressed while this modal is active. Computer-gump teardown override. Restores the gameplay-input gate at DS:0x085f, releases pending text at +0x34/+0x36, refreshes controller/UI state, then falls into the generic gump cleanup path and optional free. Computer-gump teardown override. Restores the gameplay-input gate at DS:0x085f, releases pending text at +0x34/+0x36, refreshes controller/UI state, then falls into the generic gump cleanup path and optional free. very short "beep" sound for text being displayed Segment: 117 Offset: 000b9a00 Length: 3157 Min Alloc: 3157 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Live NE hidden cheat-menu wrapper confirmed by direct disassembly. Builds cheat_event_listener_create with mode byte 1, then enters the larger modal/UI traversal lane using current UI state. This is the current best direct retarget target for the 0x103 cheat success path. Likely intended breakpoint/debugger callback target. Expects a live seg1408 debugger state object at 0x659c/0x659e, resolves the current unit filename, loads that file, centers on the current line, and enters the modal debugger UI. No direct retail caller has been confirmed. Constructor arg site for cheat_menu_open_from_current_slot. Current live call shape is PUSH 1, PUSH [BP+8], PUSH [BP+6], PUSH 0, PUSH 0, CALL 13a0:19b1. On a COPY only, preserve the leading mode byte 1 and zero the two caller-frame words if the direct 1130:2b78 retarget is tested from the cheat matcher context. Smaller hidden modal wrapper. Directly constructs cheat_event_listener_create and traverses it, but prior deferred-hook experiments reached the UI here from the wrong runtime context and hit FLEX.C line 83. Keep as a rejected or secondary patch target unless a safer controller context is proven. Generic modal wrapper for the same usecode debugger UI. It is a practical forced-open target because it skips current-unit preload, but prior retail patch tests show that entering it from the wrong runtime context still fails. Constructor arg site inside cheat_menu_open_modal. This is the live NE counterpart of the previously tested modal-wrapper patch lane. Rejected path: 13e8:25dd (0x42f branch) -> retarget here reached the menu but failed at runtime. Sets the current debugger line selection and optional anchor line, clamps the requested line to the loaded file range, clears transient cursor state, and forces a redraw. Centers the debugger viewport on a requested source line. Stores the target line in the gump state, computes a top-of-window line from the visible row count, and then delegates to 13a0:0b06 to clamp and apply the selection. Loads a usecode/debug unit file into the debugger panes. Resets selection state, drops any previously loaded file object, opens the requested unit/file, refreshes the list/text widgets, and reports failure if the file is too large or cannot be opened. Creates the usecode debugger gump: allocates the root gump, builds the menu bar, creates the file/list panes, initializes the shared watch table, stores the open-for-current-unit mode flag, resolves the base usecode path, and registers the debugger/control event bundle. cheat_event_listener_create registers the shared cheat/control event bundle here, including 0x23f, 0x410, 0x411, 0x431, 0x441, 0x421, and 0x22d. This is listener-side subscription data, not the compiled emitter of 0x410. Shared cheat-event listener dispatcher. Event object code comes from +0x6; the 0x410 case remaps to local state 0x0e before falling into the shared tail. Confirms that the hidden menu lane reacts to immortality, but does not emit it. Main usecode debugger event dispatcher. The recovered cases map to debugger-style commands rather than retail cheats: open unit/file, go to line, watch/inspect, clear watches, change global, find/search again, and break-to-debugger. Event 0x23f is reused as a local debugger state command, and incoming event 0x410 is remapped to local state 0x0e before entering the shared state-machine tail. Builds the hidden usecode debugger menu bar. The recovered labels are File/Open Unit/View File, Run/Run to cursor/Trace into/Step over/Run until return, Breakpoints/Toggle F2/Break to TDP/Delete All, Search/Find/Search again, and Data/Go to line/Watch/Inspect/Clear Current Watch/Clear All Watches/Change Global/Quit. Segment: 118 Offset: 000bd400 Length: 0a0a Min Alloc: 0a0a Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 119 Offset: 000be200 Length: 0419 Min Alloc: 0419 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 120 Offset: 000be800 Length: 09ae Min Alloc: 09ae Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 121 Offset: 000bf400 Length: 0ace Min Alloc: 0ace Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) small boop (backspace) small beep Intrinsic 0C4 10 is the gump shape for the frame for the keypad configure a bunch of button gumps.. note the repeating coordinates as x/y offsets. 0x19 (25) is the distance to the top of the button area in the frame (gump 10) enter button code correct sound code incorrect Segment: 122 Offset: 000c0200 Length: 3149 Min Alloc: 3149 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) stop proc type 0x206 (fade) 0x3a = "new game" button 0x3b = "load game" button "save game" button "options" button "credits" button "quit" button Music track 0x12 is Menu 0x4a - mommy's boy (left/right frames) 0x4b - weekend warrior (left/right frames) 0x4c - loose cannon (left/right frames) 0x4d - no remorse (left/right frames) frame no 0 frame no 0 Segment: 123 Offset: 000c3c00 Length: 0e6d Min Alloc: 0e6d Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) check free disk space for save Segment: 124 Offset: 000c4e00 Length: 03dd Min Alloc: 03dd Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 125 Offset: 000c5400 Length: 1a3e Min Alloc: 1a3e Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Intrinsic 134 set the intro movie flag to.. the intro movie flag? when cheating, always load item set 0 gump shape 0x10 = 16 = big triangle yes button gump shape 0xf = 15 = big triangle no button gump shape 0x1c = 28 = buy button gump shape 0xd = 13 = big triangle left button gump shape 0xe = 14 = big triangle right button gump shape 0x1a = 26 = blank white rounded-bottom button gump shape 0x1b = 27 = ammunition button gump shape 0x53 = 83 = weapons white button gump shape 0x1d = 29 = white exit button reset "purchase pending" flag shows after the "i don't accept returns" video in the first trip to the base clear the current data if selected >= nitems seleted = nitems - 1 if selected < 0 clear flag in dispatcher proc set flag back in dispatcher proc Movie 18D/E/F - "Don`t tell me. Don`t tell me. I know what you want... Because of all the Consortium activity of late, the shipment I was expecting, it didn't make it. No. My stocks are extremely low, you might not find everything. I`m sorry about that. But these things happen, you know? Do you see anything you like? Movie 18A/B/C - Salutations. The Weasel's here with the gear! Everything your destructive little heart could want. Big guns, little guns and Blast PACs in between. Peruse the merchandise and we`ll get down to business. Hm, what will it be today, Captain? First intro movie 17A - "Weasel's the name, selling weapons is my game" Set state to 6 (browsing) Movie 19C - Let's not waste each other's time. Buy something or move on! There are other customers waiting. There. There. There. So, what'll it be? Are you interested or not? next state = CheckBuyMore Movie 21A/B - So, have you made up your mind? Is this what you want? Movie 21E - I should have known. I should have known. I know it's hard to make up your mind, but I need to go on. Can`t you see? They`re here now. Is there something else you're interested in right now? next state = CheckBuyMore Movie 21C - Ah, another satisfied customer. It's always a pleasure serving the Resistance. I hate those. Anything else I can do for you, Captain? next state = CheckBuyMore Movie 20C - Sorry, Captain, but I don't take the Consortium Express Card. Just cold, hard credits, if you please. Perhaps there's something else I could interest you in... Something you could afford, maybe. next state = Browsing button 1 = Yes if state == CheckBuyMore, state = Browsing if state == ConfirmPurchase state = CompletedPurchase button 0 = no button; if state == CheckBuyMore state = ClosingIThink? if state = ConfirmPurchase state = CancelledPurcase button 2 = "buy" button button 3 = exit button if item has been purchased state = ConfirmPurchase state = CancelledPurchaseMaybe1? 4 = left button 5 = right button 8 = weapons button 7 = ammunition button ammunition is always data block 1 probably onkeyevent?? state is ConfirmPurchase or CancelledPurchase3? or CompletedPurchase or CheckBuyMore weapon (only hold one) if family 10 (weapon) non-weapon, count quality family 11 (ammo) update number of credits held clear the pending purchases (and pending purchase count) shape 0x111 = keycard shape 0x4ed = credits family 10 (weapon) 11 = ammo 12 = bomb 13 = invitem Segment: 126 Offset: 000c7400 Length: 402a Min Alloc: 402a Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Intrinsic 091 Intrinsic 093 intrinsic 094 This process stops the music and then plays credits (see fn at 0x13E80000) Intrinsic 072 intrinsic 075 Intrinsic 0D3 This is called at the end of surveilance camera operation. Normally along with clear avatar in stasis. Intrinsic 0A6 Intrinsic 037 and 0B8 shape 1261 .. credits no credits shape 273 = keycards (look like cell phones) batteries! shape 931 = fusion battery (10000 energy) shape 932 = fission battery IONIC / PLASMA / GRAVITON shapes shape 1376 == cru_spider shape 1326 = IONIC shape 1327 = PLASMA shape 1328 = GRAVITON Intrinsic 074 Intrinsic 070 Intrinsic 071 Shows the hidden Laurie computer-gump hint string at DS:0x605e. The 13e8:0f4a wrapper calls this only when DS:0x085f says gameplay option-key handling is active. Shows the hidden Laurie computer-gump hint string at DS:0x605e. The 13e8:0f4a wrapper calls this only when DS:0x085f says gameplay option-key handling is active. Paired with 13e8:0ef9. This path stops SFX, clears DS:0x27cb so Controller_HandleKeyEvent stops consuming gameplay keys, flips the modal/overlay state bytes at DS:0x2c64 and DS:0x8c53, then refreshes the camera. Paired with 13e8:0ef9. This path stops SFX, clears DS:0x27cb so Controller_HandleKeyEvent stops consuming gameplay keys, flips the modal/overlay state bytes at DS:0x2c64 and DS:0x8c53, then refreshes the camera. Inverse of 13e8:0e7d. Restores DS:0x27cb so controller key handling resumes, clears the modal/overlay flags at DS:0x2c64 and DS:0x8c53, refreshes camera state, and clears the secondary DS:0x6050 latch. Inverse of 13e8:0e7d. Restores DS:0x27cb so controller key handling resumes, clears the modal/overlay flags at DS:0x2c64 and DS:0x8c53, refreshes camera state, and clears the secondary DS:0x6050 latch. Tiny wrapper around Game_ShowLaurieHintComputerGump. It bails when DS:0x085f is low, which ties the Laurie hint path to the same gameplay-input gate that also suppresses Alt+F10. Tiny wrapper around Game_ShowLaurieHintComputerGump. It bails when DS:0x085f is low, which ties the Laurie hint path to the same gameplay-input gate that also suppresses Alt+F10. Shape 4d4 = data link shape 0x598 = a weird smiley thing.. "Exit to dos?" sound press ~ button to toggle cheats.. CTRL-Q = "CD Transfer display" CTRL-M = switch music track CTRL-L - show coordinates 0x42f = CTRL-V - show version information 'T' Case 'b' or 'B' - detonate bomb search area for shape 0x55F (1375) - DETPAC Ctrl+F7 branch: toggles debug overlay flag 1478:0ee0, then forces camera refresh via [g_cameraProcess+0x2c]. This path is gated by 1478:0844, so it only works when the cheat/debug latch is already enabled. Alt+F7 branch: toggles debug overlay flag 1478:2bc9, then forces camera refresh via [g_cameraProcess+0x2c]. This is one of the three cheat-gated F7 overlay toggles. F7 branch: toggles debug overlay flag 1478:2bca, then forces camera refresh via [g_cameraProcess+0x2c]. This is the plain F7 overlay toggle under the same 1478:0844 gate. "Quick load." sound "quick save" sound Event 0x7e branch inside World_HandleKeyboardInput. Requires DS:0x844 but flips the independent keyboard cheat latch at DS:0x6045 and posts the 0x6087/0x6091 on-off notifications. This is the main runtime path that can undo a successful jassica16 toggle later. Event 0x7e branch inside World_HandleKeyboardInput. Requires DS:0x844 but flips the independent keyboard cheat latch at DS:0x6045 and posts the 0x6087/0x6091 on-off notifications. This is the main runtime path that can undo a successful jassica16 toggle later. Event 0x7e runtime cheat-latch toggle. This path requires cheats_enabled (0x844) but flips the live keyboard latch at 0x6045 separately and posts the on/off notifications at 0x6087 and 0x6091. In other words: -laurie grants permission for this path, but does not itself turn the latch on. Logical-~ hotkey path: flips only 1478:6045 after the wider 1478:0844 gate has already passed. Because this branch is keyed from the translated logical keycode side of World_HandleKeyboardInput rather than the raw scancode matcher, Shift is normally required on a US layout to produce 0x7e. case '?' - show help screen case 'e' or 'E' - use energy cube 0x582 == 1410 == energy cube 'm' - use medikit in inventory 'R' - targeting reticle targetting reticle active Live NE event 0x410 handler: gated by cheats_enabled (0x844), toggles DS:0x604f / g_cdTransferDisplayActive, and posts the CD TRANSFER DISPLAY ACTIVE/INACTIVE notification strings at 1478:60d2 and 1478:60ee. This is distinct from the direct Alt+F10 immortality toggle in Key_HandleOptionKeys. Live NE event 0x410 handler: gated by cheats_enabled (0x844), toggles DS:0x604f / g_cdTransferDisplayActive, and posts the CD TRANSFER DISPLAY ACTIVE/INACTIVE notification strings at 1478:60d2 and 1478:60ee. This is distinct from the direct Alt+F10 immortality toggle in Key_HandleOptionKeys. Retail second far-call slot inside the 0x410/Ctrl+Q body. Retail target is Dispatch_ModalGump. Current debugger patch candidates reuse this relocation entry as the private UI call target; an earlier O/P script bug left this slot on the retail target, producing an invalid runtime build. 'Q' - cycle through weapons 'W' - cycle through weapons 'U' - use item 0x4d4 = 1236 = datalink, 0x52d = 1325 = scanner, 0x52e = 1326 = ionic, 0x52f = 1327 = plasma, 0x530 = 1328 = graviton i - cycle through inventory 'O' - toggle inventory in reverse Ctrl+L branch: builds and displays the "X: %u Y: %u Z: %u" popup using avatar coordinates. Online cheat lists that claim Ctrl+C for current location are incorrect in this build. 'f' - paint frames Rejected deferred patch context. This 0x42f branch also emits 0x103, but prior retarget tests entered the hidden menu from the wrong deferred state and hit the retail FLEX.C line 83 failure after the pointer appeared. Do not treat this as the live patch point. Controller-side 0x103 lane still matters only as a forced-entry patch candidate. The stronger orphaning evidence now sits in the seg1408 breakpoint callback path rather than in the cheat-toggle event helper. play "crusader, no remorse" voice TODO: Somewhere in here it fetches the current difficulty level case 'G' or 'g' - grab nearby items h - hack mover - only works in Laurie mode 'S' - select nearby items if SI_SELECTABLE is zero, store the value and give directly to avatar in the function below, otherwise just call the Use event and clear offset 0x39 (so it doesn't get given to avatar) if shape is 0x4ed OR family in (10, 11, 12, 13) OR typeflags[6] bit 1 is set add 1 to the candidate count if we have some candidates.. if no candidates.. nothing to select "beeboop" sound if the grab flag was set.. grab it now shape 0x5a3 = 1443 = use item crosshairs frame 0x51 - first page of help frame 0x51 - second page of help Segment: 127 Offset: 000cc600 Length: 08f6 Min Alloc: 08f6 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) fade 0x80 colors out at step size 4 max hrange = 1278 max vrange = 479 bump up the min value (ie, keep making it darker) Segment: 128 Offset: 000cd200 Length: 05d0 Min Alloc: 05d0 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 129 Offset: 000cda00 Length: 0d77 Min Alloc: 0d77 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) joystick calibration successful Constructor for the seg1408 debugger breakpoint/state object. This object holds breakpoint entries, current-frame/unit state, and run-mode flags and appears to be the object expected at 0x659c/0x659e when debugger support is live. Runtime breakpoint gate for the hidden usecode debugger. Stores the current line in the seg1408 debugger state, checks file+line breakpoints and step/run flags, and callbacks through the object's vtable when a break condition is met. This is a stronger surviving entry path than the cheat-toggle event hook. Break-next dispatch branch: this is the narrowest shared compiled hook for a deferred Ctrl+Q debugger open because it only runs after 0x659c/0x659e is live and +0x74 is armed. Shared method-0 vtable callback stub. Retail patch attempts that rewired this body crashed at startup, so keep it as negative evidence: broader than the break-next branch at 1408:00cf. Segment: 131 Offset: 000cf000 Length: 044d Min Alloc: 044d Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 132 Offset: 000cf600 Length: 3eb8 Min Alloc: 3eb8 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) called by usecode op 0x5a (init) Interpreter-side handoff into the hidden usecode debugger: if 1478:659c/659e holds a live seg1408 break-state object, this CALLF checks the current file/line and may callback into the seg109 debugger UI path. Interpreter-side handoff into usecode_debugger_maybe_break_on_current_line. If retail never instantiates the seg1408 debugger state object at 0x659c/0x659e, this compiled breakpoint hook remains dormant and the debugger UI stays orphaned. Opcode 0xd = push string Opcode 0x41 = push local var (string) 26 = strcmp, 16 = concat 0x52 relative jump Segment: 133 Offset: 000d3800 Length: 215a Min Alloc: 215a Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) copy 4 constants starting at 6608 to 8c7c Category-only item/usecode class selector feeding the owner-row mask tests in 1420:0e3a and 10a0:275f. It chooses one of the current runtime category bases and does not by itself prove an NPCTRIG or EVENT class-family choice. Generic owner-row mask gate for item usecode events: computes the class id through 1420:0dc5, tests the owner row at 0x6611 for the supplied 32-bit mask pair, and only then creates the usecode process. Int 3 == software generated breakpoint Segment: 134 Offset: 000d6000 Length: 0ef0 Min Alloc: 0ef0 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 135 Offset: 000d7000 Length: 03b7 Min Alloc: 03b7 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 136 Offset: 000d7600 Length: 05bd Min Alloc: 05bd Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Record the value of color 1 cycle colors 2-7 to the color before it tmpcol = g_cycleColorData2[i] g_cycleColorData2[i] = tmpcol update the video card palette for colors 1-15 Segment: 137 Offset: 000d7e00 Length: 0fbb Min Alloc: 0fbb Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) fn ptr = 0x1478051e fn ptr = 0x1478051e fn ptr = 0x1478051e Intrinsic 077 Intrinsic 08F Intrinsic 0DA 0x3f (63) is white, as SVGA colors are 6-bits fn ptr = 0x1478051e fn ptr = 0x1478051e Segment: 138 Offset: 000d9200 Length: 32e4 Min Alloc: 32e4 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) fn ptr = 0x1478051e fn ptr = 0x1478051e fn ptr = 0x1478051e fn ptr = 0x1478051e fn ptr = 0x1478051e Segment: 139 Offset: 000dcc00 Length: 0984 Min Alloc: 0984 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) 0x3c1 == 961; 0x281 == 641 < 381 Segment: 140 Offset: 000dd800 Length: 0c6f Min Alloc: 0c6f Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 141 Offset: 000de600 Length: 002b Min Alloc: 002b Flags: 0c00 Code Fixed LoadOnCall Impure (Non-shareable) Segment: 142 Offset: 000de800 Length: 4371 Min Alloc: 4371 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) tag "01wb" "AVI " "avih" "LIST", "strl" "strh" 'strf' 'RRV1' 'RRV2' 1478:0859 gate from the retail -debug switch. When enabled, update the per-frame video timing overlay before advancing playback. 1478:0859 gate from the retail -debug switch. When enabled and param_2 != 0, refresh the video timing overlay during chunk streaming/priming. Builds two 500-byte timing-marker traces and copies them into adjacent scanlines near the bottom of a 640-wide video buffer. Reached only from the seg1468 video-player path when 1478:0859 is non-zero; this is separate from the hidden seg109/seg1408 usecode debugger state at 1478:659c/659e. "LIST" Segment: 143 Offset: 000e3400 Length: 06f5 Min Alloc: 06f5 Flags: 0d00 Code Fixed LoadOnCall Impure (Non-shareable) write to timer control port - select counter 0, counter latch, zero detection interrupt Segment: 144 Offset: 000e3c00 Length: 8dbc Min Alloc: 8dbc Flags: 0d01 Data Fixed LoadOnCall Impure (Non-shareable) Embedded mission-to-map lookup table used by the debug -warp path in Game_Start. Current recovered word entries: 0,1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,40. g_warpMissionToMapTable: executable-side mission-to-map word table used only by the -warp startup path, not by the normal fresh-game start. g_fadeProcess3FnPtr g_gumpsFlxFilenamePtr s_music.flx s_gumps.flx Set by the retail -debug parser branch, but no downstream reader has been recovered yet. Treat as an otherwise-unclassified or vestigial debug latch until a real consumer is found. Set by the retail -debug parser branch. Read only in seg1468 video-player code to enable the timing overlay helper now named VideoPlayer_DrawDebugTimingOverlay. Global gameplay-input / option-key-active gate. Set at Game_Start, cleared when ComputerGump_CreateGump hands control to the modal computer gump, and restored by ComputerGump_CloseAndResumeGameplay. Key_HandleOptionKeys checks this before the 0x6045 cheat latch. this gets set but appears to never be read? inititalized to a block of 200 bytes g_femaleUghNoises Gameplay controller/key-input enabled latch. Controller_HandleKeyEvent reads this before invoking option-key and gameplay key handling; 13e8:0e7d clears it during modal transitions and 13e8:0ef9 restores it. these all point to the null byte at the end of the wpnoverlay.dat string. these are shapes of weapons and some value Modal overlay-suppression flag. Set by 13e8:0e7d and cleared by 13e8:0ef9; the 1188 overlay draw/clear helpers skip their work while this flag is high. points to a block of 640 words points to a block of 640 words clear system timer process flag.. maybe destroy? set system timer process value to this g_vtableForSomething these are pointers to the Pure Virtual Function. TODO: What process uses this? Negative evidence for retail debugger patching: this dword sits inside live debugger-adjacent data, not proven spare storage. Raw bytes nearby include active-looking far-pointer values and DEBUGGER.C text; candidates that reused 1478:6597 as a deferred target slot were retired. these are color numbers, used as offsets into the palette data these are flags. if the value is 1 then the color is cycled differently and some randomness is used.. Start of the static stdio-style FILE table in DS. First entry is handle 0 (stdin). The retail -debug text lane does not create a separate sink; ProbablyPrintDebugMessage formats into this table's handle-1 entry at 1478:6c46 instead. Second static stdio-style FILE entry in DS, with handle word 1. ProbablyPrintDebugMessage / ConsolePrintf target this record, so retail -debug text goes to ordinary DOS stdout rather than to a hidden debugger-only console. see fn 11b0:09ba - seems to be 4 blocks of 0xd sized data music buffer Global print threshold used by ConsolePrintf, DebugPrintAndWaitForInput, and the positioned print helpers. The compare is `if (call_level < g_debugMsgLevel) skip`, so the retail -debug switch sets the minimum printed level to 10 rather than creating a new output sink. Transient modal camera/overlay state flag. Raised by 13e8:0e7d and cleared by 13e8:0ef9 together with the broader gameplay-input disable/restore sequence. Saved copy of DS:0x2d24 taken on entry to 13e8:0e7d. It appears to preserve the pre-modal mode byte so the paired modal transition can refresh camera/audio state consistently. struct Palette initailized to 0 initialized to 0x800 initialized to 0x900 Segment: 145 Offset: 00000000 Length: 0000 Min Alloc: 2000 Flags: 0c01 Data Fixed LoadOnCall Impure (Non-shareable) Title: CRUSADER.EXE Format: New Executable (NE) Windows CRC: 00000000 Program Entry Point (CS:IP): 0001:0000 Initial Stack Pointer (SS:SP): 0091:2000 Auto Data Segment Index: 0090 Initial Heap Size: 0000 Initial Stack Size: 0000 Minimum Code Swap Size: 0000 Linker Version: 5.10 Target OS: Pharlap 286 OS/2 Windows Version: 0.0 Program Flags: 09 Single Data Protected Mode Application Flags: 00 Other Flags: 00 void __cdecl16far entry(void) void __cdecl16far exit(int __status) void __cdecl16far FUN_1000_0240(void) int __cdecl16far dos_set_default_drive(undefined2 driveno) void __cdecl16far free(void * ptr) void __cdecl16far dos_get_default_drive(int * driveno) void __cdecl16far dos_set_default_drive(int driveno, uint * pout_numletters) void __cdecl16far perr(char * str) void __stdcall16near exitMaybe_1000_31ee(int param_1, int param_2, int param_3) void __cdecl16far exit_1000_3245(undefined2 param_1) int __cdecl16far multiply(word x, word y) void __stdcall16far memcpy(word * src, word * dst, word len) word __cdecl16far dos_cwd(undefined2 param_1, byte drivenum, char * buf) int __cdecl16far FUN_1000_3310(undefined2 driveno) void __cdecl16far dos_get_free_disk_space(undefined2 param_1, undefined2 * param_2) int __stdcall16far random_something_1000_338e(int param_1, uint param_2, uint param_3, word param_4) undefined4 __stdcall16far FUN_1000_3395(int param_1, uint param_2, uint param_3, uint param_4) int __regcall FUN_1000_343c(int param_1, byte param_2, byte param_3) void __regcall FUN_1000_34a1(dword param_1, word param_2) void __cdecl16far dos_seek(int param_1, int param_2, int param_3, int param_4, int param_5) byte * __stdcall16far malloc_far_probably(word size) dword __cdecl16near Multiply_32bit_1000_3711(word param_1, word param_2, word param_3, word param_4) uint __cdecl16far FUN_1000_3775(void) void __cdecl16far dos_set_system_date(word x, dword y) void __cdecl16far dos_set_system_time(word param_1, dword param_2) word __cdecl16far dos_unlink(word param_1, word param_2) int * __cdecl16far probably_some_alloc_1000_42e2(int * param_1, int blocksize, int nblocks, int param_4, uint param_5, dword transform_func) int __stdcall16near ProbablySomethingDebuggy(word param_1, char * param_2, ...) void __cdecl16far FUN_1000_4ccf(char * param_1, word param_2, ...) dos_stderr_printf_float_formats_not_linked word __cdecl16far dos_getcharmaybe_1000_4d0a(void) void __cdecl16far FUN_1000_4d68(byte param_1, byte param_2) uint __cdecl16far atoi(char * s) uint __cdecl16far far_atoi(char * s) undefined2 __cdecl16far dos_getorset_attributes(undefined param_1, undefined param_2, undefined param_3, undefined param_4, undefined param_5) undefined2 __cdecl16far dos_find_first_matching_file(char * fname, byte * disk_transfer_area, word param_3, word file_attr_mask) dword __cdecl16far FUN_1000_5aca(undefined2 param_1, undefined2 param_2, undefined2 param_3, undefined2 param_4) void __cdecl16far FUN_1000_5aff(dword param_1, undefined2 param_2, int * param_3) uint __cdecl16far FUN_1000_5e7f(dword param_1, uint param_2, uint param_3, dword param_4) void __cdecl16near FUN_1000_5f0a(void) undefined2 __cdecl16far FUN_1000_60d2(uint param_1, uint param_2, uint param_3) void __cdecl16far RuntimeProbablyItoa(int value, dword str, int base) int __cdecl16far memcmp(char * s1, char * s2, undefined2 len) byte * __cdecl16far memcpy(byte * dst, byte * src, uint nbytes) undefined __cdecl16far memset(char * ptr, undefined2 nbytes, byte val) char * __cdecl16far memset_2(char * ptr, undefined1 val, undefined2 nbytes) void __cdecl16far FUNmaybememcpy_1000_636e(void * param_1, void * param_2, uint param_3) word * __cdecl16far FUN_1000_63c0(word * param_1, char * param_2, uint param_3) void __cdecl16far ProbablyPrintDebugMessage(char * param_1, char * param_2, ...) void __cdecl16far FUN_1000_6ed3(undefined * param_1, char * param_2) void __cdecl16far FUN_1000_6ef5(undefined * param_1, char * msg, word param_3) int __cdecl16far sscanf(char * __s, char * __format, ...) char * __cdecl16far strcat(char * __dest, char * __src) char * __cdecl16far FUN_1000_6fff(undefined4 param_1, undefined4 param_2) int __cdecl16far strcasecmp(char * __s1, char * __s2) int __stdcall16far strlen(char * s) char * __cdecl16far FUN_1000_7121(undefined4 param_1, char * param_2) bool __cdecl16near FUN_1000_83a0(undefined2 param_1, undefined2 param_2, undefined2 param_3, undefined2 param_4) undefined2 __stdcall16near dos_error_1000_83a7(int errno) dword * __cdecl16far malloc_1082_bytes(dword * param_1) byte * __stdcall16far FUN_1008_0032(byte * param_1, undefined4 param_2) void __cdecl16far File_CloseAndFreeIfParam2Bit0(struct File * * file, uint dofree) uint __cdecl16far FUN_1008_0098(undefined4 param_1, undefined4 param_2) void __cdecl16far File_CloseAndFree_1008_0117(struct File * * ppfile) void __cdecl16far FUN_1008_0167(struct File * * param_1, uint * param_2) dword __stdcall16far FUN_1008_028c(dword param_1) uint __cdecl16far ShapeData_GetDamagingAndSolidFlags(byte * pflags) void __cdecl16far FUN_1010_0032(uint x, uint y, byte z) uint __cdecl16far FUN_1010_007d(int x1, int y1, int x2, int y2, char z) uint __cdecl16far AreaSearch_FindItemContainedInRange(uint x1, uint y1, uint x2, uint y2, byte z1, byte z2, int * pout) void __cdecl16far FUN_1010_02de(int itemno) void __cdecl16far Game_Start(void) void __cdecl16far nullfn_03f5(void) void __cdecl16far MapJumpProcess_LoadFixedFormatData(void) void __cdecl16far MapJumpProcess_ClearSoundAndTrackers(void) struct Process * __cdecl16far MapJumpProcess_Create(struct Process * p_proc, word mapno) undefined __cdecl16far MapJumpProcess_Run(struct Process * p_proc) Intrinsic 0CB void __cdecl16far MapJumpProcess_CreateNew(undefined2 mapno) dword __stdcall16far get_as_dword(word param_1, word param_2) void __cdecl16far nullfn_1020_08cd(void) void __cdecl16far nullfn_1020_08d2(void) void __cdecl16far Gamepal_Init(void) word * __cdecl16far Gamepal_InitXformpalDatStruct(word * param_1) void __cdecl16far FUN_1028_0216(int * param_1, uint param_2) void __cdecl16far Gamepal_LoadXformpalDat(undefined4 data) void __cdecl16far FUN_1028_02dc(dword * param_1) void __cdecl16far Gamepal_ReadXformpal_1028_0348(int * param_1) void __cdecl16far FUN_1028_040a(byte * param_1) void __cdecl16far nullfn_1028_0440(void) void __cdecl16far nullfn_1028_0445(void) void __cdecl16far Palette_FadeToGreyscale(int nsteps) void __cdecl16far FadeProcess_Create_2(int param_1) Intrinsic 097 void __cdecl16far FadeProcess1_Run_PausesCycle(void) void __cdecl16far FadeProcess2_Run(struct FadeProcess * p_proc) byte __cdecl16far return0_1028_0724(void) struct Process * __stdcall16far GameTime_ProcessCreate(struct Process * p_proc) undefined __cdecl16far GameTimeProcess_Run(struct Process * p_proc) struct Process * __cdecl16far Animation_CreateProcess(struct Process * p_proc) void __cdecl16far Create_GameTimeAndAnimationProcesses(void) void __cdecl16far AnimProcess_SetField0x50(int param_1) dword __cdecl16far Timer_GetCurrentTimerTick(void) void __cdecl16far nullfn_1030_03c7(void) void __cdecl16far AnimProcess_SetAnimProcess(dword pproc) void __cdecl16far GameTimeProcess_Set(dword proc) byte * __stdcall16far AreaSearch_CheckCollision(byte * pflags, int itemno, char param_3) void __cdecl16far AreaSearch_CheckCollision(byte * pflags, int shape, struct Point3 * pt, char param_4, int itemno) struct GravityProcess * __stdcall16far GravityProcess_CreateProcess(struct GravityProcess * p_proc, int itemno, int xs, int ys, int zs, int grav, int param_7, struct Point3 * pt) undefined __cdecl16far GravityProcess_Run(struct GravityProcess * p_proc) void __cdecl16far FUN_1038_11fd(int * param_1) Intrinsic 028 uint __cdecl16far Item_Hurl(int * pitemno, int xs, int ys, int zs, int grav) Intrinsic 03E void __cdecl16far Item_Fall(int * pitemno) void __cdecl16far DosExtenderCallInterrupt_1040_0000(void) void __cdecl16far DosExtenderCallInterrupt_1040_0035(void) void __cdecl16far DosExtenderCallInterrupt_1040_0041(void) void __cdecl16far DosExtenderCallInterrupt_1040_005a(void) int * __stdcall16far FUN_1040_00a6(int * vals, int x1, int y1, byte z1, int x2, int y2, byte z2, int param_8, int gravval) void __cdecl16far Item_HurlWithParams(int * vals, uint itemno) void __cdecl16far FUN_1040_039e(char * param_1, undefined2 * param_2, undefined2 param_3) dword __stdcall16far dos_free_disk_space(void) struct Process * __stdcall16far FUNCreateProcess_1048_0000(struct Process * p_proc) void __cdecl16far Config_1048_0065(struct Process * p_proc, long param_2) Intrinsic 06B bool __cdecl16far Get_CompiledWithViolence(void) Intrinsic 0CE - is GAME COMPILE=1 bool __cdecl16far Get_GameIsReleaseBuild(void) void __cdecl16far Init_ABunchOfThings(void) void __cdecl16far Init_CheckFreeDiskSpace(void) undefined2 * __stdcall16far FUN_1048_01dc(undefined2 * param_1, undefined2 param_2, char * * param_3) void __cdecl16far CheckForLaurieArg(char * s, word s_seg) undefined __cdecl16far HandleCommandlineArgs(undefined2 param_1, undefined2 param_2, undefined2 argc, char * * argv) void __cdecl16far nullfn_1048_0d39(void) void __cdecl16far nullfn_1048_0d3e(void) void __cdecl16far Savegame_Init(void) char * __stdcall16far Savegame_GetFilename(int no) void __cdecl16far Savegame_QuickSave(void) void __cdecl16far Savegame_LoadProbably(void) word __cdecl16far FUN_1050_051f(int param_1) void __cdecl16far FUN_1050_0532(int param_1, undefined2 * param_2, undefined2 param_3) void __cdecl16far FUN_1050_057e(struct File * param_1, uint param_2) void __cdecl16far SnapProcess_CreateProcess(struct SnapProcess * p_proc) void __cdecl16far SnapProcess_Init(struct SnapProcess * p_proc) void __cdecl16far SnapProcess_Run(struct SnapProcess * pproc) struct Rect * __stdcall16far Snap_GetSnapEggRange(struct Rect * prect, struct SnapProcess * p_proc, int itemno) void __cdecl16far Snap_AddSnapEgg(struct SnapProcess * p_proc, int eggitemno) void __cdecl16far Snap_RemoveEgg(struct SnapProcess * p_proc, int itemno) bool __cdecl16far Snap_IsCurrentNPCInRangeOfEgg1(struct SnapProcess * p_proc) void __cdecl16far Snap_UpdateEgg1(struct SnapProcess * p_proc) void __cdecl16far SnapProcess_Load(struct SnapProcess * proc) void __cdecl16far Snap_1058_0814(struct SnapProcess * p_proc) void __cdecl16far FUN_1058_08fc(struct Process * p_proc, uint param_2) void __cdecl16far Cache_Init(long size) void __stdcall16far ItemCache_1060_002a(void) void __cdecl16far ItemCache_1060_0036(void) void __cdecl16far Cache_Init2(undefined4 size) void __cdecl16far ItemCache_1060_00ac(void) void __cdecl16far Cache_Init3(void) void __cdecl16far ItemCache_1060_026c(int * param_1, int itemno) void __cdecl16far FUN_1060_02a1(int param_1) void __cdecl16far Cache_Init4(void) void __cdecl16far ItemCache_1060_0303(ulong * param_1, long param_2) void __cdecl16far FUN_1060_0474(long param_1, int param_2, undefined2 param_3) void __cdecl16far FUN_1060_0705(long param_1) void __cdecl16far FUN_1060_091a(long param_1) void __cdecl16far ItemCache_1060_09f7(long param_1) void __cdecl16far FUN_1060_0ecf(long * param_1) void __cdecl16far FUN_1060_0fc0(long * param_1, long param_2) void __cdecl16far FUN_1060_10ba(long * param_1) void __cdecl16far FUN_1060_1244(int param_1) void __cdecl16far nullfn_1060_12e5(void) void __cdecl16far nullfn_1060_18c3(void) void __cdecl16far nullfn_1060_18c8(void) void __cdecl16far nullfn_1060_18cd(void) void __cdecl16far Cache_1060_18ff(undefined4 param_1) int * __stdcall16far CacheFlexHand_1068_0000(int * buf, int size, int param_3, char * path) void __cdecl16far FUNFree_1068_00ed(int * param_1, uint param_2) dword __stdcall16far ItemCache_1068_0159(undefined4 param_1, int param_2) int * __stdcall16far FUN_1068_026a(int * param_1, undefined2 param_2, int param_3) void __cdecl16far nullfn_1068_02d1(void) void __cdecl16far nullfn_1068_02d6(void) byte __cdecl16far return1_1068_02db(void) void __cdecl16far FUN_1068_02e2(int * param_1, uint param_2) void __cdecl16far CacheHandler_AllocCache(void) void __cdecl16far Cache_Free(void) int __cdecl16far CacheHandler_IncreaseSize(int size) void __cdecl16far CacheHandler_Init(void) void __cdecl16far Cache_Uninit(void) int * __stdcall16far Cache_1068_03ff(int * param_1) void __cdecl16far FUN_1068_0452(undefined2 param_1_00, undefined2 param_2, long param_3) void __cdecl16far CacheHandler_1068_049b(void) void __cdecl16far CacheHandlerError(void) void __cdecl16far nullfn_1068_04ec(void) void __cdecl16far FUN_1068_04f1(int * param_1, uint param_2) dword * __stdcall16far ShapesFlx_Load(dword * param_1) int * __stdcall16far CacheShapeHand_1070_0090(int * param_1, char param_2) void __cdecl16far CacheShapeHand_GetDims(int * alt_cacheptr, int shapeno, uint frameno, int * width, int * height, int * xoff, int * yoff) undefined __cdecl16far FUN_1070_0187(int * cacheptr, undefined2 param_2, undefined4 param_3, undefined4 param_4, uint * pnumframes) undefined __cdecl16far World_GetBoundingBox(undefined4 param_1, undefined2 shapeno, undefined2 frameno, struct Rect * dimsout, undefined2 xloc, undefined2 yloc) dword __stdcall16far ItemCache_1070_0288(dword param_1, int param_2, int param_3, long param_4, ulong param_5) void __cdecl16far FUN_1070_046c(undefined4 param_1, int param_2, uint param_3) dword __stdcall16far CacheShapHand_InitAllocAndLoadData1(int * param_1) void __cdecl16far FUN_1070_0dad(int * param_1, uint param_2) struct ShapeFrame * __stdcall16far CacheShapeHand_CacheInFrame(int * cacheblockptr, int shapeno, uint frameno) int * __cdecl16far CacheShapeHand_InitAlloc2(int * param_1) void __cdecl16far CacheShapeHand_Init(void) void __cdecl16far CacheShapeHand_Uninit1(void) void __cdecl16far FUN_1078_0000(long * param_1) void __cdecl16far FUN_1078_0046(long * param_1) void __cdecl16far FUN_1078_0098(long * param_1) void __cdecl16far FUN_1078_00cf(long * param_1) void __cdecl16far FUN_1078_0106(long * param_1, long param_2) void __cdecl16far FUN_1078_013c(long * param_1, long param_2) void __cdecl16far FUN_1078_0181(long * param_1) void __cdecl16far FUN_1078_01c8(long * param_1, long param_2) void __cdecl16far FUN_1078_01f9(long * param_1, undefined4 param_2) void __cdecl16far FUN_1078_023e(long * param_1, undefined4 param_2) void __cdecl16far Cache_Init5(void) void __cdecl16far FUN_1078_03a0(char * param_1) void __cdecl16far FUN_1078_03c2(undefined4 param_1) void __cdecl16far FUN_1078_03e4(undefined4 param_1) void __cdecl16far FUN_1078_0406(word param_1, word param_2) void __cdecl16far FUN_1078_0428(undefined4 param_1) undefined2 __cdecl16far FUN_1078_044a(long * param_1) undefined __cdecl16far FUN_1078_0467(long * param_1) undefined2 __cdecl16far FUN_1078_0485(undefined4 * param_1) void __cdecl16far FUN_1078_04a1(long * param_1, undefined4 param_2) void __cdecl16far FUN_1078_0507(long * param_1, undefined4 param_2) void __cdecl16far FUN_1078_0529(undefined4 * param_1, undefined2 param_2) void __cdecl16far FUN_1078_0548(long * param_1, undefined param_2) void __cdecl16far FUN_1078_0568(long * param_1, undefined2 param_2) byte __cdecl16far Item_TryStackItems(int * pitemno, int otheritem) byte __cdecl16far Item_TryStackNearby(int * pitemno, word other) byte __cdecl16far Item_IsContainedBy(word * pitemno, word otheritem) byte __cdecl16far FUN_1088_0094(uint * item1, word item2) byte __cdecl16far FUN_1088_0315(int * param_1, int param_2, int param_3) byte __cdecl16far FUN_1088_0486(int * pitemno) void __cdecl16far Item_DoRemoveContents(int * pitemno) void __cdecl16far Item_DoDestroyContents(int * pitemno) int __cdecl16far Item_GetWeightTotalRecursive(int * itemno) int __cdecl16far Item_GetVolOfContentsRecursive(int * pitemno) int __cdecl16far Item_GetVolOfContents(int * pitemno) int __cdecl16far Item_GetNumContentsRecursive(int * pitemno) byte __cdecl16far FUN_1088_0784(uint * param_1, uint * param_2) void __cdecl16far Coords_WorldToScreenXY(int x, int y, int * poutx, int * pouty) struct Process * __stdcall16far ClearAvatarInStasisProcess_CreateProcess(struct Process * p_proc) void __cdecl16far ClearAvatarInStasisProcess_Run(struct Process * param_1) struct TeleporterProcess * __stdcall16far Teleporter_CreateProcessForItem(struct TeleporterProcess * p_proc, word itemno) struct TeleporterProcess * __stdcall16far Teleporter_CreateProcessDirect(struct TeleporterProcess * p_proc, int mapno, int qlo, byte dostasis) struct TeleporterProcess * __stdcall16far TeleporterProcess_Create_CurrentMap(struct TeleporterProcess * p_proc, uint qlo, char qhi) void __cdecl16far TeleporterProcess_PutAvatarInStasisTemporarily(struct TeleporterProcess * p_proc, byte qhi) void __cdecl16far TeleporterProcess_Run(struct TeleporterProcess * p_proc) intrinsic 079 int __cdecl16far Teleporter_CreateProcessDirect(int mapno, int teleportid, byte dostasis) intrinsic 096 word __cdecl16far TeleporterProcess_Create(undefined2 mapno, char eggid) intrinsic 0A7 int __cdecl16far Egg_GetXRange(int * pitemno) int __cdecl16far Egg_GetYRange(int * param_1) intrinsic 0A3 void __cdecl16far Egg_SetYRange(int * pitemno, byte val) intrinsic 03F byte __cdecl16far Egg_GetEggId(int * pitemno) void __cdecl16far Egg_SetEggId(int * pitemno, byte val) undefined2 __cdecl16far Item_CallHatchEvent(int * pitemno) uint __cdecl16far Item_CallUnhatchEvent(int * pitemno) struct EggHatcherProcess * __stdcall16far EggHatcher_CreateProcess(struct EggHatcherProcess * p_proc, int itemno) void __cdecl16far EggHatcherProcess_Run(struct EggHatcherProcess * p_proc) void __cdecl16far EggHatcher_1090_0921(struct EggHatcherProcess * p_proc) void __cdecl16far FUN_1090_0a60(struct Process * p_proc, uint param_2) void __cdecl16far FUN_1090_0aaf(struct Process * param_1, uint param_2) void __cdecl16far FUN_1090_0afe(struct Process * param_1, uint param_2) dword * __stdcall16far ItemGlob_LoadData(dword * param_1) int * __stdcall16far ItemGlob_AllocAndInit(int * buf) void __cdecl16far FUNFree_1098_00e8(int * param_1, uint param_2) byte * __stdcall16far ItemGlob_GetGlobItemData(byte * globcache, uint globnum) void __cdecl16far FUN_1098_0339(byte * globcache, int itemno, byte someflag) void __cdecl16far ItemGlob_GlobEggHatch(byte * globcache, uint globno, uint eggx, uint eggy, char eggz, byte someflag) void __cdecl16far ItemGlob_1098_06f1(dword globcache, int globnum) void __cdecl16far ItemGlob_Init(void) void __cdecl16far ItemGlob_Uninit(void) void __cdecl16far Item_AssertValid(uint testval, char * s, word lineno) struct Process * __stdcall16far Item_CreateProcess(struct Process * p_proc, int itemno) void __cdecl16far ItemProcess_Run(struct Process * p_proc) bool __cdecl16far Item_IsAvatar(int * pitemno) byte __cdecl16far Item_IsCurrentControlledNPC(word * pitemno) void __cdecl16far Item_GetScreenCoords(int * pitemno, int * screenx, int * screeny) assuming that crusader uses the same flags as U8.. bool __cdecl16far Item_IsFlipped(int * pitemno) short __cdecl16far Item_GetX(int * pitemno) short __cdecl16far Item_GetY(int * pitemno) uint __cdecl16far Item_GetGumpX(int * pitemno) uint __cdecl16far Item_GetGumpY(int * pitemno) void __cdecl16far Item_SetGumpXY(int * pitemno, int x, int y) byte __cdecl16far Item_GetZ_OfObjOrContainer(int * pitemno) get the centre in x int __cdecl16far Item_GetCX(int * pitemno) get the centre in y int __cdecl16far Item_GetCY(int * pitemno) byte __cdecl16far Item_GetCZ(int * pitemno) byte __cdecl16far Item_GetItemHitPoints(int * pitemno) void __cdecl16far Item_SetItemHitPoints(int * pitemno, byte val) void __cdecl16far Item_SetX(int * pitemno, short x) void __cdecl16far Item_SetY(int * pitemno, short y) void __cdecl16far Item_SetZ(int * pitemno, byte z) struct Point3 * __stdcall16far Item_GetPoint(struct Point3 * ppoint, int * psrcitem) word __cdecl16far Item_GetNext(int * pitemno) uint __cdecl16far Item_GetWeight(int * pitemno) uint __cdecl16far Item_GetWeightForItemAndContents(int * pitemno) uint __cdecl16far Item_GetVolume(int * itemno) byte __cdecl16far Item_GetVolumeIfContainer(int * pitemno) Intrinsic 057 undefined __cdecl16far Item_GetSurfaceWeight(int * pitemno) void __cdecl16far Item_SetNext(int * pitemno, word val) int __cdecl16far Item_GetShape(int * pitemno) Intrinsic 024 void __cdecl16far Item_SetShape(int * pitemno, int shapeno) uint __cdecl16far Item_GetFrame(int * pitemno) void __cdecl16far Item_SetFrame(int * pitemno, word frame) void __cdecl16far Item_10a0_08d8(int * pitemno, uint frameno) void __cdecl16far Item_SetNPCNum(int * pitemno, byte npcno) void __cdecl16far Item_SetNPCNum(int * pitemno, byte npcno) word __cdecl16far Item_GetNpcNum(int * item) void __cdecl16far Item_SetMapArray(int * pitemno, byte mapno) note: although mapno is only byte size, this fun returns a word - check the disasm uint __cdecl16far Item_GetMapArray(int * pitemno) word __cdecl16far Item_GetQ(int * pitemno) assumes shape family 1 ("quality") is the same as in U8 word __cdecl16far Item_GetQuality(int * pitemno) void __cdecl16far Item_SetQuality(int * pitemno, word qval) intrinsic 0A2 uint __cdecl16far Item_GetUnkEggType(int * pitemno) void __cdecl16far Item_SetUnkEggType(int * pitemno, word qval) short __cdecl16far Item_GetQ(int * pitemno) void __cdecl16far Item_SetQAndCallCombineEvent(int * pitemno, word q) short __cdecl16far Item_GetContents(int * pitemno) word __cdecl16far Item_GetContainerIfContained(int * pitemno) word __cdecl16far Item_GetRootContainer(int * pitemno) word __cdecl16far Item_GetGlobNum(int * pitemno) void __cdecl16far Item_SetGlobNum(int * pitemno, word q) void __cdecl16far Item_SetQ(int * pitemno, word q) void __cdecl16far Item_SetQIfContainerType(int * pitemno, word q) intrinsic 03C enum ShapeFamily __cdecl16far Item_GetShapeFamily(int * pitemno) byte __cdecl16far Item_GetTypeFlagCrusader(int * pitemno, int shiftval) enum ItemStatus __cdecl16far Item_GetStatus(int * pitemno) byte __cdecl16far Item_LegalCreateAtPoint(int * pitemno, uint shape, uint frame, struct Point3 * point) byte __cdecl16far Item_LegalCreateAtCoords(int * pitemno, uint shapeno, uint frame, word x, word y, byte z) byte __cdecl16far Item_create_10a0_1186(uint * item, word shapeno, word frameno, short x, short y, short z) byte __cdecl16far Item_Create(uint * pitemno, uint shapenum, uint frame) intrinsic 020 void __cdecl16far Item_PopToCoords(int * item, word x, word y, byte z) intrinsic 0ED void __cdecl16far Item_PopToContainer(int * pitemno, word itemno) Intrinsic 030 intrinsic 0EC void __cdecl16far Item_PopToEnd(int * pitemno, word param_2) intrinsic 022 void __cdecl16far Item_Push(int * pitemno) void __cdecl16far Item_Destroy(int * item) intrinsic 03D void __cdecl16far Item_DestroyContents(int * pitemno) void __cdecl16far Item_RemoveContents(int * pitemno) void __cdecl16far Item_Move(int * pitemno, word x, word y, byte z) void __cdecl16far Item_MoveToContainer(int * pitemno, word container) intrinsic 02E byte __cdecl16far Item_LegalMoveToPoint(int * pitemno, struct Point3 * pt, uint move_until_blocked, int flags) byte __cdecl16far Item_LegalMove(int * pitemno, word * param_2) byte __cdecl16far FUN_10a0_1841(int * pitemno, struct Point3 * pt, byte param_3, int flags, uint itemno2, byte * pblockedout, uint * pcollisionout) void __cdecl16far Item_MoveToPoint(int * pitemno, struct Point3 * pt) void __cdecl16far Item_10a0_196f(int * pitemno, char param_2) Intrinsic 127 byte __cdecl16far Item_GetDirToCoords(int * pitemno, int x, int y) int __cdecl16far Item_GetDirFromCoords(int * pitemno, int x, int y) Intrinsic 0C7 byte __cdecl16far Item_GetDirFromItem(int * pitemno, int itemno) intrinsic 00D byte __cdecl16far Item_GetDirToItem(int * pitemno, int itemno) Intrinsic 064 and 12D void __cdecl16far Item_GetFootpad(int * pitemno, uint * xout, uint * yout, uint * zout) byte __cdecl16far Item_Touches(int * pitemno1, int itemno2) Intrinsic 0A4 byte __cdecl16far Item_Overlaps(int * pitemno1, int itemno2) byte __cdecl16far Item_OverlapsXY(int * pitemno, int otheritem) intrinsics 044, 046, 048, 04A, 04C, 04E, 0A5, 0BC, 0C5, 0DC, 0F1, 0FA, 12C byte __cdecl16far Item_IsOn(int * pitemno, int otheritem) intrinsic 06F byte __cdecl16far Item_IsCompletelyOn(int * pitemno, int otheritem) byte __cdecl16far Item_IsAbove(int * pitemno, int otheritem) byte __cdecl16far Item_IsUnder(int * pitemno, int otheritem) byte __cdecl16far Item_Ascend(int * param_1, int param_2) void __cdecl16far Item_GetLocationPoint(int * pitemno, struct Point3 * ppoint) int __cdecl16far Item_IsNPC(int * pitemno) Intrinsic 065 - is held, meaning is the item contained by an NPC at some level byte __cdecl16far Item_IsInNPC(int * pitemno) Intrinsic 025 void __cdecl16far Item_Touch(int * pitemno) void __cdecl16far Item_SetStatus(uint * pitemno, enum ItemStatus status) Intrinsic 005 void __cdecl16far Item_OrStatus(int * pitemno, enum ItemStatus mask) Intrinsic 01A and others void __cdecl16far Item_AndStatus(int * item, enum ItemStatus mask) word __cdecl16far Item_Look(int * param_1) Intrinsic 08C / 119 / 12A void __cdecl16far Item_SetIsBroken(int * pitemno) void __cdecl16far Item_ClearIsBroken(uint * pitemno) bool __cdecl16far Item_IsBroken(int * pitemno) uint __cdecl16far Item_Use(int * pitemno) void __cdecl16far Item_Hit(int * pitemno, uint hitby, uint damagetype) uint __cdecl16far Item_GetDamaged(int * pitemno, int hitter, uint damagetype_damage, byte * pflagout) word __cdecl16far Item_Anim(int * param_1) int __cdecl16far Item_Bark(int * param_1, char * str) word __cdecl16far Item_Grab(int * pitemno) word __cdecl16far Item_Release(int * pitemno) Intrinsic 006 / 0B5 word __cdecl16far Item_Equip(int * pitemno, uint dest) Intrinsic 0B0 word __cdecl16far Item_Unequip(int * pitemno, int val) word __cdecl16far Item_Cachein(int * pitemno) word __cdecl16far Item_Combine(int * pitemno) word __cdecl16far Item_CalledFromAnim(int * pitemno) Intrinsic 08B uint __cdecl16far Item_EnterFastArea(int * pitemno) uint __cdecl16far Item_LeaveFastArea(int * pitemno) Intrinsic 0E8 int __cdecl16far Item_Cast(int * pitemno, int val) word __cdecl16far Item_JustMoved(int * pitemno) void __cdecl16far Item_AnimGetHit(int * pitemno, word param_2) word __cdecl16far return0_10a0_2fd3(void) Intrinsic 0B1 int __cdecl16far Item_AvatarStoleSomething(int * pitemno, int val) byte __cdecl16far FUN_10a0_3042(undefined2 * param_1, word param_2, word param_3) int __cdecl16far return0_10a0_3089(void) word __cdecl16far nullfn_10a0_3090(void) void __cdecl16far nullfn_10a0_3097(void) void __cdecl16far nullfn_10a0_309c(void) byte __cdecl16far return0_10a0_30a1(void) byte __cdecl16far Item_IsShapeFlagOccl(int * pitemno) byte __cdecl16far Item_IsTargetable(int * pitemno) byte __cdecl16far Item_IsFixed(int * pitemno) byte __cdecl16far Item_10a0_3124(int * pitemno, word otheritem, int param_3, word * param_4) void __cdecl16far Item_10a0_3531(int * pitemno, word otheritem, word param3) dword __stdcall16far Item_GetShapeFrame(int * pitemno) int __cdecl16far Item_MinDistToOther(int * pitemno, int other) int __cdecl16far Item_GetMaxDimOfShapes(int * pitemno, int shapeno2, int xoff, int yoff) uint __cdecl16far Item_GetQHi(int * param_1) void __cdecl16far Item_SetQHi(int * pitemno, int qhi) uint __cdecl16far Item_GetQLo(int * pitemno) void __cdecl16far Item_SetQLo(int * pitemno, uint val) void __cdecl16far ItemIntrinsic08A_10a0_38d1(int * pitemno, struct Point3 * pt, word param_3, word param_4) Intrinsic 015 uint __cdecl16far Item_PlaySFXCru(int * pitemno, uint sndno) void __cdecl16far Item_PlayAmbientSFXCru(uint * pitemno, uint sndno) void __cdecl16far Item_StopItemSound(int * itemno, word sndno) intrinsic 043 void __cdecl16far Item_Sound_Play(int * pitemno, int sndno) intrinsic 038 void __cdecl16far Item_Sound_StopSoundNoForItem(int * pitemno, int soundno) Intrinsic 076 void __cdecl16far Item_Sound_StopAllForItem(int * pitemno) Intrinsic 03A byte __cdecl16far ItemSound_IsSoundPlaying(int * item, int soundno) void __cdecl16far nullfn_10a0_3a0e(void) void __cdecl16far ItemSoundVolume_10a0_3a13(int * pitemno, word sndno, byte vol) int __cdecl16far Item_PlayFlicProbably(int * pitemno, char * fname, word sizex, word sizey, word param_5, word param_6, word param_7, word param_8) byte __cdecl16far PlayFlicProbably(int * pitemno, char * flicname, word sizex, word sizey) word __cdecl16far VideoPlayer_10a0_3a80(int * objid, char * fname, uint x, uint y) void __cdecl16far Item_PlayFlic_10a0_3a9f(dword pint, dword fname, word c, word d) void __cdecl16far Item_PlayFlic(int * item, char * flicname, short sizex, short sizey) void __cdecl16far Item_PlayFlic(int * item, char * flicname, word sizex, word sizey) bool __cdecl16far Item_IsInFastArea(int * pitemno) I think this is to randomly give NPCs stronger weapons - it's called when difficulty level is set to 4 uint __cdecl16far Item_NPCRandomlyGetStrongerWeaponTypes(uint shapeno) Intrinsic 12F word __cdecl16far Item_Intrinsic12F_CreateNPC(int * itemno, word other_itemno) Intrinsic 02F byte __cdecl16far AreaSearch_CanExistAtPoint(word param_1, word param_2, uint shapeno, struct Point3 * point) Intrinsic 007 byte __cdecl16far Item_IsEntirelyOnScreen(int * pitemno) byte __cdecl16far Item_IsMajorityOnScreen(int * pitemno) Intrinsic 095 uint __cdecl16far Keyboard_GetCurrentKeyDown(void) Intrinsic 103 byte __cdecl16far Item_Intrinsic103_IsCrusTypeNPC(int shapenum) byte __cdecl16far Item_IsCentreOn(int * pitemno, int other) void __cdecl16far FUN_10a0_4437(struct Process * pproc, uint param_2) byte __cdecl16far World_MapBlockInFastArea(struct Rect * fastarea, int xblock, int yblock) void __cdecl16far World_CalcFastAreaLimits(struct Rect * prect, uint x, uint y) void __cdecl16far ItemCache_10a8_00a0(int mapblockx, int mapblocky, struct FixedFormatItem * itembuf, int numitems) void __cdecl16far World_HatchGlobEggs(int xblock, int yblock) void __cdecl16far World_AddBlockToFastArea(int xblock, int yblock) void __cdecl16far FUN_10a8_0386(int param_1, int param_2) void __cdecl16far FUN_10a8_0abf(void) void __cdecl16far FUN_10a8_0b32(void) void __cdecl16far ItemCache_SaveStuff_10a8_0b86(int * fileptr) byte __cdecl16far ItemCache_LoadStuff_10a8_100c(int * fileptr) void __cdecl16far FUN_10a8_13dd(int x, int y, word mapno) void __cdecl16far FUN_10a8_1612(void) void __cdecl16far ItemCache_InitAndLoadFixedDat(void) void __cdecl16far ItemCacheResetAllNPCsMaybe_10a8_178f(void) void __cdecl16far ItemCacheUninit_10a8_17d5(void) word __cdecl16far ItemCache_GetItemBefore_10a8_187b(uint itemno) void __cdecl16far ItemCache_10a8_1949(int itemno) void __cdecl16far FUN_10a8_19a2(int itemno) void __cdecl16far ItemCache_10a8_1a52(uint itemno) void __cdecl16far ItemCache_10a8_1aef(uint itemno) void __cdecl16far ItemCache_10a8_1b43(uint itemno) void __cdecl16far ItemCache_ProbablyDestroy_10a8_1b7f(uint itemno) byte __cdecl16far World_GetMapBlockIsInFastArea(uint x, uint y, uint * xblock, uint * yblock) void __cdecl16far ItemCache_Push(int itemno) void __cdecl16far ItemCache_Poptocoords(word x, word y, byte z) void __cdecl16far ItemCache_PopToContainer(int itemno) void __cdecl16far ItemCache_Pop(void) void __cdecl16far ItemCache_PopToEnd(int itemno) void __cdecl16far ItemCache_10a8_2680(byte flag) word __cdecl16far ItemCache_PopEtherealTop(void) Intrinsic 023 word __cdecl16far ItemCache_GetEtherealTop(void) word __cdecl16far ItemCache_GetFreeItemNo(void) word __cdecl16far ItemCache_GetNextFreeNPCId(void) int __cdecl16far FUN_10a8_27a6(void) int __cdecl16far FUN_10a8_2969(void) void __cdecl16far ItemCache_VerifyFailed(uint param_1) void __cdecl16far ItemCache_DumpInfo(void) void __cdecl16far ItemCacheFixedDat_Init(void) void __cdecl16far nullfn_10a8_2bb4(void) void __cdecl16far ItemCache_SetSomeGlobalsTo0_10a8_2bb9(void) void __cdecl16far ItemData_Init(void) void __cdecl16far ItemData_Uninit(void) void __cdecl16far ItemData_GetFixedFormatDataFromItem(int itemno, struct FixedFormatItem * pout) void __cdecl16far ItemData_SetFixedFormatData(int itemno, struct FixedFormatItem * fixedformatItem) void __cdecl16far ItemData_SetSomeFixedFormatData(int itemno, struct FixedFormatItem * pdata) int __cdecl16far Item_CreateWithQNpcNumMapNum(struct FixedFormatItem * data) void __cdecl16far ItemDamageDat_Init(long * pitemdamage) void __cdecl16far ItemDamage_init0x3000BytesTo0(dword * block) byte __cdecl16far ItemDamage_GetDamageNotFlag0_Or_Flag4(int * damagedat, int itemno) byte __cdecl16far ItemDamage_GetDamageDataFlag0(dword damageflexdata, int shapeno) byte __cdecl16far ItemDamage_WouldDestroyItem(int * pdamagedat, int itemno, int damagepts) byte __cdecl16far ItemDamage_ApplyDamage(int * damagedat, int itemno, int damagepts) dword * __stdcall16far FixedDat_LoadData(dword * pfile) void __cdecl16far FUN_10b8_06a2(int * param_1, uint param_2) void __cdecl16far FUN_10c0_0077(struct ItemFind * pfind) void __cdecl16far FUN_10c0_00b9(struct ItemFind * pfind) byte __cdecl16far ItemFind_10c0_010c(struct ItemFind * pfind) void __cdecl16far ItemFind_10c0_072e(struct ItemFind * pfind, uint minx, uint miny) void __cdecl16far ItemFind_AreaSearch(struct ItemFind * itemfind, int xmin, int ymin, int xmax, int ymax, char * loopscript, int lslen) void __cdecl16far ItemFind_GetNext(struct ItemFind * pfind) void __cdecl16far ItemFind_10c0_0c50(struct ItemFind * pfind) undefined2 __cdecl16far FUN_10c0_0da7(int * pitemno) void __cdecl16far FUN_10c0_0def(struct ItemFind * param_1, undefined2 param_2, char * param_3, int param_4) void __cdecl16far FUN_10c0_0e4c(struct ItemFind * param_1, undefined2 param_2, char * param_3, uint param_4) void __cdecl16far FUN_10c0_0eb3(int * pitemno) void __cdecl16far ItemFind_StartSearchAroundItem(struct ItemFind * findresult, word itemno, char * loopscript, word lslen, byte zflags) byte __cdecl16far FUN_10c0_1338(undefined4 pitemno) undefined __cdecl16far ItemFind_10c0_14c9(struct ItemFind * param_1) undefined __cdecl16far ItemFind_ProbablyNext_10c0_1637(struct ItemFind * findresult) void __cdecl16far ItemIter_Init(struct ItemIter * pitemiter, int minx, int miny, int maxx, int maxy) void __cdecl16far ItemFind_10c8_0000(struct ItemFind * param_1, uint param_2) undefined __cdecl16far ItemFind_10c8_00c6(struct ItemFind * param_1, undefined2 param_2) undefined __cdecl16far ItemFind_10c8_01c8(struct ItemFind * param_1, undefined2 param_2) void __cdecl16far ItemFind_10c8_0297(struct ItemFind * pfind, uint param_2) void __cdecl16far ItemFind_10c8_0385(struct ItemFind * param_1) void __cdecl16far ItemIter_10c8_040f(struct ItemIter * p_iter) Intrinsic 027 int __cdecl16far Coords_ClosestDirectionInRange(int x1, int y1, int x2, int y2, int numdirs, int mindir, int maxdir) int __cdecl16far Coords_MaxDiffXY(int x1, int y1, int x2, int y2) int __cdecl16far Coords_MaxDiffXYZ(int x1, int y1, byte z1, int x2, int y2, byte z2) byte __cdecl16far Coords_GetDirFromTo8(int x1, int y1, int x2, int y2) byte __cdecl16far Coords_GetDirFromTo16(int x1, int y1, int x2, int y2) byte __cdecl16far Coords_IsInFastArea(uint x, uint y) Intrinsic 0B4 void __cdecl16far Game_SetAlertActive(void) Intrinsic 0B6 void __cdecl16far Game_ClearAlertActive(void) Intrinsic 000 byte __cdecl16far Game_GetAlertActive(void) void __cdecl16far NPC_ResetForEgg(int * pitemno) byte __cdecl16far Item_GetMapArrayLowNibble(int * pitemno) void __cdecl16far Item_SetMapArrayLowNibble(int * pitemno, byte nibble) int __cdecl16far Item_GetMapArrayHighNibble(int * pitemno) void __cdecl16far Item_SetMapArrayHighNibble(int * pitemno, int nibble) int __cdecl16far Egg_GetEggRangeForContentsOfItem(int * pitemno) void __cdecl16far Egg_SetEggRangeForContentsOfItem(int * pitemno, byte val) int __cdecl16far Egg_GetXRange(int * pitemno) byte __cdecl16far Egg_GetYRange(int * pitemno) void __cdecl16far Egg_SetXRange(int * pitemno, char val) void __cdecl16far Egg_SetYRange(int * pitemno, byte val) void __cdecl16far nullfn_10d8_076a(void) void __cdecl16far nullfn_10d8_076f(void) void __cdecl16far nullfn_10d8_0774(void) void __cdecl16far nullfn_10d8_0779(void) void __cdecl16far nullfn_10d8_077e(void) void __cdecl16far nullfn_10d8_0783(void) byte * __stdcall16far AreaSearch_AlllocAndOrInit_SearchStruct(byte * psrch) void __cdecl16far AreaSearch_Uninit(struct AreaSearch * ptr, uint freeobj) void __cdecl16far AreaSearch_Clear(struct AreaSearch * srch) void __cdecl16far AreaSearch_FreeList(struct AreaSearch * psrch) uint __cdecl16far AreaSearch_IsValidPositionPt(struct AreaSearch * psearch, int shapeno, struct Point3 * point, byte flipped) void __cdecl16far AreaSearch_10e0_0228(struct AreaSearch * psrch, uint param_2, uint param_3, uint param_4, uint param_5, char param_6) undefined __cdecl16far AreaSearch_10e0_032e(struct AreaSearch * psrch, undefined2 itemno, undefined4 param_3) byte __cdecl16far AreaSearch_SweepTestPt(struct AreaSearch * psrch, int shapeno, struct Point3 * point, int x2, int y2, int z2, byte flags, uint itemno1, uint param_9, uint itemno2) byte __cdecl16far AreaSearch_SweepTestItem(struct AreaSearch * psrch, uint itemno1, int x, int y, byte z, byte flags, uint itemno2) void __cdecl16far AreaSearch_10e0_11c5(struct AreaSearch * psrch, int shapeno, struct Point3 * pt1, struct Point3 * pt2, byte flags, uint itemno1, uint itemno2) void __cdecl16far AreaSearch_CollideMove(struct AreaSearch * psrch) void __cdecl16far AreaSearch_10e0_15b4(struct AreaSearch * psrch, int itemno, int x, uint y, byte z, byte flags, uint itemno2) byte __cdecl16far AreaSearch_10e0_162f(struct AreaSearch * psrch, int shapeno, struct Point3 * pt1, struct Point3 * pt2, byte flags, uint itemno1, uint itemno2) byte __cdecl16far AreaSearch_IsValidPositionXYZ(int shapeno, word x, word y, byte z, byte param_5, byte param_6, byte param_7, int * result) void __cdecl16far NPC_Init(void) void __cdecl16far NPC_Uninit(void) void __cdecl16far FUN_10e8_00c9(byte * param_1) void __cdecl16far FUN_10e8_00f2(byte * param_1) Intrinsic 033 word __cdecl16far NPC_IsBusy(int * pitemno) bool __cdecl16far NPC_IsMapNum40(int * pitemno) void __cdecl16far NPC_SetDataFromDTable(int * pitemno, int dtable_off) int __cdecl16far NPC_DoAnim(int * itemno, enum Animation anim, undefined dir, uint maxactiveanim, byte stopcurrent) Intrinsic 0E5 void __cdecl16far NPC_StartAttackType5(uint * pitemno, word targetno) intrinsic 0AB bool __cdecl16far NPC_IsFalling(int * pitemno) intrinsic 0CC byte __cdecl16far NPC_GetInCombatFlag(int * pitemno) bool __cdecl16far NPC_IsLastAnimNotWalkStandStow(int * pitemno) bool __cdecl16far NPC_IsLastAnimSlideLeftRight(int * pitemno) bool __cdecl16far NPC_LessThan120TimerTicksPassedSinceWasHit(int * pitemno) intrinsics 039/122/12E bool __cdecl16far NPC_IsDead(int * pitemno) Intrinsic 021/060/073/0A0/0A8/0D8/0E7/135 void __cdecl16far NPC_SetBrokenAndDeadFlags(int * pitemno) void __cdecl16far NPC_ClearBrokenAndIsDeadFlags(int * pitemno) int __cdecl16far NPC_Pathfind(int * pitemno, int x, int y, byte z, word param_5) int __cdecl16far NPC_PathfindToItem(int * pitemno, int destitem, word flags) int __cdecl16far NPC_GetNPCSlot(void) void __cdecl16far NPC_FreeNPCSlot(int * pitemno) byte __cdecl16far NPC_GetIsImmortal(int * pitemno) intrinsic 085 void __cdecl16far NPC_SetImmortal(int * pitemno) intrinsic 07B / 130 void __cdecl16far NPC_ClearImmortal(int * pitemno) bool __cdecl16far NPC_IsLastAnimRunningJumping(int * pitemno) bool __cdecl16far NPC_IsLastAnimStartRunning(int * pitemno) intrinsic 035 bool __cdecl16far NPC_IsKneeling(int * pitemno) void __cdecl16far NPC_StartKneeling(int * pitemno) void __cdecl16far NPC_StopKneeling(int * pitemno) byte __cdecl16far NPC_GetIsPathfindingFlag(int * pitemno) void __cdecl16far NPC_SetIsPathfindingFlag(int * pitemno) void __cdecl16far NPC_ClearIsPathfindingFlag(int * pitemno) byte __cdecl16far NPC_GetFlag0x59Field6(int * pitemno) void __cdecl16far NPC_SetFlag0x59Field6(int * pitemno) void __cdecl16far NPC_ClearFlag0x59Field6(int * pitemno) bool __cdecl16far NPC_Initialize(int * pitemno, word shapeno, word frameno) uint __cdecl16far NPC_Create_AndSetIsFemale(int * pitemno, int shapeno, int frameno) intrinsic 061 bool __cdecl16far NPC_Create(int * pitemno, undefined2 shapeno, undefined2 frameno) void __cdecl16far NPC_ResetNPCData(int * pitemno) byte __cdecl16far NPC_CreateIfAreaSearchValid(int * pitemno, uint shapeno, undefined2 frameno, word x, word y, byte z) intrinsic 0DF word __cdecl16far NPC_GetEquip(int * pitemno, int n) Intrinsic 0E0 byte __cdecl16far NPC_SetEquip(int * pitemno, word inv_off, word invitemno) void __cdecl16far NPC_ClearInventoryOffsetN(int * pitemno, int n) void __cdecl16far NPC_RemoveItemNoFromInventory(int * pitemno, int to_remove) int __cdecl16far NPC_GetInventoryOffsetForItem(int * pitemno, int searchitem) void __cdecl16far NPC_ClearInventory(int * pitemno) Intrinsic 063 void __cdecl16far NPC_Teleport(int * pitemno, uint x, uint y, byte z, byte maparray) int __cdecl16far NPC_GetNextFreeOffsetInInventoryWeaponSlots(int * pitemno) int __cdecl16far NPC_GetNextFreeOffsetInInventorySomethingSlots(int * pitemno) word __cdecl16far return0_10e8_2b53(void) int __cdecl16far NPC_GetNextFreeOffsetInInventoryItemSlots(int * pitemno) Intrinsic 011 int __cdecl16far Item_GetMap(int * pitemno) word __cdecl16far NPC_SetActivity(int * pitemno, enum NPCActivity activity, word param_3) Intrinsic 052 void __cdecl16far NPC_SetNPCActivity6(int * pitemno, enum NPCActivity val) Intrinsic 053 void __cdecl16far NPC_SetNPCActivity8(int * pitemno, enum NPCActivity val) Intrinsic 054 void __cdecl16far NPC_SetNPCActivityA(int * pitemno, enum NPCActivity val) void __cdecl16far NPC_SetNPCDataField0x12(int * pitemno, byte val) byte __cdecl16far NPC_GetNPCDataField0x12(int * pitemno) Intrinsic 0E1 enum NPCActivity __cdecl16far NPC_GetNPCActivity6(int * pitemno) Intrinsic 0E2 enum NPCActivity __cdecl16far NPC_GetNPCActivity8(int * pitemno) Intrinsic 0E3 enum NPCActivity __cdecl16far NPC_GetNPCActivityA(int * pitemno) void __cdecl16far NPC_SetActivityField(int * pitemno, word val) intrinsic 055, 07D, 0CD, 0DB, 0F2, 131 void __cdecl16far NPC_StartNextNPCActivityBehaviorProcess(int * pitemno, enum NPCActivity activity) bool __cdecl16far NPC_IsCurrentActivitySpecifiedBy(int * pitemno, enum NPCActivity activity) word __cdecl16far NPC_Schedule(int * pitemno, dword time) word __cdecl16far NPC_GetDamageForCurrentWeaponOrBomb(int * pitemno, byte useotheritem) void __cdecl16far NPC_SetInCombatFlag(int * pitemno) Intrinsic 051 void __cdecl16far NPC_ClearInCombat(int * pitemno) Intrinsic 00E word __cdecl16far NPC_TurnTowardsDirection(int * pitemno, byte direction, byte dir_16) void __cdecl16far NPC_SetTempFlagAndSetInCombat(int * pitemo) void __cdecl16far NPC_SetTempFlagAndClearInCombat(int * pitemno) void __cdecl16far NPC_SetAvatarInCombat(void) void __cdecl16far NPC_ClearAvatarInCombat(void) void __cdecl16far NPC_GetAvatarInCombat(void) intrinsic 07C word __cdecl16far NPC_GetHP(int * pitemno) Intrinsic 050 word __cdecl16far NPC_GetCurrentActivity(int * pitemno) word __cdecl16far NPC_GetActiveWeaponOffset(int * pitemno) word __cdecl16far NPC_GetNPCDataField0x17InventoryOffset(int * pitemno) word __cdecl16far NPC_GetActiveInventoryItemOffset(int * pitemno) word __cdecl16far NPC_DTable_GetMaxHPForNPC(int * pitemno) word __cdecl16far NPC_GetActiveWeaponItem(int * pitemno) word __cdecl16far NPC_GetActiveInventorySomethingItem(int * pitemno) word __cdecl16far NPC_GetItemNoForActiveInventoryItem(int * pitemno) intrinsic 082 word __cdecl16far NPC_GetEnergy(int * pitemno) intrinsic 083 void __cdecl16far NPC_SetEnergy(int * pitemno, word val) intrinsic 081 int __cdecl16far NPC_GetMaxEnergyIfAvatar(int * pitemno) void __cdecl16far NPC_Charge(int * pitemno, byte in_process) word __cdecl16far NPC_GetNPCShieldType(int * pitemno) void __cdecl16far NPC_SetNPCShieldType(int * pitemno, word val) word __cdecl16far NPC_GetAvatarBatteryType(void) void __cdecl16far NPC_SetBatteryType(int * pitemno, enum BatteryType batterytype) void __cdecl16far NPC_SetHP(int * pitemno, word val) word __cdecl16far NPC_GetNPCTacticNo(int * pitemno) intrinsic 0DE void __cdecl16far NPC_SetNPCTacticNo(int * pitemno, word val) void __cdecl16far NPC_SetHomePoint(int * pitemno, struct Point3 home) struct Point3 * __cdecl16far NPC_GetHomePoint(struct Point3 * ptr, undefined4 pitemno) void __cdecl16far NPC_SetActiveWeaponInventoryOffsetAndNotify(int * pitemno, word val) void __cdecl16far NPC_SetFieldActiveInventorySomething(int * pitemno, word val) void __cdecl16far NPC_SetActiveInventoryItemOffset(int * pitemno, word val) Intrinsic 0B7 word __cdecl16far NPC_GetAvatarInStasis(void) Intrinsic 00C void __cdecl16far NPC_SetAvatarInStasis(int param) void __cdecl16far NPC_SetAvatarInStasisTrue(void) void __cdecl16far NPC_ClearAvatarInStasis(void) void __cdecl16far NPC_SetDirection(int * pitemno, byte val) Intrinsic 01C / 112 / 121 byte __cdecl16far NPC_GetDirection(int * pitemno) Intrinsic 01D, 05A, 0B9, 0D7, 0E4, 124 enum Animation __cdecl16far NPC_GetLastAnimSet(int * pitemno) intrinsic 0CA byte __cdecl16far NPC_AddHP(int * pitemo, int plus) byte __cdecl16far NPC_AddEnergy(int * pitemno, int plusenergy) byte * __stdcall16far malloc_0x17_bytes_if_needed(byte * param_1) Intrinsic 0EB word __cdecl16far NPC_GetNumberAvatarCreditsWrapper(void) void __cdecl16far NPC_SetAvatarNumCredits(word qval) void __cdecl16far NPC_InitNPCStuff(int * pitemno) byte __cdecl16far FUN_10e8_38bc(byte * ptr, byte val) intrinsic 029 word __cdecl16far NPC_GetDifficultyLevel(void) void __cdecl16far FUN_10e8_38d5(undefined2 param_1, undefined2 param_2, undefined4 param_3) word __cdecl16far FUN_10e8_3905(undefined2 param_1, undefined2 param_2, undefined4 param_3, undefined2 param_4) byte __cdecl16far return0_10e8_3940(void) word __cdecl16far return0x65_10e8_3947(void) byte __cdecl16far return0_10e8_394f(void) int __cdecl16far NPC_GetInventoryItemWithShapeNo(int * pitemno, int shapeno) int __cdecl16far NPC_GetInventoryOffsetForAmmoForActiveWeapon(int * pitemno) uint __cdecl16far NPC_ActiveWeaponShotsLeft(int * pnpcno) void __cdecl16far NPC_UseOneShot(int * pitemno) word __cdecl16far NPC_ActiveWeaponIsSmall(int * pitemno) void __cdecl16far NPC_CheckForEmptyAmmo(int * pitemno) Intrinsic 0FD bool __cdecl16far NPC_GetKeycardHeld(byte bitno) void __cdecl16far NPC_SetKeycardHeld(byte bitno) void __cdecl16far NPC_ClearKeycardHeld(byte bitno) Intrinsic 078 void __cdecl16far NPC_ClearKeycardsHeld(void) dword __stdcall16far NPC_GetNumberAvatarCredits(void) void __cdecl16far NPC_SetNumCredits(dword unused, word qval) Intrinsic 00B int __cdecl16far NPC_GetField0x63(int * pitemno) Intrinsic 0E6 void __cdecl16far NPC_SetField0x63(int * pitemno, byte val) intrinsic 0DD word __cdecl16far NPC_GetNPCDataField0x4(int * pitemno) byte * __stdcall16far FUN_10e8_3e47(void) dword __stdcall16far ConcatParams(word param_1, word param_2) void __cdecl16far FUN_10e8_3e68(struct Process * param_1, uint param_2) void __cdecl16far FUN_10e8_3eb9(struct Process * param_1, uint param_2) void __cdecl16far FUN_10e8_3f0a(struct Process * param_1, uint param_2) void __cdecl16far FUN_10e8_3f5b(struct Process * param_1, uint param_2) void __cdecl16far FUN_10e8_3fac(struct Process * param_1, uint param_2) void __cdecl16far FUN_10e8_3ffd(struct Process * param_1, uint param_2) void __cdecl16far FUN_10e8_404e(struct Process * param_1, uint param_2) void __cdecl16far FUN_10e8_409f(struct Process * param_1, uint param_2) void __cdecl16far FUN_10e8_40f0(struct Process * param_1, uint param_2) void __cdecl16far FUN_10e8_4141(struct Process * param_1, uint param_2) void __cdecl16far FUN_10e8_4192(struct Process * param_1, uint param_2) void __cdecl16far FUN_10e8_41e3(struct Process * param_1, uint param_2) void __cdecl16far FUN_10e8_4234(struct Process * param_1, uint param_2) void __cdecl16far FUN_10e8_4285(struct Process * param_1, uint param_2) void __cdecl16far FUN_10e8_42d6(struct Process * param_1, uint param_2) void __cdecl16far FUN_10e8_4327(struct Process * param_1, uint param_2) void __cdecl16far FUN_10e8_4378(struct Process * param_1, uint param_2) void __cdecl16far FUN_10e8_4e3a(struct Process * param_1, uint param_2) void __cdecl16far FUN_10e8_4e8b(struct Process * param_1, uint param_2) void __cdecl16far FUN_10e8_4edc(struct Process * param_1, uint param_2) void __cdecl16far FUN_10e8_4f2d(struct Process * param_1, uint param_2) void __cdecl16far FUN_10e8_4f7e(struct Process * param_1, uint param_2) void __cdecl16far FUN_10e8_4fcf(struct Process * param_1, uint param_2) void __cdecl16far FUN_10e8_5020(struct Process * param_1, uint param_2) void __cdecl16far FUN_10f0_0000_Set16BytesTo0(byte * param_1) void __cdecl16far Refstore_SetBitNumber(dword ptr, uint bitno) byte __cdecl16far Refstore_GetBitNumber(dword ptr, uint param_2) byte __cdecl16far Refstore_Init(void) byte __cdecl16far Refstore_Uninit(void) dword __stdcall16far Refstore_GetEntry(uint offset) void __cdecl16far Refstore_SetBitEntry(uint entryno, uint bitoffset) byte __cdecl16far Refstore_GetBitEntry(uint entryno, uint bitoffset) byte __cdecl16far ItemGlob_InitStuff_10f0_0165(void) void __cdecl16far ItemGlob_CacheIn(void) byte * __stdcall16far FUN_10f0_02a7_AllocAndZero16Bytes(byte * ptr) struct StorageDataProcess * __stdcall16far StorageDataProcess_Create(struct StorageDataProcess * p_proc, dword proclist, word reftype, int itemno, word otheritem, word damagetype) void __cdecl16far StorageDataProcess_Run(struct StorageDataProcess * p_proc) void __cdecl16far StorageDataProcess_10f0_03ff(struct StorageDataProcess * p_proc, uint param_2) dword __stdcall16far Refstore_10f0_046d(long * param_1, int param_2) void __cdecl16far FUN_10f0_0502(dword param_1, struct StorageDataProcess * sdproc) void __cdecl16far FUN_10f0_0542(dword * param_1, int itemno) void __cdecl16far StorageDataProcess_RunAndTerminateProcs(dword * proclist) void __cdecl16far FUN_10f0_06b5(int * * param_1, uint param_2) char * __stdcall16far ItemScrit_CompileScript(char * bufout, word param_2, word param_3, ...) int __cdecl16far ItemScrit_10f8_00e4(char * bufout, int c) void __cdecl16far FUN_10f8_0120(byte * param_1, byte param_2) void __cdecl16far FUN_10f8_0161(byte * param_1) void __cdecl16far ItemType_Init(byte * * dest_ptrptr) void __cdecl16far FUNFree_10f8_022b(int * * param_1) void __cdecl16far ItemType_LoadTypeflagDat(byte * * param_1) word * __stdcall16far Item_GetTypeflagData(word * dest, word * src, int shapenum) void __cdecl16far ItemType_Load_TypenameDat(byte * * param_1) int __cdecl16far FUN_10f8_0437(int * param_1, int param_2) int __cdecl16far FUN_10f8_045b(int * param_1, char * param_2, char param_3, int param_4) intrinsic 0AC enum ShapeFamily __cdecl16far Item_GetShapeFamilyOfShape(int shapeno) struct Process * __stdcall16far NPCActionProcess_Create(struct Process * p_proc, int npcno) byte __cdecl16far NPC_CanSeeControlledNPC(int itemno, byte someflag) byte __cdecl16far NPC_StartBehaviorInField0x8IfCanSeeControlledNPC(struct Process * p_proc) struct Process * __cdecl16far StandProcess_CreateProcess(struct Process * p_proc, undefined2 param_2) void __cdecl16far StandProcess_Run(struct Process * param_1) struct Process * __cdecl16far SurrenderProcess_CreateProcess(struct Process * p_proc, undefined2 itemno) undefined __cdecl16far SurrenderProcess_Run(struct Process * p_proc) undefined4 __cdecl16far PaceProcess_CreateProcess(struct PaceProcess * p_proc, undefined2 itemno) void __cdecl16far PaceProcess_Run(struct PaceProcess * pproc) void __cdecl16far FUN_1100_0913(int itemno) struct Process * __cdecl16far GuardProcess_CreateProcess(struct Process * p_proc, int param_2) undefined __cdecl16far GuardProcess_Run(struct Process * p_proc) struct Process * __cdecl16far LoiterProcess_CreateProcess(struct Process * p_proc, int itemno, int count) void __cdecl16far LoiterProcess_Run(struct Process * p_proc) undefined __cdecl16far FUN_1100_0d3e(struct Process * param_1, undefined2 param_2, undefined2 param_3) void __cdecl16far FUN_1100_0f47(struct Process * param_1, uint param_2) void __cdecl16far nullfn_1100_0fe3(void) void __cdecl16far nullfn_1100_1084(void) struct AttackProcess * __stdcall16far AttackProcess_CreateProcess(struct AttackProcess * p_proc, int itemno) void __cdecl16far Attack_Load(struct AttackProcess * p_proc, uint param_2) bool __cdecl16far Attack_CheckForSoundTimeElapsed(struct AttackProcess * p_proc) bool __cdecl16far Attack_Timer4and5Update(struct AttackProcess * p_proc) int __cdecl16far Attack_GetNextWordWithGlobals(struct AttackProcess * p_proc) int __stdcall16far Attack_GetNextWord(struct AttackProcess * p_proc) void __cdecl16far Attack_SetGlobalAttackData(struct AttackProcess * p_proc, uint offset, uint val) word __cdecl16far Attack_GetGlobalAttackData(struct AttackProcess * p_proc, uint offset) after the name, there are 4 offset values in the combat data - this picks one of them to use in the 0x55 field of the process struct. In practice, this function is never called with any values other than 0 or 1 void __cdecl16far Attack_SetupForBlockNo(struct AttackProcess * p_proc, word num) void __cdecl16far Attack_SetupForTacticNo(struct AttackProcess * p_proc, int tactic_no) void __cdecl16far Attack_LoadCombatDatFromFlex(void) void __cdecl16far AttackProcess_Run(struct AttackProcess * p_proc) bool __cdecl16far Attack_CheckReady(struct AttackProcess * p_proc, byte targetdir) struct Process * __stdcall16far Attack_PathfindToItemInNPCData(struct AttackProcess * p_proc) void __cdecl16far AttackProcess_SetTimer3(struct AttackProcess * p_proc) this is called when the tactic no is 0 void __cdecl16far AttackProcess_GenericAttack(struct AttackProcess * p_proc) void __cdecl16far Attack_TimeNowToTimer2(struct AttackProcess * p_proc) bool __cdecl16far Attack_CheckTimeElapsedFromTimer2MoreThan120(struct AttackProcess * p_proc) void __cdecl16far Attack_SetField0x7FTo1(struct AttackProcess * pproc) struct PathfinderProcess * __stdcall16far Pathfinder_CreateProcess_ToPoint(struct PathfinderProcess * p_proc, int item, int destitem, uint destx, uint desty, byte destz, word maxsteps, bool param_8, word stopdistance, bool turnatend) struct PathfinderProcess * __stdcall16far Pathfinder_CreateProcess_ToItem(struct PathfinderProcess * p_proc, int itemno, int destitem, word maxsteps, bool param_5, word stopdistance, bool turnatend) void __cdecl16far PathfinderProcess_UnreadyWeaponIfInCombatAndReadied(struct PathfinderProcess * p_proc) void __cdecl16far PathfinderProcess_Run(struct PathfinderProcess * p_proc) void __cdecl16far Pathfinder_End(struct PathfinderProcess * p_proc) void __cdecl16far PathfinderProcess_Terminate(struct Process * param_1, dword result) void __cdecl16far Pathfinder_Fail(struct PathfinderProcess * param_1, dword param_2) byte __cdecl16far Pathfinder_NextDirFromPoint(struct PathfinderProcess * p_proc, struct Point3 * npcpt) void __cdecl16far FUN_1110_0f19(struct Process * param_1, uint param_2) void __cdecl16far DTable_Uninit(void) void __cdecl16far DTable_Load(void) int __cdecl16far DTable_GetTableOffsetForShapeNo(int shapeno) int __cdecl16far Weapon_GetTableOffsetForShapeNo(int shapeno) int __cdecl16far Ammo_GetDefaultCountForWeaponShape(int shapeno) word __cdecl16far Weapon_GetEnergyUse(word shapeno) word __cdecl16far Weapon_GetSoundNo(int shapeno) int __cdecl16far Weapon_GetShotDelay(int shapeno) int __cdecl16far Ammo_GetTableOffsetForShapeNo(word shapeno) word __cdecl16far Ammo_GetDisplayFrameForShape(int shapeno) word __cdecl16far Ammo_GetField0x4(word shapeno) word __cdecl16far Weapon_GetAmmoShapeForWeaponShapeNo(int shapeno) char * __cdecl16far Ammo_GetNameForShapeNo(int shapeno) word __cdecl16far Weapon_GetField0x8(int shapeno) byte __cdecl16far Weapon_GetWpnSmallFlag(int shapeno) word __cdecl16far Weapon_GetDisplayFrameForShape(int shapeno) char * __cdecl16far Weapon_GetNameForShapeNo(int shapeno) byte __cdecl16far Weapon_GetReloadSound(undefined2 shapeno) word __cdecl16far MiscTable_GetBombDisplayFrameForShape(word shapeno) char * __cdecl16far MiscTable_GetNameForBombShapeNo(word shapeno) word __cdecl16far MiscTable_GetBombField0x2(int shapeno) word __cdecl16far MiscTable_GetBombField0x4(word shapeno) int __cdecl16far MiscTable_GetTableOffsetForItemShapeNo(int shapeno) word __cdecl16far Misc_TableGetDisplayFrameForShape(undefined2 shapeno) char * __cdecl16far MiscTable_GetNameForItemShapeNo(int shapeno) byte __cdecl16far FUN_1118_0497(int shapeno) int __cdecl16far Weapon_GetFireTypeForShape(undefined2 shapeno) char * __cdecl16far DTable_GetNameForShapeNo(word shapeno) struct FireTypeTableData * __stdcall16far FireTypeTable_GetPtrForFireTypeOffset(word firetype) word __cdecl16far FireTypeTable_GetRandomDamageForFireType(word firetype) void __cdecl16far Tracker_FreeAndClearTargetableItemList(void) void __cdecl16far Tracker_AddToTargetableItemList(int itemno) undefined __cdecl16far Tracker_RemoveFromTargetableItemList(int itemno) undefined2 __cdecl16far Tracker_FindTargetableItemInDirection(int fromitemno, char direction, byte use_16dirs) void __cdecl16far Fire_SplashDamage(struct Point3 * pt, int range, int damage, int firetype, int skipitem, int srcitem) void __cdecl16far CallFnPtr0x0C_3Times(int * ptr_1, word offset) void __cdecl16far CallFnPtr0x10_3Times(int * ptr_1, word offset) Intrinsic 098 void __cdecl16far Game_ResetVargasShield(void) struct Process * __stdcall16far DeathSilence_CreateProcess(struct Process * p_proc) void __cdecl16far DeathSilenceProcess_Run(struct Process * proc) void __cdecl16far DeathSilenceProcess_Timer(struct Process * p_proc) void __cdecl16far Item_GetPointWithZRelativeToItem1(int item1, int item2, struct Point3 * pout) byte __cdecl16far Item_IsNotRobot(int * pitemno) intrinsic 032 void __cdecl16far Item_ReceiveHit(int * pitemno, int other, byte dir, uint damage, word damagetype) byte __cdecl16far Item_ReceiveHit(int * pitemno, int other, byte dir, uint damage, word damagetype, struct Point3 * srcpt) void __cdecl16far FUN_seemsnull1128_1090(void) byte __cdecl16far World_FinishedAvatarMoveTimeout(void) Intrinsic 01E This is either called from usecode or from an animation (via NPC_FireWeapon) uint __cdecl16far Crusader_FireWeapon(int * pitemno, int x, int y, char z, char dir, int firetype, char targetflag) Intrinsic 116 uint __cdecl16far Intrinsic116_FireDistance(int * pitem1, int item2, byte dir, int xoff, int yoff, int zoff) uint __cdecl16far FUN_1128_1b09(int * pitemno, word item2, uint range_threshold) Intrinsic 042 undefined __cdecl16far Item_GetRangeIfVisible(undefined4 pitemno, word other_itemno) struct Process * __stdcall16far CruHealer_CreateProcess(struct Process * p_proc) void __cdecl16far CruHealer_Run(struct Process * p_proc) struct Process * __stdcall16far BatteryChargerProcess_CreateProcess(struct Process * ptr) void __cdecl16far BatteryCharger_1128_1fbe(struct Process * param_1, uint param_2) void __cdecl16far BatteryChargerProcess_Run(struct Process * p_proc) Intrinsic 0EE int __cdecl16far BatteryChargerProcess_CreateNew(void) Intrinsic 0F6 int __cdecl16far CruHealer_CreateProcess_(void) int __cdecl16far Anim_GetModifiedAnimForWeapon(int * pitemno, enum Animation anim) void __cdecl16far FUN_1128_22ca(struct Process * p_proc, uint param_2) intrinsic 056 void __cdecl16far World_SetCurrentControlledNPCNum(word itemno) Intrinsic 01B word __cdecl16far World_GetCurrentControlledNPCNum(void) bool __cdecl16far ControlledNPC_LastAnimNotCombatAnim(void) bool __cdecl16far ControlledNPC_LastAnimNotInSomeValues_1130_0070(void) struct Process * __stdcall16far ControllerProcess_CreateProcess(struct Process * p_proc) void __cdecl16far FUN_1130_01a5(struct Process * p_proc, uint val) void __cdecl16far Cheat_GiveAmmo(uint shapeno) void __cdecl16far Target_1130_0299(void) void __cdecl16far Item_DoReticleUpdateIfNeeded(void) void __cdecl16far Target_ReticleItemDestroyed(void) void __cdecl16far Target_PutTargetingReticleOnItem(int itemno) void __cdecl16far Target_ClearCrosshairsAndTargetReticle(void) void __cdecl16far Target_UpdateSmallCrosshairs(void) void __cdecl16far ControllerProcess_Run(void) byte __cdecl16far Key_HandleOptionKeys(struct KeyEvent * keyevent) bool __cdecl16far Anim_1130_0f94(enum Animation animno) void __cdecl16far Controller_UpdateAvatarAngle(struct Process * p_proc, struct KeyEvent * pkeyevent, byte * pnewdir, enum Animation * panimout, bool slowturn) byte __cdecl16far Controller_PickNextAnimByKeyevent(struct Process * p_proc, struct KeyEvent * keyevent) void __cdecl16far Controller_HandleKeyEvent(struct Process * p_proc, int param_2, int param_3, struct KeyEvent * keyevent_) void __cdecl16far ControllerProcess_SetGlobalControllerProcess(struct Process * p_proc) void __cdecl16far ControllerProcess_ClearGlobalControllerProcess(struct Process * p_proc) byte __cdecl16far Crusader_TryToFireWeapon(struct Process * p_proc, bool someflag) void __cdecl16far Key_CheckCheatToggle(struct KeyEvent * keyevent) void __cdecl16far World_SetCurrentControlledNPCNum(word newitemno) byte __cdecl16far Crusader_FireWeapon_TimerCheck(void) void __cdecl16far FUN_1130_2fa6(struct Process * controllerproc) void __cdecl16far ControllerProc_1130_2fdb(struct Process * controllerproc) struct Process * __stdcall16far AutoFirerProcess_CreateProcess(struct Process * p_proc) void __cdecl16far AutoFirerProcess_OnTimer(void) void __cdecl16far AutoFirerProcess_1130_3169(struct Process * p_proc) void __cdecl16far Targetting_Reset(struct Process * controllerProc) void __cdecl16far ControllerProcess_Load(struct Process * p_proc, struct File * pfile) void __cdecl16far ControllerProcess_Save(struct Process * p_proc, struct File * param_2) void __cdecl16far AutoFirerProcess_1130_3249(struct Process * p_proc, undefined2 param_2, undefined2 param_3) void __cdecl16far AutoFirerProcess_1130_327c(struct Process * p_proc, undefined2 param_2, undefined2 param_3) void __cdecl16far NPC_ResetToStartOfAnim(int itemno, enum Animation animno) void __cdecl16far AutoFirerProcess_Run(void) void __cdecl16far AutoFirerProcess_1130_3368(struct Process * param_1, uint param_2) void __cdecl16far AutoFirerProcess_1130_33b6(struct Process * p_proc) void __cdecl16far ControllerProcess_1130_33c8(struct Process * p_proc, uint param_2) word __cdecl16far return0_1138_0000(void) void __cdecl16far FUN_1138_0007(int shapeno, int * xout, int * yout, byte * zout) Intrinsic 0C6 word __cdecl16far Sprite_Int0C6_Create(int shapeno, int frame, int lastframe, int delay, int x, int y, byte z) struct Process * __cdecl16far Sprite_CreateProcess(struct Process * p_proc, int shapeno, int frame, int lastframe, int delay, int x, int y, char z) void __cdecl16far SpriteProcess_Run(struct Process * p_proc) void __cdecl16far nullfn_1138_0668(void) void __cdecl16far FUN_1138_066d(ulong param_1) void __cdecl16far Sprite_MoveRel(undefined4 param_1, int xoff, int yoff, char zoff) struct SuperSpriteProcess * __stdcall16far SuperSprite_CreateProcess(struct SuperSpriteProcess * proc) void __cdecl16far SuperSpriteProcess_SetShapeFrameAndLoc(struct SuperSpriteProcess * p_proc, int shapeno, int spriteframe, struct Point3 * loc) void __cdecl16far SuperSpriteProcess_SetShapeAndLoc(struct SuperSpriteProcess * p_proc, int shapeno, struct Point3 * loc) int __cdecl16far Sprite_Create_1138_0901(ulong param_1, uint shapenum, uint frameno, int * param_4) void __cdecl16far SuperSprite_InitData(struct SuperSpriteProcess * p_proc, byte dir, int x, int y, byte z, int damage, word firetype, int srcitem, word targetitem, byte flag) void __cdecl16far SuperSprite_InitWithStartPt(struct SuperSpriteProcess * proc, char dir, undefined2 damage, word firetype, int srcitemno, int targetitem, char someflag) void __cdecl16far SuperSprite_InitWithCrosshairLocation(struct SuperSpriteProcess * pproc, byte dir, undefined2 damage, word firetype, int itemno, word target, byte z) x,y,z inputs in Run are nowpt, pt3 byte __cdecl16far SuperSprite_AreaSearch_1138_0ee8(struct SuperSpriteProcess * pproc, word x1, word y1, word z1, word x2, word y2, word z2) void __cdecl16far SuperSprite_AdvanceFrame(struct SuperSpriteProcess * p_proc) void __cdecl16far SuperSprite_HitAndFinish(struct SuperSpriteProcess * p_proc, uint x1, uint y1, byte z1, uint x2, uint y2, byte z2) void __cdecl16far SuperSprite_DestroyItemOrTerminate(struct Process * proc) void __cdecl16far SuperSprite_GetItemSize(struct SuperSpriteProcess * proc, word itemno, struct Point3 * pt) void __cdecl16far SuperSpriteProcess_Run(struct SuperSpriteProcess * p_proc) byte __cdecl16far FUN_1138_1dc0(undefined2 param_1) void __cdecl16far SuperSpriteProcess_MakeBulletSplash(struct SuperSpriteProcess * proc, struct Point3 * point) void __cdecl16far nullfn_1138_1e75(void) void __cdecl16far FUN_1140_0000(undefined2 * param_1, undefined2 param_2, undefined2 param_3, undefined param_4, undefined2 param_5, undefined2 param_6, undefined param_7) byte __cdecl16far FUN_1148_0000(uint shapeno, uint frame, word x, word y, byte z) uint __cdecl16far Anim_TurnTowardsDirection(int itemno, byte direction, byte dir_16, byte noncombatstand) void __cdecl16far FireType_MakeBulletSplashShape(int firetype, int x, int y, byte z) void __cdecl16far FUN_1148_05e8(undefined param_1) byte __cdecl16far Anim_GetAvatarFireOffsets(byte dir, int * xout, int * yout, int * zout) byte * __cdecl16far NPC_GetControlledNPCFireFrameMeta(void) Intrinsic 017 void __cdecl16far Item_Explode_WithDamage(int * pitemno, int exptype, char destory_item) void __cdecl16far Item_Explode_NoDamage(int * pitemno, int exptype, char destroy_item) uint __cdecl16far Item_Explode(int * pitemno, int exptype, byte destory_item, byte cause_damage) Intrinsic 0BB bool __cdecl16far Intrinsic0BB_1148_0b67(int shapeno, word x, word y, byte z) FIXME: parameters here are pretty suspicious.. struct AnimPrimitiveProcess * __stdcall16far AnimPrimitive_CreateProcess(struct AnimPrimitiveProcess * p_proc, int itemno, enum Animation animno, byte targetdir, struct Point3 * futuredest, int pathfindtarget, word param_7) void __cdecl16far AnimPrimitive_CheckToStartNewAnimation(struct AnimPrimitiveProcess * p_proc) void __cdecl16far AnimPrimitive_SetStartFrame(struct AnimPrimitiveProcess * p_proc) void __cdecl16far AnimPrimitiveProcess_Run(struct AnimPrimitiveProcess * p_proc) void __cdecl16far AnimPrimitive_1150_2b08(struct Process * p_proc, int param_2, int param_3) this is called if the startpt is not null void __cdecl16far AnimPrimitive_StoreCurrentNPCAnimStatus(struct AnimPrimitiveProcess * p_proc) undefined __cdecl16far AnimPrimitive_RestoreNPCAnimStatus(struct AnimPrimitiveProcess * p_proc) undefined __cdecl16far AnimPrimitive_Terminate(struct AnimPrimitiveProcess * p_proc) void __cdecl16far AnimPrimitive_FinishFailed(struct AnimPrimitiveProcess * p_proc) void __cdecl16far AnimPrimitive_SetTargetUpdateNeeded(struct AnimPrimitiveProcess * p_proc) void __cdecl16far AnimPrimitive_Cleanup(struct AnimPrimitiveProcess * p_proc) undefined __cdecl16far FUN_1150_2f4b(struct Process * p_proc, undefined4 param_2, undefined4 param_3) void __cdecl16far nullfn_1150_308b(void) byte __cdecl16far AnimPrimitive_CheckCollisionAndHurl(struct AnimPrimitiveProcess * p_proc, int x, int y, byte z, int nextx, int nexty, byte nextz) void __cdecl16far AnimPrimitive_UpdateNPCDir(struct AnimPrimitiveProcess * p_proc, byte newdir) undefined __cdecl16far AnimOneFrameDelayProcess_Run(struct Process * proc) uint __cdecl16far FUN_1158_0000(uint shapeno, uint frame, word container) This can be called from animations, calls through to Crusader_FireWeapon to do the main logic. void __cdecl16far NPC_FireWeapon(int itemno, dword framemeta_lo, dword framemeta_hi) void __cdecl16far NPC_GetHurt(int itemno) void __cdecl16far nullfn_1158_03f5(void) void __cdecl16far nullfn_1158_03fa(void) void __cdecl16far WpnCache_Init(int shapeno) void __cdecl16far Wpncache_Uninit(void) int __cdecl16far WpnCache_GetIndexForShape(int shapeno) word __cdecl16far WpnCache_GetAnimatedOverlayShapeOffset(int shapeno) void __cdecl16far WpnCache_CacheInWpnShapeForOverlayShape(word wpnoverlayshape) void __cdecl16far WpnCache_GetOverlayDat(int wpnshapeno, enum Animation animno, char dir, byte animframe, word * wpnoverlayshape, char * xoff, char * yoff, uint * frame) bool __cdecl16far WpnCache_HasOverlayData(word wpnshapeno, enum Animation animno) word __cdecl16far WpnCache_GetAnimatedOverlayShapeForWeaponShape(int wpnshape) dword * __cdecl16far WpnCache_InitWpnOverlayFileStruct(void) void __cdecl16far WpnCache_Clear1024Bytes(word * param_1) byte __cdecl16far WpnCache_1024BytesContainsNonZeroVal(uint * param_1) void __cdecl16far AStream_Init(void) void __cdecl16far AStream_Uninit(void) long * __cdecl16far malloc_or_clear_long(long * ptr) int __cdecl16far AnimCache_1160_0106(int * animmeta, char dir, byte param_3) void __cdecl16far FUN_1160_01d2(uint * pptr) void __cdecl16far FUN_1168_0091(struct File * file, dword param_2) uint __cdecl16far Animfile_Read(struct File * file, int param_2, byte * buf) void __cdecl16far AnimFile_1168_076d(struct File * param_1, undefined4 param_2) void __cdecl16far AnimCache_Clear(byte * param_1) void __cdecl16far AnimCache_Init(void) void __cdecl16far AnimCache_FreeBlock_1170_00ab(int blockno) int __cdecl16far AnimCache_GetCacheNumberForAnim(int animno) int __cdecl16far AnimCache_Load_Animation(int shapeno) word * __cdecl16far AnimCache_GetAnimationPtr(int shapeno) void __cdecl16far AnimCache_GetFrameMetadata(int shapeno, int animno, byte dir, byte frameno, word * pout) byte * __stdcall16far Anim_GetMetadata(byte * outbuf, int shapeno, enum Animation animno) byte __cdecl16far AnimCache_CanLoadAnim(undefined2 animno) byte __cdecl16far AnimCache_MaybeCacheIn(int shapeno, enum Animation animno) void __cdecl16far Anim_CloseAnimFile(void) undefined __cdecl16far Zero4WordsAtLocation(word * param_1) void __cdecl16far Copy4WordsFromAtoB(word * dest, word * src) byte __cdecl16far AnimFrame_IsFireFrame(byte * framemeta) void __cdecl16far Camera_Init(void) Intrinsic 062 void __cdecl16far Camera_Intrinsic062_1180_0013(void) struct Process * __cdecl16far Camera_CreateProcess(struct Process * p_proc) void __cdecl16far Coords_ScreenToWorldXY(int x, int y, int * xout, int * yout) void __cdecl16far FUN_1180_0c29(int param_1, int param_2) intrinsic 040 void __cdecl16far Camera_MoveTo(uint x, uint y, byte z, word mapno) void __cdecl16far Camera_1180_12f1(struct Process * proc) void __cdecl16far Camera_1180_1356(struct Process * proc, uint param_2, uint param_3, word param_4, word param_5, char param_6) void __cdecl16far FUN_1180_152b(dword param_1) void __cdecl16far Camera_1180_1719(int * param_1) void __cdecl16far Camera_RedrawViewportAndGameplayOverlays(void) Intrinsic 041 void __cdecl16far Camera_SetCentreOn(word itemno) void __cdecl16far Camera_MoveRel(int x, int y, char z) void __cdecl16far Camera_SetRoof(word roof) void __cdecl16far Camera_MaybeScrollTo_1180_1af9(int itemno) word __cdecl16far Camera_IsFocussedOnSomething_1180_1c55(void) void __cdecl16far FUN_1180_1cb1(void) Intrinsic 086 word __cdecl16far Camera_GetX(void) Intrinsic 087 word __cdecl16far Camera_GetY(void) Intrinsic 0D6 byte __cdecl16far Camera_GetZ(void) word __cdecl16far Camera_GetRoof(void) void __cdecl16far FUN_1180_1ce5(int x, int y, byte z, int xrange, int yrange, byte zrange) void __cdecl16far nullfn_1180_1de8(void) byte __cdecl16far return0_1180_1ded(void) void __cdecl16far nullfn_1180_1df4(void) undefined __cdecl16far FUN_1188_0057(struct Process * param_1) void __cdecl16far Display_Init(void) void __cdecl16far Display_GetInfoForInventoryItem(int itemno, char * name, uint * out_gumpshape, word * out_frame) void __cdecl16far FUN_1190_0000(int * param_1, int * param_2) void __cdecl16far FUN_1190_006d(int * param_1, int * param_2) void __cdecl16far FUN_1190_0112(dword param_1) void __cdecl16far FUN_1190_022c(int * param_1, int param_2) void __cdecl16far FUN_1190_0263(int * param_1, int param_2) void __cdecl16far FUN_1190_02a8(void) void __cdecl16far FUN_1190_05ca(int param_1) void __cdecl16far DList_Init(void) void __cdecl16far FUN_1190_0e2a(int param_1) void __cdecl16far nullfn_1190_0e6c(void) int __cdecl16far FUN_1190_0e71(int param_1, int param_2) void __cdecl16far FUN_1190_0fe2(int * param_1) void __cdecl16far FUN_1190_1919(void) void __cdecl16far FUN_1190_19b4(undefined4 param_1, int param_2, int param_3) void __cdecl16far FUN_1190_19ec(undefined4 param_1) void __cdecl16far FUN_1190_1ab8(undefined4 param_1) void __cdecl16far FUN_1190_1c14(int * param_1) void __cdecl16far SetSomeGlobals(void) word __cdecl16far return0_1190_1cfb(void) void __cdecl16far FUN_1198_0dcb(undefined4 param_1) int __cdecl16far FUN_1198_0efc(int itemno) void __cdecl16far Item_1198_10e5(word itemno) undefined __cdecl16far Item_1198_13be(uint itemno) void __cdecl16far FUN_1198_13d5(void) void __cdecl16far FUN_1198_1890(void) void __cdecl16far FUN_1198_19e5(void) void __cdecl16far Spmgr_Init(void) void __cdecl16far Spmgr_Uninit(void) int __cdecl16far Spmgr_CreateSprite(int shape, uint frame, word flags, int x, int y, char z) void __cdecl16far Spmgr_ClearSprite(uint spriteno) void __cdecl16far Spmgr_ClearFlag1(int spriteno) void __cdecl16far Spmgr_SetSpriteFlag0(int spriteno) uint __cdecl16far Spmgr_GetFrameNo(int spriteno) void __cdecl16far Spmgr_SetFrame(int spriteno, uint frameno) void __cdecl16far Sprite_SetLocation(int spriteno, int x, int y, char z) void __cdecl16far Sprite_GetLocation(int spriteno, word * x, word * y, uint * z) struct Rect * __cdecl16far Spmgr_GetScreenBounds(struct Rect * pcoords, int spriteno) struct Point2 * __stdcall16far Spmgr_GetScreenCoords_11a0_06ba(struct Point2 * pout, int spriteno) struct Rect * __stdcall16far Sprite_TrimRectToScreenCoords(struct Rect * rect, int spriteno) int __cdecl16far Sprite_GetX(int spriteno) int __cdecl16far Sprite_GetY(int spriteno) clears a global then sets flag 0 on all valid sprites (non-zero shapeno) void __cdecl16far Spmgr_11a0_0de9(void) void __cdecl16far Spmgr_11a0_0e1f(undefined4 param_1, int param_2) void __cdecl16far nullfn_11a8(void) intrinsic 05D void __cdecl16far FUN_11b0_0000(void) intrinsic 05F void __cdecl16far FUN_11b0_000c(void) void __cdecl16far FUN_11b0_091b(byte param_1) void __cdecl16far FUN_11b0_0932(void) void __cdecl16far FUN_11b0_098f(void) void __cdecl16far Notify_NPCUpdate(enum UpdateType i) dword __cdecl16far returninput_11b0_09f7(dword val) struct Process * __cdecl16far KeyDaemon_CreateProcess(struct Process * p_proc) void __cdecl16far nullfn_11b8_00ef(void) struct Process * __cdecl16far KeyboardProcess_CreateProcess(struct Process * p_proc) void __cdecl16far KeyboardProcess_HandleKeyEvent(struct Process * p_proc, int param_2, int param_3, struct KeyEvent * keyevent) void __cdecl16far KeyboardProcess_Clear(void) void __cdecl16far KeyboardProcess_Set(struct Process * p_proc) struct KeyEvent * __cdecl16far Keyboard_GetLastKeyEvent(struct KeyEvent * keyevent, undefined4 param_2) void __cdecl16far nullfn_11b8_04c0(void) void __cdecl16far Mouse_InterruptHandler(word condition_mask, word button_state, word cursor_col, word cursor_row, word h_mickeys, word v_mickeys) void __cdecl16far Mouse_InitStuff(void) void __cdecl16far Mouse_SetCursorPos(word column, word row) void __cdecl16far Mouse_SetHCursorRange(word mincolumn, word maxcolumn) void __cdecl16far Mouse_SetVCursorRange(word minrow, word maxrow) void __cdecl16far Mouse_DefinePixelRatio(word hratio, word vratio) int __cdecl16far Priority_11b8_0668(byte * param_1) undefined __cdecl16far Priority_11b8_0696(byte * param_1, byte param_2) struct Process * __stdcall16far SystemTimerProcess_CreateProcess(struct Process * p_proc) undefined __cdecl16far SystemTimerProcess_Increment(struct Process * p_proc) void __cdecl16far SystemTimer_SetProcess(struct Process * ptr) undefined __cdecl16far FUN_11c0_0141(struct Process * p_proc, undefined2 param_2, undefined2 param_3) struct Process * __stdcall16far AccWait_CreateProcess(struct Process * p_proc, uint param_2, uint param_3, int itemno) void __cdecl16far AccWait_11c0_0249(struct Process * p_proc) undefined __cdecl16far AccWait_11c0_0273(struct Process * p_proc) void __cdecl16far AccWaitProcess_Run(struct Process * p_proc) struct Process * __stdcall16far WaitProcess_CreateProcess(struct Process * p_proc, uint ticks, undefined2 param_3, int param_4) void __cdecl16far WaitProcess_11c0_03f7(struct Process * p_proc) void __cdecl16far WaitProcess_11c0_0418(struct Process * p_proc) undefined __cdecl16far WaitProcess_Run(struct Process * p_proc) undefined __cdecl16far FUN_11c0_072d(struct Process * param_1) void __cdecl16far nullfn_11c0_0748(void) void __cdecl16far FUN_11c0_074d(struct Process * param_1, uint param_2) void __cdecl16far KeyEvent_Clear(struct KeyEvent * ptr) undefined __cdecl16far KeyEvent_FillCharVal(struct KeyEvent * keyevent) bool __cdecl16far KeyEvent_IsScanInSpecialVals(struct KeyEvent * kevent) bool __cdecl16far KeyEvent_IsShiftDown(struct KeyEvent * keyevent) bool __cdecl16far KeyEvent_IsAltDown(struct KeyEvent * keyevent) bool __cdecl16far KeyEvent_IsCtrlDown(struct KeyEvent * keyevent) undefined __cdecl16far Keyboard_11c8_01c6(byte * param_1, uint param_2) byte __cdecl16far Keyboard_IsKeyEventForOneOf(struct KeyEvent * keyevent, enum KeyScan key, ...) struct Process * __cdecl16far BiosTimer_CreateProcess(struct Process * p_proc) undefined __cdecl16far FUN_11c8_03a5(word * object, word a, word b, word c, word d) void __cdecl16far nullfn_11c8_03f8(void) void __cdecl16far Kernel_Init(void) void __cdecl16far Kernel_Uninit(void) byte __cdecl16far Kernel_11d0_0716(void) Intrinsic 0EF int __cdecl16far Process_GetProcessCountForItemAndType(int itemno, int proctype) int __cdecl16far Kernel_GetNextFreeProcId(void) int __cdecl16far Kernel_AddProcess(struct Process * p_proc) struct Process * __stdcall16far Kernel_GetProcessPtr(uint procid) struct Process * __stdcall16far Process_GetProcById(uint procno) Intrinsic 06C void __cdecl16far Kernel_ResetRef(word itemno, word processtype) void __cdecl16far Kernel_11d0_0c7d(void) void __cdecl16far Kernel_DoResetRef(int itemno, int processtype, byte param_3) void __cdecl16far Kernel_11d0_0e64(uint param_1, byte param_2, ...) void __cdecl16far Kernel_11d0_102e(uint param_1) void __cdecl16far Kernel_11d0_11fe(void) Called from the interpreter by opcode 0x54 void __cdecl16far Kernel_Implies(uint pid1, uint pid2) struct Process * __stdcall16far Process_GetProcessForItemAndType(int itemno, int proctype) struct Process * __stdcall16far Process_Get_11d0_151d(int itemno, int proctype) struct Process * __stdcall16far FUN_11d0_15f2(void) void __cdecl16far Kernel_11d0_1738(uint procid) void __cdecl16far Kernel_SetProcLinear(struct Process * p_proc) void __cdecl16far Kernel_TerminteProcessByPid(uint procid) void __cdecl16far Kernel_ClearProcessSomethingAndName(int procno) void __cdecl16far Kernel_11d0_19b5(char param_1) void __cdecl16far Process_11d0_19cd(struct Process * p_proc) byte __cdecl16far Process_11d0_19ec(struct Process * p_proc) undefined __cdecl16far Kernel_SetLastProcessAllocSize(int val) void __cdecl16far Kernel_11d0_1dcc(void) void __cdecl16far Kernel_ResetKeyboardStates(void) undefined __cdecl16far Kernel_11d0_203e(dword param_1, undefined2 param_2) void __cdecl16far Timer_SetCounterDivisor(uint param_1) void __cdecl16far Kernel_RegisterProcForTimerEvents(int procid, byte flag) void __cdecl16far Kernel_UnregisterForTimerEvents(int procid) void __cdecl16far Kernel_11d0_2faa(void) void __cdecl16far Kernel_11d0_300b(void) void __cdecl16far FUN_11d0_307d(void) void __cdecl16far FUN_11d0_30e5(uint param_1, uint param_2) void __cdecl16far FUN_11d0_31cf(uint param_1, int param_2, undefined * param_3, uint param_4) void __cdecl16far FUN_11d0_3232(void) void __cdecl16far FUN_11d0_3248(void) void __cdecl16far Kernel_ClearPendingKeyboardEvents(void) int __cdecl16far Keyboard_GetKeyState_11d0_39b9(enum KeyScan keycode, byte someflag) void __cdecl16far FUN_11d0_3a3c(void) byte __cdecl16far Kernel_GetPendingKeyboardEventCount(void) byte __cdecl16far Kernel_IsPendingKeyboardEventQueueFull(void) struct KeyEvent * __stdcall16far Kernel_GetPendingKeyboardEvent(struct KeyEvent * keyevent) void __cdecl16far Kernel_RegisterForKeyboardEvents(struct Process * p_proc) void __cdecl16far Kernel_UnregisterForKeyboardEvents(struct Process * p_proc) void __cdecl16far Kernel_CallProcKeyboardInterrupts(void) void __cdecl16far Kernel_11d0_3da0(void) void __cdecl16far FUN_11d0_3e0b(uint itemno) void __cdecl16far FUN_11d0_3e44(uint param_1) void __cdecl16far FUN_11d0_3e7f(int itemno) undefined2 __cdecl16far FUN_11d0_3eb4(uint param_1) void __cdecl16far ItemProcess_NewProcTypeForItem(int itemno, char proctype) void __cdecl16far FUN_11d0_3f22(int itemno, char proctype) void __cdecl16far FUN_11d0_3f59(int prev_itemno, int proctype) word __cdecl16far FUN_11d0_3f95(int npcno, char param_2) undefined __cdecl16far Mouse_CallProcMouseInterrupts(word conditionmask, word buttonstate, word col, word row) void __cdecl16far Kernel_RegisterForMouseEvents(struct Process * param_1) void __cdecl16far Kernel_UnregisterForMouseEvents(struct Process * p_proc) struct Process * __stdcall16far Process_Init(struct Process * p_proc) struct Process * __stdcall16far Process_AllocSpace(word size) void __cdecl16far Process_AssertNotTerminating(struct Process * p_proc) void __cdecl16far Process_SetItemNo(struct Process * p_proc, int itemno) void __cdecl16far Process_SetProcType(struct Process * p_proc, int proctype) void __cdecl16far Process_11e0_02a8(struct Process * p_proc, byte param_2) void __cdecl16far Process_Sleep(struct Process * p_proc, dword sleeptime) undefined __cdecl16far FUN_11e0_0353(struct Process * param_1) void __cdecl16far Process_11e0_0405(struct Process * p_proc) void __cdecl16far FUN_11e0_046b(struct Process * param_1) undefined __cdecl16far Process_TerminateProc(struct Process * p_proc) void __cdecl16far Process_11e0_058e(struct Process * param_1) undefined __cdecl16far Process_11e0_05b2(struct Process * param_1) void __cdecl16far Process_SetTerminating(struct Process * p_proc) void __cdecl16far FUN_11e0_0a43(ulong param_1, uint param_2) void __cdecl16far Process_11e0_0cb3(struct Process * p_proc, uint procid2) void __cdecl16far Process_11e0_0d52(struct Process * pproc, uint procid) void __cdecl16far Process_SetIsWaiting(struct Process * p_proc, uint pid) void __cdecl16far Process_SetHasWaiter(struct Process * p_proc, uint waiterpid) struct Process * __stdcall16far Process_WaitFor(struct Process * proc_1, struct Process * proc_2) void __cdecl16far Process_11e0_0fee(struct Process * proc1, struct Process * proc2) proc2 will wait for proc1 struct Process * __stdcall16far Process_WaitFor(struct Process * p_proc1, struct Process * p_proc2) like waitfor struct Process * __stdcall16far Process_Chain(struct Process * param_1, struct Process * param_2) uint __cdecl16far Process_WaitForPid(struct Process * proc1, uint procid) void __cdecl16far Process_Terminate(struct Process * p_proc, dword result) void __cdecl16far Process_Fail(struct Process * p_proc, dword result) void __cdecl16far Process_SetLinear(struct Process * p_proc) undefined __cdecl16far Process_11e0_127c(struct Process * param_1) void __cdecl16far Process_SetIsDaemon(struct Process * p_proc) void __cdecl16far Process_SetLinear(struct Process * p_proc) void __cdecl16far Proc_ClearLinear(struct Process * p_proc) void __cdecl16far Process_SetTerminatedState(struct Process * p_proc) void __cdecl16far Process_11e0_13a7(struct Process * p_proc) void __cdecl16far Process_LoadMaybe_11e0_1400(struct Process * p_proc) void __cdecl16far Process_SaveProbably_11e0_143d(struct Process * p_proc) undefined __cdecl16far Process_11e0_147c(struct Process * param_1, undefined2 param_2, undefined2 param_3) struct Process * __cdecl16far Process_Create_0x36byte(struct Process * p_proc) void __cdecl16far Process_11e0_1548(ulong param_1, uint procid) void __cdecl16far Process_11e0_15ab(struct Process * p_proc1, uint procid2) void __cdecl16far Process_11e0_160e(struct Process * param_1) void __cdecl16far Process_UnregisterForInterruptEvents(struct Process * p_proc) void __cdecl16far Process_RegisterForMouseEvents(struct Process * p_proc) void __cdecl16far Process_UnregisterForMouseEvents(struct Process * p_proc) void __cdecl16far Process_RegisterForKeyboardEvents(struct Process * p_proc) void __cdecl16far Process_UnregisterForKeyboardEvents(struct Process * p_proc) void __cdecl16far Process_SetKeyboardInterruptFlag(struct Process * p_proc) void __cdecl16far Process_ClearKeyboardInterruptFlag(struct Process * param_1) undefined4 __cdecl16far Process_Init0x40ByteProc(struct Process * p_proc) void __cdecl16far Process_Set_MaybeTimesPerSecond(struct Process * pproc, uint param_2) undefined __cdecl16far FUN_11e0_18c7(struct Process * p_proc, undefined2 param_2, undefined2 param_3) void __cdecl16far Process_RegisterForTimerEvents(struct Process * p_proc, byte flag) void __cdecl16far Process_UnregisterForTimerEvents(struct Process * p_proc) void __cdecl16far Process_11e0_19e6(struct Process * p_proc) undefined __cdecl16far Process_11e0_1a33(struct Process * p_proc) void __cdecl16far Process_11e0_1a7e(struct Process * p_proc, uint param_2) void __cdecl16far Process_11e0_1acc(struct Process * p_proc, uint param_2) void __cdecl16far Process_11e0_1b1a(struct Process * p_proc, uint param_2) uint __cdecl16far MList_11e8_0000(undefined4 param_1, uint param_2, word param_3) undefined __cdecl16far MList_11e8_01a3(int * param_1) void __cdecl16far MList_11e8_01ec(struct Process * p_proc, uint param_2) uint __cdecl16far FUN_11e8_0238(ulong param_1, int param_2) uint __cdecl16far MList_11e8_02ab(ulong fnptr, word param_2) uint __cdecl16far MList_11e8_03af(int * param_1, int param_2) uint __cdecl16far MList_GetInt16(byte * list, uint offset) void __cdecl16far MList_11e8_051b(uint * param_1, uint param_2, undefined2 param_3) uint * __stdcall16far MList_11e8_0673(uint * param_1, ulong fnptr, uint param_3, uint * param_4) void __cdecl16far MList_11e8_074e(undefined4 param_1, int nitems) struct Process * __stdcall16far StdIntHAndler_CreateProcess(struct Process * p_proc) void __cdecl16far List_RemoveUint16(ulong plist, int val) uint __cdecl16far List_AddUint16(int * param_1, int procid) void __cdecl16far DosSetInterruptHandler(byte int_no, word inthandler_offset, word inthandler_segment) dword __cdecl16far DosGetInterruptVector(byte int_no) void __cdecl16far FUNSetInterruptStuff_11f0_0460(byte param_1) struct Process * __stdcall16far MusicProcess_CreateProcess(struct Process * p_proc) void __cdecl16far nullfn_11f8_00a4(void) char * __stdcall16far Music_GetMusicPath(int trackno) intrinsic 012 void __cdecl16far Music_PlayTrackNo(int track) Intrinsic 090 void __cdecl16far Music_SetMusicInitialized(void) void __cdecl16far Music_SetMusicUninitialized(void) void __cdecl16far Music_SetGlobalAndPlay11f8_0262(int trackno) void __cdecl16far Music_11f8_02bf(undefined4 param_1) undefined __cdecl16far GetDescriptorTables(word * param_1, word * param_2, word * param_3) void __cdecl16far FUN_1218_059b(int param_1, undefined2 param_2, undefined2 param_3, undefined2 param_4, undefined2 param_5, ushort param_6, undefined2 param_7) undefined __cdecl16far FUN_1218_064a(word param_1, word param_2, word param_3, dword param_4, undefined2 param_5, undefined2 param_6, ushort int_no, undefined2 param_8) void __cdecl16far FUN_1218_07af(void) undefined __cdecl16far SetuRam1478866aToVal(dword param_1) void __cdecl16far FUN_1220_0000(int * param_1, uint param_2) void __cdecl16far Fastflex_1220_0070(struct File * param_1, char * param_2, int param_3, int param_4) dword * __cdecl16far File_MallocOrInit8Bytes(dword * param_1) undefined2 __cdecl16far File_FileOpen(struct File * param_1, char * param_2, undefined2 param_3, undefined1 param_4) void __cdecl16far File_SetName(struct File * f, char * str) void __cdecl16far File_Open_1228_016a(struct File * file, char * name, int param_3, char param_4) undefined __cdecl16far File_CloseFile(struct File * f) void __cdecl16far dos_lseek_2(undefined2 * param_1, uint param_2, uint param_3, uint param_4) void __cdecl16far File_SeekAndRead(struct File * file, byte * buf, word nbytes, word something, long offset) void __cdecl16far File_SeekAndWrite(struct File * file, byte * data, ulong nbytes, long offset) void __cdecl16far File_Seek_1228_0556(undefined2 * param_1) void __cdecl16far dos_fflush(word param_1, word param_2) void __cdecl16far dos_lseek(word param_1, word param_2) byte __cdecl16far dos_flock_1228_09ea(word param_1, word param_2, word param_3, word param_4, word param_5, word param_6) byte __cdecl16far dos_flock(word param_1, word param_2, word param_3, dword param_4, word param_5) void __cdecl16far SomehowSkipWhitespace(dword ptr) undefined __cdecl16far FUN_1230_02a7(dword param_1, undefined1 param_2) void __cdecl16far FUN_1230_0384(dword param_1) undefined __cdecl16far Filepars_1230_05b1(word p2, word p3, ImageBaseOffset32 p4) char * __stdcall16far Filespec_GetFullPath(char * cdletter, char * path, char * filename, char * extn) void __cdecl16far Filespec_1238_032e(char * param_1, char * param_2, undefined2 param_3) byte * __stdcall16far FUN_1238_056a(byte * param_1) void __cdecl16far FUN_1238_06eb(ulong param_1, uint param_2) bool __cdecl16far memcmp_8(char * s1, char * s2) void __cdecl16far Flex_Write_1240_0028(struct File * file, char * name, int param_3) dword * __stdcall16far Flex_LoadProbably_1240_00e7(dword * fileobject, char * fname, word param_3, word param_4) void __cdecl16far Flex_Load(struct File * dest, char * name, int mode, int entry) dword __stdcall16far Flex_1240_0252(undefined4 param_1, int param_2) void __cdecl16far Flex_1240_02a8(struct File * param_1, dword param_2, undefined2 param_3, ulong param_4, long param_5) void __cdecl16far FUN_1240_049e(dword param_1) void __cdecl16far Flex_Read_Probably_1240_05a8(struct File * file) undefined2 __cdecl16far FUN_1240_0952(ulong param_1) void __cdecl16far FUN_1248_00c2(void * param_1, uint param_2) void __cdecl16far Basepal_1258_0000(struct Palette * pal, undefined maybefirstcol, int ncols) undefined __cdecl16far Palette_Free(struct Palette * pal, undefined2 free_pal_struct) void __cdecl16far FUN_1258_00c7(long * param_1, uint param_2, uint param_3) void __cdecl16far Palette_SetVideoCardPalette(struct Palette * paldata, int firstcol, int lastcol) void __cdecl16far Palette_BlendParam1ToGreyscale(uint * param_1, struct Palette * pal) void __cdecl16far Palette_SetAllColorsToVal(struct Palette * pal, byte[3] color) void __cdecl16far Palette_SetColorData(struct Palette * pal, byte * colbuf, byte firstcol, int ncols) void __cdecl16far Palette_ReadFile(struct Palette * pal, char * path, long param_3) undefined __cdecl16far Palette_Clear(struct Palette * pal) void __cdecl16far Palette_Transform_RGB_To_YIQ(struct Palette * pal) undefined2 __cdecl16far FUN_1268_00c7(int * param_1, int param_2, int param_3) void __cdecl16far Rect_FindOverlap(struct Rect * rect1, struct Rect * rect2) undefined2 __cdecl16far FUN_1268_01b9(int * param_1, int * param_2) byte __cdecl16far World_IsObjectEntirelyVisible(struct Rect * viewport, struct Rect * object) byte __cdecl16far SuperVGAGetModeInfo(undefined2 param_1, undefined4 param_2) byte __cdecl16far SuperVGAGetInfo(undefined4 param_1) void __cdecl16far FUN_1270_002b(undefined4 param_1, long param_2, long param_3, undefined param_4) void __cdecl16far FUN_1270_0171(ulong param_1, long param_2, long param_3, long param_4, long param_5, uint param_6) undefined __cdecl16far VPort_1278_0000(struct ViewPort * param_1) void __cdecl16far VPort_1278_0093(struct ViewPort * structPtr, uint param_2, int xmin, int ymin, int xmax, int ymax, long ptr) void __cdecl16far FUN_1278_017b(struct ViewPort * pviewport) void __cdecl16far FUN_1278_020a(uint * param_1, uint param_2) struct ViewPort * __stdcall16far FUN_1278_0238(struct ViewPort * pviewport, undefined2 param_2, undefined2 param_3) byte * __stdcall16far VPort_1278_0270(uint * param_1, int probably_x, int probably_y) void __cdecl16far FUN_1278_02f6(dword param_1, uint param_2, uint param_3, uint param_4, uint param_5, undefined param_6) void __cdecl16far Vport_1278_0616(ulong param_1, char param_2, word param_3, word param_4, word param_5, word param_6) void __cdecl16far FUN_1278_083a(int * ptr1, int * ptr2, int param_3, int param_4, int param_5, int param_6) void __cdecl16far FUN_1280_0291(void) dword __cdecl16far Memory_malloc_1288_0000(word size) dword __cdecl16far Memory_1288_0029(word param_1, word param_2) void __cdecl16far Memory_ProbablyFree_1288_004f(int * param_1) undefined __cdecl16far MemoryProbablyFree_1288_007a(void * param_1) word __cdecl16far MemoryJustReturn2(void) word __cdecl16far MemoryJustReturn2_2(void) void __cdecl16far dos_far_malloc_maybe_1288_0e6b(ulong param_1, word param_2, int param_3) void __cdecl16far FUN_1288_0fc3(undefined1 param_1) void __cdecl16far Memory_ProbablyFree_1288_1024(void * param_1, word param_2) byte * __cdecl16far FUN_1290_0000(dword param_1) int * __cdecl16far FUN_1290_0033(word param_1) dword __cdecl16far FUN_1290_005f(word param_1, word param_2) dword __cdecl16far FUN_1290_007d(uint param_1) void __cdecl16far FUN_1290_0096(byte * param_1, undefined4 param_2) dword __stdcall16far FUN_1290_0163(undefined2 param_1, undefined2 param_2) void __cdecl16far nullfn_1290_0223(void) dword __stdcall16far FUN_1290_0228(byte * param_1) void __cdecl16far FUN_1290_02ae(undefined2 * param_1, ulong param_2) void __cdecl16far FUN_12b0_0000(undefined4 * param_1, undefined4 * param_2, ulong param_3) void __cdecl16far FUN_12b0_0066(undefined4 param_1, undefined4 param_2) void __cdecl16far FUN_12b0_00c1(undefined4 param_1, undefined4 param_2) void __cdecl16far FUN_12b0_011c(ulong param_1, long param_2, ulong param_3) void __cdecl16far FUN_12b0_01b8(ulong param_1, long param_2, ulong param_3) void __cdecl16far FUN_12b0_0254(dword param_1, dword param_2, dword param_3) void __cdecl16far FUN_12b0_0286(dword param_1, dword param_2, dword param_3) void __cdecl16far FUN_12b0_02b8(dword param_1, undefined2 param_2, undefined2 param_3) void __cdecl16far FUN_12b0_02e8(undefined4 param_1, undefined4 param_2) void __cdecl16far FUN_12b0_0318(undefined4 param_1, long param_2) void __cdecl16far FUN_12b0_039d(dword param_1, undefined2 * param_2) void __cdecl16far FUN_12b0_03d1(int * param_1) word __cdecl16far FUN_12b0_0441(long * param_1, long * param_2) void __cdecl16far FUN_12b0_048c(undefined4 param_1, long * param_2) void __cdecl16far FUN_12b8_0000(undefined2 * param_1, uint param_2) word * __stdcall16far FUN_12b8_002a(word * param_1) void __cdecl16far FUN_12b8_0071(int * param_1, byte param_2) void __cdecl16far FUN_12b8_015c(dword param_1, byte * param_2) undefined2 __cdecl16far FUN_12b8_02aa(int * param_1) void __cdecl16far FUN_12b8_02d7(ulong param_1, undefined2 param_2, undefined2 param_3, char * fmtstr, ...) void __cdecl16far FUN_12b8_0492(dword param_1) void __cdecl16far FUN_12c0_006e(undefined4 param_1, long param_2) void __cdecl16far FUN_12c0_00c2(dword param_1, dword param_2) void __cdecl16far FUN_12c0_01bd(undefined4 param_1, long param_2, long param_3) void __cdecl16far Pfloat_Init(char * fname) void __cdecl16far Pfloat_Uninit(void) undefined __cdecl16far Pfloat_12c8_0157(long * result, undefined4 x, undefined4 y) long * __cdecl16far Pfloat_12c8_01eb(long * result, long * x, long y) void __cdecl16far Pfloat_Multiply(long * result, long * param_2, int param_3) void __cdecl16far Pfloat_12c8_0340(long * result, long * param_2, int param_3) void __cdecl16far Pfloat_12c8_0400(long * result, long * param_2, long param_3) void __cdecl16far Pfloat_12c8_049f(long * result, long * param_2, long * param_3) void __cdecl16far Pfloat_12c8_0579(long * result, long * param_2, int param_3) void __cdecl16far Pfloat_12c8_061d(long * result, long * param_2, int param_3) void __cdecl16far Pfloat_Sin(long * result, long * angle) void __cdecl16far Pfloat_Cos(long * result, long * angle) void __cdecl16far Pfloat_Cos2(long * result, long * angle) void __cdecl16far nullfn_12c8_09c1(void) void __cdecl16far AssertError(char * filename, word lineno) void __cdecl16far halt_on_error_12d0_014d(char * msg, word lineno, char * param_3, ...) void __cdecl16far PrintDebugAndExit(char * param_1, word param_2) void __cdecl16far ConsolePrintf(word lvl, char * msg, ...) void __cdecl16far DebugPrintAndWaitForInput(int level, char * msg, word param_3) short __cdecl16far RandomInt(void) void __cdecl16far Random_SetSeed(uint param_1, int param_2) dword __stdcall16far Get_RandomSeed(void) uint __cdecl16far RandomVal(uint max) void __cdecl16far System_12d0_0513(dword param_1) void __cdecl16far SuperVGA_CheckAndSetVideoMode(undefined2 param_1_00, undefined2 param_2, ulong param_3) void __cdecl16far SuperVGA_GetCurrentModeAndFontInfo_12d0_061f(void) void __cdecl16far nullfn_0651(void) void __cdecl16far FUN_12d0_0656(byte param_1) int __cdecl16far File_Exists(char * fname) int __cdecl16far RandomRange(int lo, int hi) void __cdecl16far DSFXMan_Uninit(void) void __cdecl16far Sound_PlaySFX_Intrinsics0AAand0D4(word sndno) void __cdecl16far Sound_PlaySFX(dword param_1) void __cdecl16far Sound_StopAllSFX_Wrapper(void) void __cdecl16far Sound_StopAllSFX(void) void __cdecl16far nullfn_12d8_055b(void) void __cdecl16far DSFXMan_InitIfEnabled(void) void __cdecl16far AssProcess_CreateIfNeeded(void) void __cdecl16far AssProcess_CreateProcess(struct Process * p_proc) void __cdecl16far AssProcess_Run(void) void __cdecl16far AssProcess_UpdateDac(struct Process * p_proc, ulong param_2) void __cdecl16far nullfn_12e0_014c(void) void __cdecl16far Init_ASS(int port, int irq, int dma, char * ass_init_info) void __cdecl16far FUNFreeMusicData_12e0_02ba(struct MusicData * data) void __cdecl16far Music_Load(dword p_buffer, char * path) void __cdecl16far Sound_InitManager(void) void __cdecl16far Sound_StopAllSFX(void) int __cdecl16far Sound_GetsChannelForSFX(long sfxid) void __cdecl16far Sound_PlaySoundSomething_12e8_0136(word sndno, word vol, word param_3, byte chan) void __cdecl16far Sound_PlaySFX(dword param_1) byte __cdecl16far Sound_IsSFXPlaying(undefined4 sfx) void __cdecl16far Sound_StopSFX(long sfxid) void __cdecl16far Sound_StopAllSFX(void) undefined __cdecl16far Sound_12e8_0367(undefined2 param_1, byte param_2) void __cdecl16far Sound_12e8_0428(void) undefined __cdecl16far ASSCallbackFn(word callbackdata) void __cdecl16far Sound_Stop_12e8_04d8(int param_1) void __cdecl16far Sound_SetChannelForPlayingSFX(long sfxid, word volume) int __cdecl16far Sound_GetSoundnoMaybe_12e8_057a(long sfxid) int __cdecl16far Sound_12e8_05bc(int sndno) void __cdecl16far FUN_12f0_0495(int param_1) int * __stdcall16far SndCache_LoadSound(int soundno) void __cdecl16far SndCache_12f0_0707(ulong param_1, undefined2 param_2) void __cdecl16far SndCache_12f0_094d(int param_1) void __cdecl16far FUN_12f0_0a3e(void) int * __stdcall16far GumpCreate_12f8_024b(int * p_gump, undefined2 param_2, undefined2 param_3, byte param_4, int * parent, undefined2 param_6, undefined2 param_7, undefined2 param_8, undefined2 param_9, undefined param_10) void __cdecl16far FUN_12f8_02e4(undefined2 * param_1, uint param_2) void __cdecl16far nullfn_12f8_0530(void) void __cdecl16far nullfn_12f8_0535(void) void __cdecl16far nullfn_12f8_053a(void) void __cdecl16far nullfn_12f8_053f(void) void __cdecl16far nullfn_12f8_0544(void) void __cdecl16far nullfn_12f8_0549(void) void __cdecl16far nullfn_12f8_054e(void) void __cdecl16far nullfn_12f8_0553(void) byte __cdecl16far return0_12f8_0558(void) void __cdecl16far nullfn_12f8_0578(void) void __cdecl16far nullfn_12f8_057d(void) void __cdecl16far Vport_1300_018c(dword param_1, int x1, int y1, int x2, int y2) struct Process * __stdcall16far BaseCameraProcess_CreateProcess(struct Process * p_proc) void __cdecl16far FUN_1300_0942(void) void __cdecl16far VPort_1300_09fd(uint x1, uint y1, uint x2, uint y2) int * __stdcall16far GumpCreate_1308_01d0(int * p_gump, byte childno, int * parent) int * __stdcall16far GumpCreate_1308_02a7(int * p_gump, byte param_2, int * parent) int * __stdcall16far GumpCreate_1308_032b(int * p_gump, byte param_2, int * parent) int __cdecl16far FUN_1310_0000(undefined4 param_1) undefined __cdecl16far CaFont_1310_0083(int * param_1, undefined1 param_2) word * __stdcall16far CaFont_1310_0148(word * param_1, word param_2) word * __cdecl16far CaFont_1310_01b1(word * param_1) void __cdecl16far CaFont_Init(char * fontsflxpath) undefined __cdecl16far CaFont_1310_028c(int * param_1, undefined2 param_2) int * __cdecl16far Combobox_1318_0000(int * p_gump, byte param_2, undefined2 param_3, undefined2 param_4, undefined2 param_5, undefined2 param_6, undefined2 param_7, undefined2 param_8, word param_9) void __cdecl16far nullfn_1318_068d(void) void __cdecl16far nullfn_1318_0692(void) void __cdecl16far FUNInit_1320_0000(void) void __cdecl16far FUNUninit_1320_001b(void) struct Process * __stdcall16far Dispatcher_CreateProcess(struct Process * p_proc) void __stdcall16far DisaptcherProc_Run(dword proc) void __cdecl16far DispatcherProcess_HandleKeyEvent(struct Process * p_proc, int param_2, int param_3, struct KeyEvent * keyevent) uint __cdecl16far Dispatch_Init_320_0281(dword param_1, int param_2) void __cdecl16far FUNUninit_1320_04c4(int * param_1, uint param_2) void __cdecl16far FUNUninit_1320_04f8(undefined2 param_1, undefined2 param_2) int __cdecl16far Dispatch_incSomeGlobalandDidItGetTo25(undefined2 param_1, undefined2 param_2, dword param_3) void __cdecl16far FUN_1320_0935(undefined2 param_1, undefined2 param_2, int * param_3, undefined2 * param_4) void __cdecl16far FUN_1320_0cbd(undefined2 param_1, undefined2 param_2, undefined4 param_3) void __cdecl16far Dispatch_AssertFail(void) void __cdecl16far FUN_1320_0d9a(undefined2 param_1, undefined2 param_2, uint param_3, uint param_4, uint param_5, uint param_6) void __cdecl16far nullfn_1320_0df7(void) void __cdecl16far FUN_1320_0dfc(undefined2 param_1, undefined2 param_2, undefined2 param_3, undefined2 param_4) void __cdecl16far Dispatch_1320_0e1f(dword param_1, dword param_2) dword __cdecl16far FUN_1320_0ebc(dword param_1_00, uint * param_2, undefined2 param_3, int param_4) byte __cdecl16far return0_1320_12c0(void) void __cdecl16far nullfn_1320_12c7(void) int * __stdcall16far Dispatch_1320_132a(int * param_1, undefined4 param_2, undefined2 param_3, undefined2 param_4) dword __stdcall16far Dispatch_ModalGump(undefined4 p_gump, int param_2, int param_3) void __cdecl16far nullfn_1320_172f(void) int * __stdcall16far GumpCreate_1328_0000(int * p_gump, undefined2 param_2, undefined2 param_3, undefined param_4, int * parent) void __cdecl16far nullfn_1328_064d(void) void __cdecl16far FUN_1330_00ea(int * param_1, undefined2 * param_2, uint param_3) int * __stdcall16far GumpCreate_Filebox(int * p_gump, undefined2 param_2, undefined2 param_3, char * dir) byte __cdecl16far Filebox_1330_0899(int * p_gump, char * path) int * __stdcall16far FileBoxGump_GumpCreate(int * param_1, undefined2 param_2, undefined2 param_3, byte param_4, undefined2 param_5, undefined2 param_6, char * param_7, undefined2 param_8, undefined2 param_9) void __cdecl16far GumpShape_Init(char * param_1) void __cdecl16far GumpShape_Uninit(void) int * __stdcall16far GumpShape_1338_0063(int * buf, char * path) void __cdecl16far FUNFree_1338_00bc(dword param_1, uint param_2) void __cdecl16far FUN_1338_0109(undefined2 param_1, undefined2 param_2, int param_3, int param_4, undefined2 param_5, undefined2 param_6, byte param_7) int * __stdcall16far Gump_1338_0242(int * p_gump, int * param_2, word shapeno, word frameno) int * __stdcall16far GumpCreate_1340_0000(int * p_gump, byte param_2, int * parent, undefined2 param_4, undefined2 param_5, undefined2 param_6, undefined2 param_7, undefined2 param_8, undefined2 param_9, undefined param_10, undefined2 param_11, undefined2 param_12) void __cdecl16far FUN_1340_0706(ulong param_1, int param_2, char param_3) void __cdecl16far FUN_1340_075f(undefined4 param_1, undefined2 param_2, undefined2 param_3, undefined param_4, undefined2 param_5, undefined2 param_6) void __cdecl16far FUN_1340_079c(int * param_1) int __cdecl16far FUN_1340_096a(undefined4 param_1, int param_2) int * __stdcall16far Dialog_ShowMsg(int * param_1, undefined2 param_2, undefined2 param_3, undefined param_4, undefined2 param_5, undefined2 param_6, char * param_7, char param_8) void __cdecl16far nullfn_1350_0407(void) struct Process * __stdcall16far MouseCtlProcess_CreateProcess(struct Process * p_proc, char * mouse_shp_path) void __cdecl16far Mouse_SetDefaultRanges(void) void __cdecl16far MouseProcess_Run(void) void __cdecl16far MouseProcess_OnMouseEvent(struct Process * p_proc, undefined2 param_2, undefined2 param3, struct MouseEvent * mouseevent) void __cdecl16far FUN_1358_0a46(dword param_1) void __cdecl16far FUN_1358_0a92(int * mouseshape) void __cdecl16far FUN_1358_0b92(undefined4 param_1, undefined2 param_2) void __cdecl16far FUN_1358_0cbd(int * param_1, uint param_2) void __cdecl16far FUN_1358_0ce9(dword param_1, undefined2 param_2) undefined2 __cdecl16far FUN_1358_0d06(dword param_1) void __cdecl16far Mousectl_LoadMouseShapes(char * param_1, char * mouse_shp_path) void __cdecl16far FUN_1358_0fd6(dword param_1, int mousex_2, word mousey) void __cdecl16far FUN_1358_1108(void) void __cdecl16far FUN_1358_1120(void) int * __stdcall16far NewGump_Init_1360_0000(int * ptr, undefined2 param_2, uint param_3, uint param_4, dword result, int * param_6, uint param_7, uint param_8, uint param_9, uint param_10) bool __cdecl16far NewGump_IsPtrOffsetCEqualTo1(int * ptr) bool __cdecl16far NewGumpIsPtrOffsetCEqualTo2(int * ptr) bool __cdecl16far NewGump_IsPtrOffsetCEqualTo3(int * ptr) bool __cdecl16far NewGumpIsPtrOffsetCEqualTo1(int * ptr) int * __stdcall16far FUN_1360_00c7(int * param_1) undefined __cdecl16far FUN_1360_0113(int * param_1, undefined2 param_2) void __cdecl16far FUN_1360_0161(undefined4 param_1, undefined4 p_gump) void __cdecl16far FUN_1360_017a(undefined4 param_1, int param_2, int param_3) int * __stdcall16far FUN_1360_02a5(int * param_1, byte param_2) undefined2 __cdecl16far FUN_1360_02e4(undefined2 param_1, undefined2 param_2, char param_3, long * param_4) int __cdecl16far FUN_1360_031f(dword param_1, char param_2, char param_3) int * __stdcall16far GumpCreate_1360_036a(int * p_gump, undefined2 param_2, int param_3, undefined param_4, int * parent, undefined2 param_6, undefined2 param_7) void __cdecl16far FUN_1360_046e(undefined2 * param_1, uint param_2) int * __stdcall16far NewGump_Alloc(word nbytes) void __cdecl16far NewGump_FreeProbably_1360_0562(int * p_gump) word __cdecl16far FUN_1360_0580(int * param_1) void __cdecl16far FUN_1360_05a6(int * param_1) void __cdecl16far FUN_1360_05d4(int * param_1, int param_2, int param_3, uint param_4, uint param_5, uint param_6, uint param_7) void __cdecl16far FUN_1360_078d(int * p_gump, int param_2) int __cdecl16far FUN_1360_0c00(undefined4 param_1) void __cdecl16far FUN_1360_0cb2(int * param_1, int * param_2) void __cdecl16far NewGump_1360_0f2a(int * p_gump, int param_2, ...) void __cdecl16far FUN_1360_1253(uint param_1, uint param_2, uint param_3, uint param_4) void __cdecl16far FUN_1360_1297(int * pgump1, int * pgump2) int * __stdcall16far GumpCreate_1370_0000(int * p_gump, byte childno, int * parent, uint shaepno) int * __stdcall16far GumpCreate_1370_017e(int * p_gump, byte param_2, int * parent, undefined2 param_4) undefined2 __cdecl16far FUN_1378_0d4c(int * param_1, byte param_2, int * p_gump, int param_4, int param_5, int param_6, int param_7, char param_8, int param_9) int * __stdcall16far GumpCreate_MsgboxButton(int * p_gump, byte param_2, int * parent, char * str, byte shapeno) int * __stdcall16far Gump_1388_0000(int * param_1, byte param_2, undefined2 param_3, undefined2 param_4, undefined2 param_5, undefined2 param_6, undefined param_7, byte param_8, undefined2 * param_9, uint param_10, undefined param_11, undefined param_12) int * __stdcall16far Bark_1390_0000(int * param_1, undefined2 param_2, undefined2 param_3, undefined2 param_4, undefined4 param_5, char param_6, undefined2 param_7) void __cdecl16far Bark_1390_032c(ulong param_1) void __cdecl16far FUN_1390_05e1(int * param_1) void __cdecl16far FUN_1390_064c(int * param_1) void __cdecl16far nullfn_1390_092f(void) Intrinsic 0FE void __cdecl16far ComputerGump_Show(char * str) int * __stdcall16far ComputerGump_CreateGump(int * pgump, char * str) void __cdecl16far ComputerGump_CopyString(int * pgump, char * str) int * __stdcall16far usecode_debugger_gump_create(int * param_1, undefined2 param_2, undefined2 param_3, undefined param_4) void __cdecl16far nullfn_13a8_01e9(void) byte __cdecl16far FUN_13a8_01ee(undefined4 param_1, undefined2 param_2, undefined2 param_3) void __cdecl16far FUN_13a8_0587(dword param_1) struct Process * __stdcall16far CustomWaitProcess_CreateProcess(struct Process * p_proc, int seconds, int * param_3, int itemno, int proctype, undefined param_6) void __cdecl16far FUN_13b8_021a(struct Process * p_proc) int * __stdcall16far IRGump_13b8_0233(int * p_gump, undefined2 param_2, uint param_3, uint param_4, undefined2 param_5, undefined2 param_6, undefined2 param_7, undefined2 param_8, undefined2 param_9, undefined2 param_10, undefined2 param_11, undefined2 param_12, int param_13) void __cdecl16far nullfn_13b8_096f(void) void __cdecl16far nullfn_13b8_0974(void) void __cdecl16far nullfn_13b8_0979(void) void __cdecl16far nullfn_13b8_097e(void) int * __cdecl16far GumpCreate_KeypadButton(int * p_gump, uint frameno, int * parent) undefined __cdecl16far Gump_KeypadButtonPress_13c0_0086(int * p_gump) Intrinsic 0C4 void __cdecl16far KeypadGump_Show(uint targetval) struct KeypadGump * __stdcall16far KeypadGump_GumpCreate(struct KeypadGump * p_gump, uint target_code, int param_3, int param_4) undefined __cdecl16far KeypadGump_OnButtonPress(struct KeypadGump * p_gump, undefined4 param_2) undefined __cdecl16far KeypadGump_DigitsToInt(struct KeypadGump * p_gump) void __cdecl16far KeypadGump_CheckCode(struct KeypadGump * p_gump) void __cdecl16far FUN_13c0_0a94(int * p_gump, uint param_2) int * __stdcall16far GumpCreate_MainMenu(int * p_gump) void __cdecl16far Game_OptionsGumpInput(int * param_1, undefined4 param_2) void __cdecl16far Game_OptionsGumpInput_(int * p_gump, undefined2 param_2) int * __stdcall16far GumpCreate_MainMenuButton(int * p_gump, byte childno, int * parent, uint shapeno, int * param_5) int * __stdcall16far GumpCreate_DifficultyGumpButton(int * p_gump, byte childno, int * parent, uint shapeno, int * param_5) void __cdecl16far nullfn_13c8_2f32(void) void __cdecl16far FUN_13c8_30d0(int * p_gump, uint param_2) void __cdecl16far nullfn_13c8_310a(void) int * __stdcall16far Gump_13d0_000e(int * pgump, byte param_2) void __cdecl16far FUN_13d0_0226(int * p_gump, uint param_2) undefined2 __cdecl16far U9Mouse_Init(int * param_1) Intrinsic 134 void __cdecl16far Weasel_ShowGump(undefined2 param) void __cdecl16far Weasel_SetIntroMovieLowStock(void) void __cdecl16far Weasel_ClearIntroMovieLowStock(void) byte __cdecl16far Weasel_GetIntroMovieLowStock(void) int * __stdcall16far GumpCreate_Weasel(struct WeaselGump * p_gump, word initparam) undefined __cdecl16far Weasel_13e0_0435(struct WeaselGump * p_gump, undefined2 param_2) void __cdecl16far Weasel_13e0_0486(struct WeaselGump * p_gump) void __cdecl16far Weasel_ResetAfterPurchase(struct WeaselGump * p_gump) void __cdecl16far Weasel_OnPaint(struct WeaselGump * p_gump, int xoff, int yoff) undefined __cdecl16far Weasel_LoadData(struct WeaselGump * p_gump, undefined2 initparam) void __cdecl16far nullfn_13e0_0c70(void) void __cdecl16far nullfn_13e0_0c75(void) void __cdecl16far Weasel_ClampSelectedItemNo(struct WeaselGump * p_gump) void __cdecl16far Weasel_PlayMovie(struct WeaselGump * p_gump, char * * pmoviename, uint randomnum) void __cdecl16far nullfn_13e0_0e51(void) void __cdecl16far nullfn_13e0_0e56(void) void __cdecl16far Weasel_13e0_0e5b(struct WeaselGump * p_gump) void __cdecl16far Weasel_SelectMovie(struct WeaselGump * p_gump, undefined4 param_2) void __cdecl16far Weasel_OnButtonPress_13e0_1098(struct WeaselGump * p_gump, undefined2 param_2) probably onkeyevent?? byte __cdecl16far Weasel_HavePurchasedSelectedItem(struct WeaselGump * p_gump) int __cdecl16far Weasel_GetPurchasedCount(struct WeaselGump * p_gump, int shapeno) uint __cdecl16far Weasel_GetNumberHeld(struct WeaselGump * p_gump, int shapeno) uint __cdecl16far Weasel_CanBuyMoreOfItem(struct WeaselGump * pgump, int shapeno) void __cdecl16far Weasel_TryPurchaseItem(struct WeaselGump * p_gump) void __cdecl16far Weasel_ConfirmedPurchase(struct WeaselGump * p_gump) undefined __cdecl16far Weasel_NextItem(struct WeaselGump * p_gump) undefined __cdecl16far Weasel_PreviousItem(struct WeaselGump * p_gump) int __cdecl16far Weasel_GetSomethingAboutShape_13e0_19d2(undefined2 shapeno) Intrinsic 091 void __cdecl16far SetMovieGlobal604e_Intrinsic091(void) Intrinsic 093 void __cdecl16far ClearMovieGlobal604e_Intrinsic093(void) intrinsic 094 Intrinsic 072 void __cdecl16far Game_SetSomethingLikeAvatarInStasis(void) intrinsic 075 void __cdecl16far Game_ClearSomethingLikeAvatarInStasis(void) void __cdecl16far FUN_13e8_007d(void) Intrinsic 0D3 uint __cdecl16far FUNIntrinsic0D3_13e8_00a8(void) Intrinsic 0A6 bool __cdecl16far Get_isCfgAnimationOff(void) byte __cdecl16far Weasel_CanAddMoreOf(int itemno) Intrinsic 037 and 0B8 byte __cdecl16far World_GiveItemToAvatar(word itemno, byte showtoast) byte __cdecl16far FUN_13e8_0af8(int param_1) void __cdecl16far Inventory_Cycle_Item(void) void __cdecl16far Inventory_PickNextItem(void) Intrinsic 074 void __cdecl16far Game_ClrUnknownGlobalFlag6050(void) Intrinsic 070 byte __cdecl16far Game_GetUnknownGlobalFlag6050(void) Intrinsic 071 void __cdecl16far Game_SetUnknownGlobalFlag6050(void) void __cdecl16far Game_DisableGameplayInputAndRefreshCamera(void) void __cdecl16far Game_RestoreGameplayInputAndClearModalState(void) undefined2 __cdecl16far FUN_13e8_0f77(undefined2 * param_1) void __cdecl16far World_HandleKeyboardInput_13e8_14b4(undefined4 param_1, undefined4 keycode_) void __cdecl16far FUN_13e8_334e(undefined4 param_1) void __cdecl16far Game_StartSelectingNearbyItems(int * param_1, byte grabflag) void __cdecl16far Sprite_UseItem_13e8_3732(uint * pgump) void __cdecl16far FUN_13e8_3796(undefined4 param_1) void __cdecl16far Sprite_CreateUseCrosshairs(int * param1, int x, int y, char z) void __cdecl16far Sprite_MoveUseItemCrosshairs(dword param_1, int x, int y, char z) undefined2 __cdecl16far HelpGump_Create(int * p_gump) void __cdecl16far FUN_13e8_3ec3(void) void __cdecl16far Credits_SetFadeOutFirst0x80ColsAtRate4(void) void __cdecl16far Credits_SetFadeInFirst0x80ColsAtRate4(void) void __cdecl16far SuperVGA_WaitForVTrace(void) void __cdecl16far Credits_LoadData(void) void __cdecl16far Credits_Finish(void) void __cdecl16far Credits_Run(void) void __cdecl16far Credits_Step(void) void __cdecl16far SuperVGA_FadePaletteIfNeeded(void) void __cdecl16far SuperVGA_WaitForVTraceAndConfigurePaletteFade(struct Palette * pal, int first_colno, undefined2 ncols, undefined2 stepsize, enum PalFadeDirection steptype) void __cdecl16far SuperVGA_SetPaletteFadeIn(void) void __cdecl16far SuperVGA_SetPaletteFadeOut(void) int * __stdcall16far GumpCreate_QuickSaveLoadExitGump(int * p_gump, undefined2 param_2, undefined2 param_3, byte param_4, undefined2 param_5, undefined2 param_6, undefined2 param_7, undefined2 param_8, undefined2 param_9, int param_10, int param_11, int param_12, int param_13) int * __stdcall16far FUN_13f8_0383(int * param_1, undefined2 param_2, undefined2 param_3, byte param_4, undefined2 param_5, undefined2 param_6, undefined2 param_7, undefined2 param_8, int param_9, int param_10) void __cdecl16far nullfn_13f8_05c6(void) void __cdecl16far nullfn_13f8_05cb(void) void __cdecl16far Joystick_Init(void) struct Process * __cdecl16far JoystickProcess_CreateProcess(struct Process * p_proc) void __cdecl16far Joystick_InitProcessData(struct Process * buf) undefined __cdecl16far JoystickProcess_Run(struct Process * param_1) void __cdecl16far Joystick_Init(void) void __cdecl16far Joystick_1400_0ae0(void) void __cdecl16far Joystick_1400_0af9(void) byte __cdecl16far FUN_1400_0c7e(void) void __cdecl16far usecode_debugger_maybe_break_on_current_line(undefined2 * param_1, int param_2) uint __cdecl16far usecode_debugger_has_breakpoint(char * param_1, char * param_2, word param_3, word param_4) void __cdecl16far usecode_debugger_callstack_pop_entry(uint * param_1) void __cdecl16far FUN_1408_046f(void) void __cdecl16far Flag_Init_1410_0051(undefined4 param_1, undefined param_2) void __cdecl16far Inter_1418_0000(uint * param_1, undefined2 param_2, undefined2 param_3) short __cdecl16far NumToStr(short num) void __cdecl16far far_atoi2(char * s) uint * __stdcall16far Interpreter_1418_00e8(uint * param_1, uint * pitemno, uint param_3, uint param_4) called by usecode op 0x5a (init) void __cdecl16far Usecode_InitOp(struct UsecodeProcess * p_proc, uint param_2) uint * __stdcall16far Inter_1418_0244(uint * param_1, uint * pitemno, undefined2 param_3, undefined2 param_4, undefined2 param_5, undefined2 param_6, undefined2 param_7, undefined2 param_8, undefined2 param_9, undefined2 param_10, undefined2 param_11, enum UsecodeEvent event) void __cdecl16far FUN_1418_034f(uint * param_1, int param_2) undefined __cdecl16far FUN_1418_035f(struct UsecodeProcess * p_proc, uint param_2, uint param_3) int __cdecl16far Interpreter_NextUsecodeOp(uint * p_proc, dword * result) uint * __stdcall16far UProcess_1420_0000(uint * param_1, undefined2 param_2, undefined2 param_3, uint param_4, int param_5, undefined2 param_6) void __cdecl16far UsecodeProcess_1420_00cd(struct UsecodeProcess * p_proc, uint param_2) void __cdecl16far FUN_1420_011b(undefined2 param_1, undefined2 param_2, undefined2 param_3, undefined2 param_4) void __cdecl16far FUN_1420_0134(dword param_1, int param_2, int param_3) void __cdecl16far FUN_1420_0cb3(void) void __cdecl16far FUNUsecodeInitSomething_1420_0cdf(void) int __cdecl16far Item_GetUsecodeClassId(int * pitemno) byte __cdecl16far Usecode_ItemCallEvent(int * pitemno, ulong param_2, enum UsecodeEvent uc_event, uint * procid_out, dword ucparam) struct UsecodeProcess * __stdcall16far UsecodeProcess_CreateProcess(struct UsecodeProcess * p_proc, undefined2 param_2, undefined2 param_3, uint * pitemno, int param_5, int classid, enum UsecodeEvent usecode_event, undefined2 param_8, word * ucparam, uint ucparamsize) void __cdecl16far UsecodeProcess_1420_10b6(struct UsecodeProcess * p_proc) void __cdecl16far UsecodeProcess_Run(struct UsecodeProcess * p_proc) void __cdecl16far UsecodeProcess_1420_1162(struct UsecodeProcess * p_proc) void __cdecl16far UsecodeProcess_1420_118f(struct UsecodeProcess * p_proc, dword param_2) void __cdecl16far UsecodeProcess_1420_1278(struct UsecodeProcess * p_proc, dword param_2) void __cdecl16far FUN_1420_1536(undefined4 param_1) void __cdecl16far FUN_1420_1575(int * param_1) uint __cdecl16far UProcess_1420_167c(ulong param_1, int param_2, undefined4 * param_3) dword __stdcall16far UProcess_1420_19fd(ulong param_1, int param_2, int param_3) void __cdecl16far FUN_1420_1cca(ulong param_1) dword __stdcall16far FUN_1420_1d72(undefined2 param_1, undefined2 param_2, undefined2 param_3, undefined2 param_4, int param_5) void __cdecl16far UProcess_1420_1d8d(dword param_1, int param_2, int param_3) undefined2 __cdecl16far UProcess_1420_1e17(ulong param_1, undefined2 * param_2) byte __cdecl16far FUN_1420_1f24(int param_1, undefined2 param_2, int param_3, int param_4) pointer __cdecl16far UsecodeProcess_1420_20dd(struct UsecodeProcess * p_proc, uint param_2) void __cdecl16far Yamm_Init(void) char * __cdecl16far YammProbablyCreateUsecodeStr_1428_00e5(char * str) char * __cdecl16far Yamm_maybemalloc_1428_013e(uint size) void __cdecl16far Usecode_FreeVal(int param_1) void __cdecl16far Yamm_1428_0501(undefined4 param_1, int param_2) void __cdecl16far Usecode_FreeList(int * phead) byte __cdecl16far FUN_1428_0651(undefined4 param_1, undefined4 param_2) void __cdecl16far Usecode_StringList_0a9a(int * param_1, undefined2 param_2) void __cdecl16far FUN_1428_0d7a(int * param_1, uint param_2) struct Process * __cdecl16far DumbTimer_CreateProcess(struct Process * p_proc) undefined __cdecl16far DumbTimerProcess_Run(struct Process * p_proc) void __cdecl16far nullfn_1430_035e(void) void __cdecl16far CycleProcess_Resume(void) void __cdecl16far CycleProcess_Pause(void) struct CycleProcess * __stdcall16far CycleProcess_CreateProcess(struct CycleProcess * p_proc) void __cdecl16far CycleProcess_Run_nullfn(void) undefined __cdecl16far CycleProcess_Update(struct CycleProcess * proc, undefined2 param_2) void __cdecl16far SuperVGA_SetPaletteColor(dword param_1, byte r, byte g, byte b, byte param_5, byte col) byte __cdecl16far CycleProcess_CycleColorBasedOnFlags(struct CycleProcess * proc, byte * col1, byte * flags) byte __cdecl16far FUN_1438_03fb(int * param_1_00, int param_2, int param_3, int param_4, uint param_5) void __cdecl16far StdIntHandlerProcess_Clear_1438_0461(struct Process * proc) void __cdecl16far FUN_1438_0557(struct Process * param_1, uint param_2) void __cdecl16far CycleProcess_Set(struct Process * p_proc) void __cdecl16far FadeProcess_Create(struct FadeProcess * p_proc, struct Palette * pal, int nsteps, undefined param_4, undefined2 param_5, undefined2 param_6) uint __cdecl16far Fade_Intrinsic09D_FadeToBlack(undefined2 nsteps) uint __cdecl16far FadeProcess_Create_3(int param_1) Intrinsic 077 uint __cdecl16far Fade_Intrinsic07A_FadeToGamePal40Steps(void) Intrinsic 08F void __cdecl16far Fade_Intrinsic08F_SetPalToBlack(void) Intrinsic 0DA undefined __cdecl16far Palette_SetAllColorsToCol(byte r, byte g, byte b) undefined __cdecl16far Fade_1440_095d(char r, char g, char b, undefined2 nsteps) void __cdecl16far Fade_1440_0dfb(struct Palette * param_1, int param_2) void __cdecl16far Fade_StopCycleAndTerminate(struct FadeProcess * p_proc) void __cdecl16far FUN_1440_0f67(struct Process * p_proc, uint param_2) struct Process * __stdcall16far FlicWaitProcess_CreateProcess(struct Process * p_proc, undefined2 param_2, uint param_3) undefined4 __cdecl16far FUNCreateProcess_1448_012a(struct Process * p_proc, undefined param_2, undefined param_3) struct Process * __cdecl16far Flicplay_CreateFlicProcess(struct Process * p_proc, char * skf_file, undefined2 param_3, undefined2 param_4) undefined __cdecl16far FlicWaitProcess_Run(struct Process * p_proc) void __cdecl16far FUN_1450_00ec(void) void __cdecl16far Sound_ClearItemSFXData(void) int __cdecl16far Sound_FindFirstOpenItemSFXData_AmbientChannels(void) void __cdecl16far Sound_1450_01d0(void) void __cdecl16far SoundPlaySFXOnItem(uint snd, uint itemno) void __cdecl16far SoundPlayAmbientSFXOnItem(uint sndno, uint itemno) void __cdecl16far Sound_PlayAndSomething_1450_03ad(uint sndno, uint itemno) void __cdecl16far Sound_StopItemSound(int sndno, int itemno) void __cdecl16far Sound_ClearAllItemSFXForItemNo(int itemno) void __cdecl16far Sound_StopSoundForItemNo(int itemno) void __cdecl16far Sound_StopAllSFXForItemNo(int itemno) byte __cdecl16far Sound_IsItemPlayingSound(int soundno, int itemno) byte __cdecl16far Sound_1450_06c0(int sndno) void __cdecl16far FUN_1450_074b(void) void __cdecl16far Sound_StopItemSFX(long sfxno) dword __stdcall16far FUN_1460_0000(dword param_1, uint param_2, uint param_3, char param_4) struct Process * __stdcall16far VideoPlayer_CreateProcess(struct Process * p_proc, char * flicname, undefined2 param_3, undefined4 param_4, undefined2 param_5, undefined2 sizex, undefined2 sizey) undefined __cdecl16far VideoPlayer_Run(struct Process * p_proc) void __cdecl16far VideoPlayer_StreamChunks(struct Process * p_proc, char param_2) void __cdecl16far PlayFlicProbably_1468_3f77(char * fname, word sizex, word sizey, word d, word e, word f, word g) void __cdecl16far VideoPlayer_Run(char * fname, uint param_2, uint param_3, undefined2 param_4, undefined2 param_5_00, undefined2 param_6, undefined2 param_7) void __cdecl16far FlicPlay_1468_4169(char * flicname, word sizex, word sizey) void __cdecl16far MytimerProcess_Run(void) int __cdecl16far FUN_1470_05cc(undefined4 param_1, char * param_2) void __cdecl16near nullfn(void) void __cdecl16far FUN_1470_0692(word param_1) word __cdecl16far _ASS_NotifySampleChange(void) byte __cdecl16far _ASS_IsChannelBusy(word channel) void __cdecl16far _ASS_SetSFXVolume(int channel, char vol) void __cdecl16far _ASS_StopAllSFX(void) void __cdecl16far _ASS_StopSFX(word channel) void __cdecl16far _ASS_PlaySFX(dword buf, word channel, byte vol, word param_4, word param_5) word __cdecl16far _ASS_GetSoundVolume(void) void __cdecl16far _ASS_SetSoundVolume(word volume) void __cdecl16far _ASS_ResumeMusic(void) void __cdecl16far _ASS_PauseMusic(void) void __cdecl16far _ASS_StopMusic(void) void __cdecl16far _ASS_StartMusic(void) void __cdecl16far _ASS_PlayMusic(dword buf) word __cdecl16far _ASS_GetMusicVolume(void) void __cdecl16far _ASS_SetMusicVolume(word volume) word __cdecl16far _ASS_GetOversampling(void) void __cdecl16far _ASS_ClrOversampling(void) void __cdecl16far _ASS_SetOversampling(void) void __cdecl16far _ASS_RegisterCallback(dword callbackfn, byte * callbackdata) void __cdecl16far _ASS_Uninit(void) void __cdecl16far _ASS_Init(char[9] ass_init_data) int __stdcall16far BORISREALINTR(dword stack_addr) ushort __stdcall16far DOSALLOCLINMEM(ulong size, dword lin_addp) ushort __stdcall16far DOSALLOCREALSEG(ulong size, dword parap, dword selp) ushort __stdcall16far DOSCREATEDSALIAS(ushort sel, dword aselp) ushort __stdcall16far DOSFREELINMEM(ulong lin_add) ushort __stdcall16far DOSGETBIOSSEG(dword selp) ushort __stdcall16far DOSMAPLINSEG(ulong lin_addr, ulong size, dword selp) ushort __stdcall16far DOSMAPREALSEG(ushort rm_para, ulong size, dword selp) ushort __stdcall16far DOSSETPASSTOPROTVEC(ushort int_no, dword prot_new_ptr, dword prot_old_ptrp, dword real_old_ptrp) ushort __stdcall16far DOSSETPROTVEC(ushort int_no, dword prot_new_ptr, dword old_ptr_p) ushort __stdcall16far DOSSETREALPROTVEC(ushort int_no, dword prot_new_ptr, ulong real_new_ptr, dword prot_old_ptrp, dword real_old_ptrp) word __cdecl16far _DosRealFarCall(ulong funcp, word * regsp, ulong reserved, short word_count) word __cdecl16far _DosRealIntr(word int_no, word * pararegs, ulong reserved, short word_count)