DO/WHMTG/OpCodes

From Dark Omen Wiki

< DO | WHMTG(Difference between revisions)
Jump to: navigation, search
(Add explanation to some more functions)
(Fix WH_IF)
 
Line 18: Line 18:
| WH_IF
| WH_IF
| int compare_type, int val
| int compare_type, int val
-
| Does a compare against LV depending on the value of compare_type (1: LV != val, 2: LV == val, 3: LV >= val, 4: LV <= val).
+
| Does a compare against LV depending on the value of compare_type (1: LV == val, 2: LV != val, 3: LV < val, 4: LV > val).
|-
|-
| 0x41dc30
| 0x41dc30

Current revision as of 20:28, 27 April 2012


Legend for Parameters:
int - Integer
int* - Pointer to an integer
string - Pointer to a string

Op Mnemonic Parameter Explanation
0x41db60 WH_GOTO int addr Continues execution of the script at addr
0x41db80 WH_IF int compare_type, int val Does a compare against LV depending on the value of compare_type (1: LV == val, 2: LV != val, 3: LV < val, 4: LV > val).
0x41dc30 WH_ENDIF - Ends a WH_IF condition
0x41dc60 WH_ELSE - Optional Else case for a WH_IF condition
0x41dc80 WH_GOSUB int addr Same as WH_GOTO but allows returning
0x41dcd0 WH_RETURN - Jumps to the function placed after the last WH_GOSUB call
0x41de30 WH_DO int unk Not used. In theory runs up to a WH_LOOP call and then repeats or breaks.
0x41ddf0 WH_PUSHLV - Pushes LV on the stack. Placed at the beginning of a function jumped to by WH_GOSUB
0x41de10 WH_POPLV - Pops LV from the stack. Placed before a WH_RETURN call
0x41de20 WH_SETLV int lv Not used. Sets the value of LV.
0x41de60 WH_LOOP int unk Not used. Maybe jumps back to WH_DO
0x41dd00 WH_REPEAT - The used alternative of WH_DO.
0x41dd20 WH_UNTIL int compare_type, int val Jumps to WH_REPEAT if the comparison is true (see WH_IF)
0x41dec0 WH_BREAK - Not used. In theory it breaks a WH_DO and WH_REPEAT
0x41ded0 WH_END - Stub function (= does nothing). Looks like this marks the end of a Conversation (Removes the heads?)
0x41c910 WH_Test int param Not used. Reads the param and throws it away.
0x41c920 WH_PlayMovie string movie Plays the video sequence pointed to by movie.
0x41da00 WH_Narration - Stub.
0x41c970 WH_MeetingPoint string backgroundimage, int speechaddr Displays a background Image and plays a conversation script pointed to by speechaddr
0x41ca00 WH_TravelMap string map, string townspr, string dotfile, int i1..i7 Displays the mapfile map in the background, displays the town names from the townsprite file and uses the dotfile for plotting. i1 and i2 have an unknown use and i3 to i7 seam to be ignored?
0x41cb10 WH_Deploy - Stub. Used before a WH_BATTLE call.
0x41cb20 WH_Battle string battlefolder, int unk Loads the prj file that has the same name as the battlefolder and passes an unknown param.
0x41cdc0 WH_GetUnitStatus int unitId Writes 1 to LV if the regiment with the unitId has at least one alive unit.
0x41ce20 WH_GetUnitHireStatus int unitId Writes 1 to LV if the regiment with the unitId has the "Active Status"-Bit (Bit 0) set.
0x41ce80 WH_AddUnit int unidId Sets the Active-Bit of the regiment with the unitId. All these bitoperations modify the Status-Variable of the unit.
0x41ced0 WH_RemoveUnit int unitId Clears the Active-Bit of the regiment with unitId and removes all Magic Items from the regiment and adds them to the global storage.
0x41da10 WH_WriteTextToFile - Stub.
0x41da20 WH_SetUnitVar - Stub.
0x41da30 WH_ReadUnitVar - Stub.
0x41dee0 WH_SetVariable int* variable, int value Sets the pointed variable to value.
0x41df00 WH_ReadVariable int* variable, int value Reads the pointed variable into LV
0x41d620 WH_AddCash int amount Adds money to the Army
0x41d970 WH_GameOver - Ends the Campaign and returns to the Main Menu.
0x41da40 WH_DisableAutosave - Stub.
0x41df20 WH_ClearVariables int startaddr, int n Writes n zero bytes starting at startaddr.
0x41cfb0 WH_ForceUnit int unitId Sets the "Auto Deploy"-Bit (Bit 3) of the regiment with the unitId.
0x41cff0 WH_UnForceUnit int unitId Clears the "Auto Deploy"-Bit of the regiment with the unitId.
0x41d040 WH_ExcludeUnit int unitId Sets the Inactive-Bit (Bit 6) of the regiment with the unitId.
0x41d080 WH_IncludeUnit int unitId Clears the Inactive-Bit of the regiment with the unitId.
0x41d0d0 WH_TemporyUnitSet int unitId Sets the "Temporary Unit"-Bit (Bit 8) of the regiment with the unitId. (Green arrow)
0x41d120 WH_TemporyUnitClear int unitId Clears the "Temporary Unit"-Bit of the regiment with the unitId.
0x41d170 WH_UnitIsGoingSet int unitId Sets the "Temporary about to leave"-Bit of the regiment with the unitId. (Red arrow)
0x41d1c0 WH_UnitIsGoingClear int unitId Clears the "Temporary about to leave"-Bit of the regiment with the unitId.
0x41cab0 WH_Book - No idea. Displays the Unit Book?
0x41c9d0 WH_MeetingWait - Unknown. Only used once.
0x41cb40 WH_InitDebrief int winmessage, int losemessage Index in an array that contains the texts depending on if the mission was won or lost.
0x41cb70 WH_Debrief - Unknown. Only used once.
0x41cae0 WH_SaveGame - Displays the Save Dialog?
0x41cba0 WH_Picture string file Unused. Loads the file and does something...
0x41cc00 WH_Delay int delay sleep-command?
0x41cce0 WH_Pause int i Unknown. Only used once.
0x41cd90 WH_HideMouse - Unused. Hides the mouse cursor?
0x41cda0 WH_ShowMouse - Unused. Shows the mouse cursor?
0x41cbe0 WH_SetDeafultSaveName string savename Sets the savename suggested in the save dialog (The typo is not my fault).
0x41d640 WH_AddMagic int item Adds a magic item to the army.
0x41d690 WH_RemoveMagic int item Removes all occurences of item from the army. I recommend selling it before this function is called ;).
0x41d870 WHMTG_DisplayBitmap string picture, int x, int y Displays a Bitmap loaded from a file at x-y-location.
0x41d8a0 WHMTG_RemoveBitmap - Removes the Bitmap loaded by WHMTG_DisplayBitmap.
0x41d210 WH_CheckObjective int index Checks something in an objective-array at index against 1 and sets LV to 1 on success.
0x41d250 WH_SetObjective int index, int value Not used. Sets the value in the objective-array at index
0x41d550 WHMTG_Voice string file Plays a file. Used for the Necromancervoice that reads the note in the briefing at Bogenhafen.
0x41d8b0 WHMTG_SpotAnim int a, int b, int x, int y No idea. Guess this is used to place interactive objects in the background of the scene at x and y.
0x41d950 WHMTG_ChooseInit
0x41d740 WHMTG_PlaySFX
0x41d720 WHMTG_StopSFX
0x41d980 WHMTG_StopAllSFX
0x41d9a0 WHMTG_PlayMusic
0x41d9b0 WHMTG_StopMusic
0x41d9c0 WHMTG_SetMusic
0x41d9e0 WHMTG_SetBackground
0x41da50 WHMTG_StartAnimAsync - Stub.
0x41da60 WHMTG_StopAnim - Stub.
0x41da70 WHMTG_PlayAnim - Stub.
0x41da80 WHMTG_LoadHeads - Stub.
0x41da90 WHMTG_ShowHead - Stub.
0x41d2a0 WHMTG_Speak
0x41d360 WHMTG_SpeakNoWait
0x41d420 WHMTG_Narrate
0x41daa0 WHMTG_AddOption - Stub.
0x41dab0 WHMTG_ChooseOption - Stub.
0x41dac0 WHMTG_HideHead - Stub.
0x41d410 WHMTG_Wait
0x41d9f0 WHMTG_PlaySample - Stub.
0x41dad0 WHMTG_PlaySampleNoWait - Stub.
0x41dae0 WHMTG_LoadDots - Stub.
0x41db10 WHMTG_PlayDots - Stub.
0x41db20 WHMTG_WaitForDots - Stub.
0x41db30 WHMTG_FinishDots - Stub.
0x41db40 WHMTG_ContinuePrompt - Stub.
0x41daf0 WHMTG_SetResult - Stub.
0x41d280 WHMTG_AddBitmap
0x41db00 WHMTG_RemoveBitmap - Please use the other WHMTG_RemoveBitmap. This is a stub.
0x41db50 WHMTG_ResetDotList - Stub.
Personal tools
communication