Crusader_Decomp/USECODE/EUSECODE_extracted/readable_descriptor_templates.md
MaddoScientisto de42fd1ea1 Add Crusader-specific USECODE data and documentation
- Introduced new file `vm_mask_ladder.tsv` containing detailed mappings for Crusader USECODE VM masks and their associated descriptors.
- Added comprehensive documentation in `scummvm-crusader-reference.md` outlining the structure, findings, and implications for reverse-engineering the Crusader engine within ScummVM.
- Created `usecode-roundtrip-ir.md` to document the plan for converting Crusader USECODE bytes into a human-readable format, detailing the container layout, event names, and intrinsic tables.
- Implemented a PowerShell script `temp_usecode_sample.ps1` for extracting and analyzing USECODE data from the Crusader FLX files, providing insights into class and event structures.
2026-03-22 17:26:39 +01:00

8.7 KiB

EUSECODE Readable Descriptor Templates

These are conservative descriptor-side pseudo-script sketches. They reflect verified field grammar and local table neighborhoods, not a direct opcode dump.

JELYHACK anchor lane

277: JELYHACK

anchor JELYHACK(referent)
callback SURCAMNS(referent,textFile,monit,valueBox,passcode,link,code,screen,cameraEgg,trueRef,therma,eventTrigger,foundGun)  # offset -8, family=callback-eventtrigger
near BASEGUN(referent,item)  # offset -7
near TIMER(referent,time,phase2)  # offset -6
near SPECIAL(referent,phase,counter,time,phase1,phase2,mapNum,npcNum)  # offset -5
near TRIGPAD(referent,item,elev)  # offset -4
near MONSTER(referent,monster1,door,newNpc)  # offset -3
near ELITE(referent)  # offset -2
near D_ESTORM(referent,goods)  # offset -1
near DATALINK(mva1,mva3a,mva4,mva5a,mva6,mva7,mva8,mva9,mva10,mva11a,mva12a,mva13,mva14,mva15a,mva15c,referent,textFile)  # offset +1
near SLIDEFLR(referent)  # offset +2
near JELYH2(referent)  # offset +3
near HOFFMAN(referent,hoffy,deathBox,deadGuy,item)  # offset +4
near D_HOFFMA(referent)  # offset +5
attach REE_BOOT(referent,event,counter,item)  # offset +6, family=boot-event-core
callback SURCAMEW(referent,textFile,monit,valueBox,passcode,link,code,screen,cameraEgg,trueRef,therma,eventTrigger,foundGun)  # offset +7, family=callback-eventtrigger
attach SFXTRIG(referent,event)  # offset +8, family=minimal-event-core

280: JELYH2

anchor JELYH2(referent)
near SPECIAL(referent,phase,counter,time,phase1,phase2,mapNum,npcNum)  # offset -8
near TRIGPAD(referent,item,elev)  # offset -7
near MONSTER(referent,monster1,door,newNpc)  # offset -6
near ELITE(referent)  # offset -5
near D_ESTORM(referent,goods)  # offset -4
near JELYHACK(referent)  # offset -3
near DATALINK(mva1,mva3a,mva4,mva5a,mva6,mva7,mva8,mva9,mva10,mva11a,mva12a,mva13,mva14,mva15a,mva15c,referent,textFile)  # offset -2
near SLIDEFLR(referent)  # offset -1
near HOFFMAN(referent,hoffy,deathBox,deadGuy,item)  # offset +1
near D_HOFFMA(referent)  # offset +2
attach REE_BOOT(referent,event,counter,item)  # offset +3, family=boot-event-core
callback SURCAMEW(referent,textFile,monit,valueBox,passcode,link,code,screen,cameraEgg,trueRef,therma,eventTrigger,foundGun)  # offset +4, family=callback-eventtrigger
attach SFXTRIG(referent,event)  # offset +5, family=minimal-event-core
near SKILLBOX(referent,skill)  # offset +6
near D_GURDSQ(referent,goods)  # offset +7
near VETRON(referent)  # offset +8

