DO/WHMTG

From Dark Omen Wiki

< DO(Difference between revisions)
Jump to: navigation, search
(Added dump of whmtg-script. Writing the dumper took 4hours...)
(Remove stub functions)
 
(3 intermediate revisions not shown)
Line 8: Line 8:
</div>
</div>
</div>
</div>
-
 
-
== Structure ==
 
WHMTG (Warhammer Meeting) is the script language used to script the activities like meetings between the battles.
WHMTG (Warhammer Meeting) is the script language used to script the activities like meetings between the battles.
The developers were so kind to include a complete WHMTG-Function-Name-Table in EngRel. This made decoding the functions a piece of cake.
The developers were so kind to include a complete WHMTG-Function-Name-Table in EngRel. This made decoding the functions a piece of cake.
-
 
-
More information and a complete dump of the WHMTG-Script follow during the day. Stay tuned :)
 
[http://darkomen.pastebin.com/9mf0NfwD Dump of the whole WHMTG-Script]
[http://darkomen.pastebin.com/9mf0NfwD Dump of the whole WHMTG-Script]
 +
 +
== Analysis ==
 +
 +
Initiator  vs. Terminator | (Nested)
 +
--------------------------+----------------
 +
WH_IF    <--> WH_ENDIF  | (WH_ELSE)
 +
WH_GOSUB  <--> WH_RETURN  |
 +
WH_REPEAT <--> WH_UNTIL  |
 +
WH_DO    <--> WH_LOOP    | (WH_BREAK)
 +
 +
 +
== Adress Dump of Functions ==
 +
 +
<pre>
 +
41DB60 GOTO
 +
41DB80 IF
 +
41DC30 ENDIF
 +
41DC60 ELSE
 +
41DC80 GOSUB
 +
41DCD0 RETURN
 +
41DE30 DO
 +
41DDF0 PUSHLV
 +
41DE10 POPLV
 +
41DE20 SETLV
 +
41DE60 LOOP
 +
41DD00 REPEAT
 +
41DD20 UNTIL
 +
41DEC0 BREAK
 +
41DED0 END
 +
41C910 Test <-- Reads one argument and ignores it
 +
41C920 PlayMovie
 +
41C970 MeetingPoint
 +
41CA00 TravelMap
 +
41CB10 Deploy
 +
41CB20 Battle
 +
41CDC0 GetUnitStatus
 +
41CE20 GetUnitHireStatus
 +
41CE80 AddUnit
 +
41CED0 RemoveUnit
 +
41DEE0 SetVariable
 +
41DF00 ReadVariable
 +
41D620 AddCash
 +
41D970 GameOver
 +
41DF20 ClearVariables
 +
41CFB0 ForceUnit
 +
41CFF0 UnForceUnit
 +
41D040 ExcludeUnit
 +
41D080 IncludeUnit
 +
41D0D0 TemporayUnitSet
 +
41D120 TemporayUnitClear
 +
41D170 UnitIsGoingSet
 +
41D1C0 UnitIsGoingClear
 +
41CAB0 Book
 +
41C9D0 MeetingWait
 +
41CB40 InitDebrief
 +
41CB70 Debrief
 +
41CAE0 SaveGame
 +
41CBA0 Picture
 +
41CC00 Delay
 +
41CCE0 Pause
 +
41CD90 HideMouse
 +
41CDA0 ShowMouse
 +
41CBE0 SetDefaultSaveName
 +
41D640 AddMagic
 +
41D690 RemoveMagic
 +
41D870 DisplayBitmap
 +
41D8A0 RemoveBitmap
 +
41D210 CheckObjective
 +
41D250 SetObjective
 +
41D550 Voice
 +
41D8B0 SpotAnim
 +
41D950 ChooseInit
 +
41D740 PlaySFX
 +
41D720 StopSFX
 +
41D980 StopAllSFX
 +
41D9A0 PlayMusic
 +
41D9B0 StopMusic
 +
41D9C0 SetMusic
 +
41D9E0 SetBackground
 +
41D2A0 Speak
 +
41D360 SpeakNoWait
 +
41D420 Narrate
 +
41D410 Wait
 +
</pre>

Current revision as of 11:26, 10 April 2012


Contents


WHMTG (Warhammer Meeting) is the script language used to script the activities like meetings between the battles.

The developers were so kind to include a complete WHMTG-Function-Name-Table in EngRel. This made decoding the functions a piece of cake.

Dump of the whole WHMTG-Script

Analysis

Initiator  vs. Terminator | (Nested)
--------------------------+----------------
WH_IF     <--> WH_ENDIF   | (WH_ELSE)
WH_GOSUB  <--> WH_RETURN  |
WH_REPEAT <--> WH_UNTIL   |
WH_DO     <--> WH_LOOP    | (WH_BREAK)


Adress Dump of Functions

41DB60 GOTO
41DB80 IF
41DC30 ENDIF
41DC60 ELSE
41DC80 GOSUB
41DCD0 RETURN
41DE30 DO
41DDF0 PUSHLV
41DE10 POPLV
41DE20 SETLV
41DE60 LOOP
41DD00 REPEAT
41DD20 UNTIL
41DEC0 BREAK
41DED0 END
41C910 Test <-- Reads one argument and ignores it
41C920 PlayMovie
41C970 MeetingPoint
41CA00 TravelMap
41CB10 Deploy
41CB20 Battle
41CDC0 GetUnitStatus
41CE20 GetUnitHireStatus
41CE80 AddUnit
41CED0 RemoveUnit
41DEE0 SetVariable
41DF00 ReadVariable
41D620 AddCash
41D970 GameOver
41DF20 ClearVariables
41CFB0 ForceUnit
41CFF0 UnForceUnit
41D040 ExcludeUnit
41D080 IncludeUnit
41D0D0 TemporayUnitSet
41D120 TemporayUnitClear
41D170 UnitIsGoingSet
41D1C0 UnitIsGoingClear
41CAB0 Book
41C9D0 MeetingWait
41CB40 InitDebrief
41CB70 Debrief
41CAE0 SaveGame
41CBA0 Picture
41CC00 Delay
41CCE0 Pause
41CD90 HideMouse
41CDA0 ShowMouse
41CBE0 SetDefaultSaveName
41D640 AddMagic
41D690 RemoveMagic
41D870 DisplayBitmap
41D8A0 RemoveBitmap
41D210 CheckObjective
41D250 SetObjective
41D550 Voice
41D8B0 SpotAnim
41D950 ChooseInit
41D740 PlaySFX
41D720 StopSFX
41D980 StopAllSFX
41D9A0 PlayMusic
41D9B0 StopMusic
41D9C0 SetMusic
41D9E0 SetBackground
41D2A0 Speak
41D360 SpeakNoWait
41D420 Narrate
41D410 Wait
Personal tools
communication