Search Results
7/23/2025, 1:34:18 PM
>>11889930
hum hum.. seems like specials are translated to Hexen format by p_xlat.cpp, which is why ./src/playsim/actionspecials.h doesn't correspond to Doom. for example, W1 Door is 4 in Doom, but linedef 4 is defined in actionspecials.h as
>DEFINE_SPECIAL(Polyobj_Move, 4, 4, 4, 4)
the magic seems to be in the generated file build/src/xlat_parser.c. it seems excessively complicated for the task of just translating a bunch of integers to a bunch of structs. the goods are in ./wadsrc/static/xlat/base.txt (all monster-compatible linedefs):
1 = USE|MONST|REP, Door_Raise (0, D_SLOW, VDOORWAIT, tag)
4 = WALK|MONST, Door_Raise (tag, D_SLOW, VDOORWAIT)
10 = WALK|MONST, Plat_DownWaitUpStayLip (tag, P_FAST, PLATWAIT, 0)
32 = USE|MONST, Door_LockedRaise (0, D_SLOW, 0, BCard | CardIsSkull, tag)
33 = USE|MONST, Door_LockedRaise (0, D_SLOW, 0, RCard | CardIsSkull, tag)
34 = USE|MONST, Door_LockedRaise (0, D_SLOW, 0, YCard | CardIsSkull, tag)
39 = WALK|MONST, Teleport (0, tag)
46 = SHOOT|REP|MONST, Door_Open (tag, D_SLOW)
88 = WALK|REP|MONST, Plat_DownWaitUpStayLip (tag, P_FAST, PLATWAIT, 0)
97 = WALK|REP|MONST, Teleport (0, tag)
^ these are all vanilla compatible, I think. the rest are introduced in Boom, MBF, ZDoom etc:
174 = USE|MONST, Teleport (0, tag)
195 = USE|REP|MONST, Teleport (0, tag)
207 = WALK|MONST, Teleport_NoFog (0, 2, tag, 1)
208 = WALK|REP|MONST, Teleport_NoFog (0, 2, tag, 1)
209 = USE|MONST, Teleport_NoFog (0, 2, tag, 1)
210 = USE|REP|MONST, Teleport_NoFog (0, 2, tag, 1)
243 = WALK|MONST, Teleport_Line (tag, tag, 0)
244 = WALK|REP|MONST, Teleport_Line (tag, tag, 0)
262 = WALK|MONST, Teleport_Line (tag, tag, 1)
263 = WALK|REP|MONST, Teleport_Line (tag, tag, 1)
hum hum.. seems like specials are translated to Hexen format by p_xlat.cpp, which is why ./src/playsim/actionspecials.h doesn't correspond to Doom. for example, W1 Door is 4 in Doom, but linedef 4 is defined in actionspecials.h as
>DEFINE_SPECIAL(Polyobj_Move, 4, 4, 4, 4)
the magic seems to be in the generated file build/src/xlat_parser.c. it seems excessively complicated for the task of just translating a bunch of integers to a bunch of structs. the goods are in ./wadsrc/static/xlat/base.txt (all monster-compatible linedefs):
1 = USE|MONST|REP, Door_Raise (0, D_SLOW, VDOORWAIT, tag)
4 = WALK|MONST, Door_Raise (tag, D_SLOW, VDOORWAIT)
10 = WALK|MONST, Plat_DownWaitUpStayLip (tag, P_FAST, PLATWAIT, 0)
32 = USE|MONST, Door_LockedRaise (0, D_SLOW, 0, BCard | CardIsSkull, tag)
33 = USE|MONST, Door_LockedRaise (0, D_SLOW, 0, RCard | CardIsSkull, tag)
34 = USE|MONST, Door_LockedRaise (0, D_SLOW, 0, YCard | CardIsSkull, tag)
39 = WALK|MONST, Teleport (0, tag)
46 = SHOOT|REP|MONST, Door_Open (tag, D_SLOW)
88 = WALK|REP|MONST, Plat_DownWaitUpStayLip (tag, P_FAST, PLATWAIT, 0)
97 = WALK|REP|MONST, Teleport (0, tag)
^ these are all vanilla compatible, I think. the rest are introduced in Boom, MBF, ZDoom etc:
174 = USE|MONST, Teleport (0, tag)
195 = USE|REP|MONST, Teleport (0, tag)
207 = WALK|MONST, Teleport_NoFog (0, 2, tag, 1)
208 = WALK|REP|MONST, Teleport_NoFog (0, 2, tag, 1)
209 = USE|MONST, Teleport_NoFog (0, 2, tag, 1)
210 = USE|REP|MONST, Teleport_NoFog (0, 2, tag, 1)
243 = WALK|MONST, Teleport_Line (tag, tag, 0)
244 = WALK|REP|MONST, Teleport_Line (tag, tag, 0)
262 = WALK|MONST, Teleport_Line (tag, tag, 1)
263 = WALK|REP|MONST, Teleport_Line (tag, tag, 1)
Page 1