EVENT hub lane

189: COR_BOOT

attach COR_BOOT(referent,event,counter,item)
near GRENADE(referent)  # offset -5
near SCIENTIS(referent)  # offset -4
near ROLL_NS(referent,item,item2,riderList,time,total,counter,oldz,cargo,zCheck,zMax,ma0Q6)  # offset -3
near REB_COUP(referent,counter)  # offset -2
near MEDIKIT(referent,item)  # offset -1
attach EVENT(mva3b,referent,event,item,source,dest,door,counter,counter2,link,time,post1,post2,floor,flicMan)  # offset +1, family=event-hub
attach NPCTRIG(referent,event,item,item2,typeNpc)  # offset +2, family=npc-trigger
near K(referent,item)  # offset +3
near CRUZTRIG(referent,item,elev)  # offset +4
near NPC_ONLY(referent,item,link)  # offset +5

190: EVENT

hub EVENT(mva3b,referent,event,item,source,dest,door,counter,counter2,link,time,post1,post2,floor,flicMan)
near SCIENTIS(referent)  # offset -5
near ROLL_NS(referent,item,item2,riderList,time,total,counter,oldz,cargo,zCheck,zMax,ma0Q6)  # offset -4
near REB_COUP(referent,counter)  # offset -3
near MEDIKIT(referent,item)  # offset -2
attach COR_BOOT(referent,event,counter,item)  # offset -1, family=boot-event-core
attach NPCTRIG(referent,event,item,item2,typeNpc)  # offset +1, family=npc-trigger
near K(referent,item)  # offset +2
near CRUZTRIG(referent,item,elev)  # offset +3
near NPC_ONLY(referent,item,link)  # offset +4
near VMAIL(referent,textFile)  # offset +5

191: NPCTRIG

attach NPCTRIG(referent,event,item,item2,typeNpc)
near ROLL_NS(referent,item,item2,riderList,time,total,counter,oldz,cargo,zCheck,zMax,ma0Q6)  # offset -5
near REB_COUP(referent,counter)  # offset -4
near MEDIKIT(referent,item)  # offset -3
attach COR_BOOT(referent,event,counter,item)  # offset -2, family=boot-event-core
attach EVENT(mva3b,referent,event,item,source,dest,door,counter,counter2,link,time,post1,post2,floor,flicMan)  # offset -1, family=event-hub
near K(referent,item)  # offset +1
near CRUZTRIG(referent,item,elev)  # offset +2
near NPC_ONLY(referent,item,link)  # offset +3
near VMAIL(referent,textFile)  # offset +4
near STORMTRO(referent)  # offset +5

Environmental event lane

229: FLAMEBOX

attach FLAMEBOX(referent,event,flame,flame2,direction,count,newType)
near WVENTNS(referent,fram,windsurf)  # offset -5
near WVENTEW(referent,fram,windsurf)  # offset -4
near REBEL_TV(referent)  # offset -3
near SDOOR_N(referent)  # offset -2
near SDOOR_E(referent)  # offset -1
near EBRIDGE2(referent)  # offset +1
near MCRATE(ma0Q0,referent,item)  # offset +2
near COPY_EW(referent,fram,coolfram)  # offset +3
near COPY_NS(referent,fram,coolfram)  # offset +4
near chunk_234(referent,fram)  # offset +5

237: NOSTRIL

attach NOSTRIL(referent,event,fire,count,fire2)
near COPY_EW(referent,fram,coolfram)  # offset -5
near COPY_NS(referent,fram,coolfram)  # offset -4
near chunk_234(referent,fram)  # offset -3
near FLAME1(referent)  # offset -2
near REB_PAD(referent,item,pad2,mapNum,eggNum,phold,gunHold,counter,counter2)  # offset -1
near VARDESK(referent,item,counter)  # offset +1
near BLASER1(referent,laserList,item,inFastArea,count,link)  # offset +2
near REB_BOOT(referent,counter)  # offset +3
near UPPLATE(referent,item)  # offset +4
near KEYPADNS(referent,alreadyPassed)  # offset +5

296: STEAMBOX

attach STEAMBOX(referent,event,steam,steam2,direction,count)
near BOUNCBOX(referent,item,item2,ammo)  # offset -5
near HOVER1(referent)  # offset -4
near STEAM1(referent)  # offset -3
near FADE(referent,loop,loop2)  # offset -2
near PHIR(referent)  # offset -1
near FLAME2(referent)  # offset +1
near STEAM2(referent)  # offset +2
near FLAMELP(referent)  # offset +3
near BBOX(ma0Q0,referent)  # offset +4
near GBOX_NS(ma0Q0,referent)  # offset +5

Callback trigger lane

269: SURCAMNS

callback SURCAMNS(referent,textFile,monit,valueBox,passcode,link,code,screen,cameraEgg,trueRef,therma,eventTrigger,foundGun)
near D_SOLD(referent,goods)  # offset -5
near D_VARG(referent)  # offset -4
near D_COUR(referent,goods)  # offset -3
near D_SUSAN(referent,goods)  # offset -2
near D_THERM(referent)  # offset -1
near BASEGUN(referent,item)  # offset +1
near TIMER(referent,time,phase2)  # offset +2
near SPECIAL(referent,phase,counter,time,phase1,phase2,mapNum,npcNum)  # offset +3
near TRIGPAD(referent,item,elev)  # offset +4
near MONSTER(referent,monster1,door,newNpc)  # offset +5

284: SURCAMEW

callback SURCAMEW(referent,textFile,monit,valueBox,passcode,link,code,screen,cameraEgg,trueRef,therma,eventTrigger,foundGun)
near SLIDEFLR(referent)  # offset -5
near JELYH2(referent)  # offset -4
near HOFFMAN(referent,hoffy,deathBox,deadGuy,item)  # offset -3
near D_HOFFMA(referent)  # offset -2
attach REE_BOOT(referent,event,counter,item)  # offset -1, family=boot-event-core
attach SFXTRIG(referent,event)  # offset +1, family=minimal-event-core
near SKILLBOX(referent,skill)  # offset +2
near D_GURDSQ(referent,goods)  # offset +3
near VETRON(referent)  # offset +4
near DEATHBOX(referent,sswitch,counter)  # offset +5

Family Signatures

Family Label Signature
boot-event-core AND_BOOT attach AND_BOOT(referent,event,counter,item)
boot-event-core BRO_BOOT attach BRO_BOOT(referent,event,counter,item)
boot-event-core COR_BOOT attach COR_BOOT(referent,event,counter,item)
boot-event-core VAR_BOOT attach VAR_BOOT(referent,event,counter,item)
boot-event-core REE_BOOT attach REE_BOOT(referent,event,counter,item)
callback-eventtrigger SURCAMNS callback SURCAMNS(referent,textFile,monit,valueBox,passcode,link,code,screen,cameraEgg,trueRef,therma,eventTrigger,foundGun)
callback-eventtrigger SURCAMEW callback SURCAMEW(referent,textFile,monit,valueBox,passcode,link,code,screen,cameraEgg,trueRef,therma,eventTrigger,foundGun)
environmental-event FLAMEBOX attach FLAMEBOX(referent,event,flame,flame2,direction,count,newType)
environmental-event NOSTRIL attach NOSTRIL(referent,event,fire,count,fire2)
environmental-event STEAMBOX attach STEAMBOX(referent,event,steam,steam2,direction,count)
event-hub EVENT hub EVENT(mva3b,referent,event,item,source,dest,door,counter,counter2,link,time,post1,post2,floor,flicMan)
minimal-event-core SFXTRIG attach SFXTRIG(referent,event)
npc-trigger NPCTRIG attach NPCTRIG(referent,event,item,item2,typeNpc)