Skip to content

Script bindings: HUD and menus

Verified against: SLUS_212.15 (NTSC-U, SHA1 e9cb2cc49aa046b9e494313dce2f5038ed17b2f4).

Bindings for the in-game HUD, radar, objectives, messages and front-end menus: 78 in all. Conventions, the other categories and how to read an entry are on the masterlist.

Binding Returns Scripts Boot Mission 1 Evidence
CNSEnableMissionInfo - 34 no no confirmed (code)
FlashRageBar - 1 no yes confirmed (code)
ForceShowPlayerHud - 43 yes yes confirmed (code)
GetDefaultFont - 1 no no inferred
GetScreenDimensions - 1 no no confirmed (code)
HideHud - 56 yes yes confirmed (code)
HidePlayerHud - 44 no no confirmed (code)
HUDAddRadarHuman - 9 no yes confirmed (code)
HUDAddRadarMissionObjective - 66 yes yes confirmed (code)
HUDAddRadarObject number 0 no no confirmed (code)
HUDAddSecondaryRadarMissionObjective - 6 no yes confirmed (code)
HUDANEnableChkIndicator - 0 no no confirmed (code)
HUDANEnableJoinMsg - 10 no no confirmed (code)
HUDANGetCredit number 5 no no confirmed (code)
HUDANLaunchEndScreen - 1 no no confirmed (code)
HUDANSetCredit - 7 yes no confirmed (code)
HUDANSetGOSignMode - 19 no no confirmed (code)
HUDCenterComponents - 1 no no confirmed (code)
HUDChangeRadarMissionObjective - 0 no no confirmed (code)
HUDCheckTutorialText boolean 2 no no confirmed (code)
HUDDeleteRadarItem - 0 no no inferred
HUDDeleteRadarMissionObjective - 63 yes yes confirmed (code)
HUDDeleteRadarObject - 16 no yes confirmed (code)
HUDEnableBar - 28 no no confirmed (code)
HUDEnableClubActionText - 4 yes no confirmed (code)
HUDEnableFixedCamIcon - 5 no no confirmed (code)
HUDEnableGameTutorialText - 36 no yes confirmed (code)
HUDEnableGenBar - 1 no no confirmed (code)
HUDEnableInstArrow - 1 no yes confirmed (code)
HUDEnableTextProgress - 4 no no confirmed (code)
HUDFlushTutorialText - 13 yes yes confirmed (code)
HUDGetNewPH number 20 yes yes confirmed (code)
HUDLaunchANGameOver - 5 no no confirmed (code)
HUDLaunchMissionComplete - 10 yes yes confirmed (code)
HUDLaunchMissionFailed - 24 no no confirmed (code)
HUDLaunchRumbleWin - 33 no no confirmed (code)
HUDRadarSetRange - 1 no no confirmed (code)
HUDReleasePH - 16 yes yes confirmed (code)
HUDRemoveAllGoalText - 7 no yes confirmed (code)
HUDSetANBossTexture - 15 no no confirmed (code)
HUDSetAnnounceMsg - 17 yes yes confirmed (code)
HUDSetBarPercentage - 28 no no confirmed (code)
HUDSetBarProperty - 21 no no confirmed (code)
HUDSetChaseHUDState_CREATE - 0 no no confirmed (code)
HUDSetChaseHUDState_DESTROY - 2 no no confirmed (code)
HUDSetChaseHUDState_NORMAL - 0 no no confirmed (code)
HUDSetChaseHUDState_TIMEOUT - 0 no no confirmed (code)
HUDSetInstArrowAnimSpeed - 0 no no confirmed (code)
HUDSetInstArrowColor - 0 no no confirmed (code)
HUDSetInstArrowLocation - 0 no no confirmed (code)
HUDSetMissionFailedCallbacks - 6 no no confirmed (code)
HUDSetNumIndicator - 3 no no confirmed (code)
HUDSetObjective - 149 yes yes confirmed (code)
HUDSetPHLabelFlashing - 0 no no inferred
HUDSetPHValue - 53 yes yes confirmed (code)
HUDSetRadarItemTexture - 70 yes yes confirmed (code)
HUDSetRadarObjectFlash - 9 no yes confirmed (code)
HUDSetRadarZoomScale - 6 no no confirmed (code)
HUDSetTextProgress - 4 no no confirmed (code)
HUDSetTutorialCallback - 2 no yes confirmed (code)
HUDSetTutorialText - 53 yes yes confirmed (code)
HUDShowMissionSelect - 2 no no confirmed (code)
HUDShowMissionSummaryText - 3 yes yes confirmed (code)
HUDShowWarCommand - 9 no no confirmed (code)
HUDTurnOffActionCycleAnim - 8 no no confirmed (code)
HUDTurnOffRadar - 67 no yes confirmed (code)
HUDTurnOnActionCycleAnim - 7 no no confirmed (code)
HUDTurnOnRadar - 52 no yes confirmed (code)
PreloadCredits - 2 no no confirmed (code)
RestoreHud - 82 no yes confirmed (code)
ShowCredits - 1 no no confirmed (code)
ShowGameStatsInterface - 2 no no confirmed (code)
ShowHud - 5 no yes confirmed (code)
ShowOptionMenu - 0 no no confirmed (code)
ShowPlayerHud - 3 no no confirmed (code)
ShowProfileManager - 2 yes no confirmed (code)
ShowRumbleModeInterface - 37 yes no confirmed (code)
ShowRumbleModeIntro - 33 no no confirmed (code)

CNSEnableMissionInfo

CNSEnableMissionInfo(on)
# Argument Read as Meaning
1 on boolean (nil or 0 is false) true stores 1, false (or nil) stores 0.

Returns nothing.

Sets the global word 0x005109ac to 1 or 0. Nothing in the executable reads it, so the call has no visible effect; level95 turns it on and level101 off.

Notes. The only reference to 0x005109ac is this store (no other load in the program), so whatever CNS mission info was meant to show is not built.

  • Evidence: confirmed (code) at 0x0023b128; detail: traced
  • Wrapper 0x0037d3f0 (registered by RegisterBindings); calls 0x0023b128 CNS_SetMissionInfoEnabled
  • Used by 34 of 467 script chunks (35 references); boot to menu: no; mission 1: no; result used: no
  • Later in the story: 1 of 28 levels, first level95 (the hub)
  • Coney: implemented

FlashRageBar

FlashRageBar(player, n)
# Argument Read as Meaning
1 player number, truncated to an unsigned integer Player HUD index (0 or 1).
2 n number, truncated to an unsigned integer Blink length in frames (player HUD +0x4114): the meter is drawn n frames and hidden n frames; 0 stops the blinking. The tutorial passes 5.

Returns nothing.

Makes a player's rage meter blink to draw attention to it (used by the first mission's rage tutorial).

Notes. The counter is +0x4118 (0x00213290). Behaviour: The in-game HUD.

  • Evidence: confirmed (code) at 0x001b3f58; detail: traced
  • Wrapper 0x00370d20 (registered by RegisterBindings); calls 0x001b3f58 HUD_FlashRageBar
  • Used by 1 of 467 script chunks (2 references); boot to menu: no; mission 1: yes; result used: no
  • Coney: implemented

ForceShowPlayerHud

ForceShowPlayerHud(player, on)
# Argument Read as Meaning
1 player number, truncated to an unsigned integer Player HUD index, 0 or 1.
2 on boolean (nil or 0 is false) true keeps that player's panel (name banner, rage meter, score, money) on screen, false lets it fade out when idle again.

Returns nothing.

Forces one player's panel to stay visible (sets player HUD +0x4104). global.lua turns it on for fights and off afterwards.

Notes. While the flag is set the panel's render restarts its 2 s show and 1 s fade every frame (0x00213290). Behaviour: The in-game HUD.

  • Evidence: confirmed (code) at 0x001b3f30; detail: traced
  • Wrapper 0x0036ebe0 (registered by RegisterBindings); calls 0x001b3f30 HUD_ForceShowPlayer
  • Used by 43 of 467 script chunks (131 references); boot to menu: yes; mission 1: yes; result used: no
  • Later in the story: 17 of 28 levels, first level95 (the hub)
  • Coney: implemented

GetDefaultFont

GetDefaultFont(scale, info)
# Argument Read as Meaning
1 scale number (single precision) A number; read but the callee shown takes only the table (inferred to be ignored).
2 info table of 5 numbers (t[1]..t[5]) A table of five numbers overwritten with the default font's metrics; the fifth is always 3.0.

Returns nothing.

Fills a table with the default font's metrics. Only the unused level100main.lua calls it.

  • Evidence: inferred; detail: brief
  • Wrapper 0x0036e720 (registered by RegisterBindings); calls 0x001798f8 Font_GetDefault
  • Used by 1 of 467 script chunks (1 reference); boot to menu: no; mission 1: no; result used: no
  • Coney: not implemented

GetScreenDimensions

GetScreenDimensions(size)
# Argument Read as Meaning
1 size table of 2 numbers (t[1]..t[2]) A table {w, h} that is overwritten with the display's width and height (from the device object at 0x0050cdb4).

Returns nothing.

Writes the screen's width and height into the table it is given. Only the unused Lua menu level100main.lua calls it.

  • Evidence: confirmed (code) at 0x0017a4f8; detail: brief
  • Wrapper 0x00368320 (registered by RegisterBindings); calls 0x0017a4f8 Device_GetScreenSize
  • Used by 1 of 467 script chunks (2 references); boot to menu: no; mission 1: no; result used: no
  • Coney: not implemented

HideHud

HideHud()

No arguments.

Returns nothing.

Hides the whole HUD (player panels, radars, goal text, counters and bars), unless the game state forbids it; RestoreHud shows it again.

Notes. Skipped when 0x0041d110 is true and W_GameState + 0x14c is 1; clears the HUD manager's visible flag +0x177a0. Behaviour: The in-game HUD.

  • Evidence: confirmed (code) at 0x001b3ed0; detail: traced
  • Wrapper 0x00370ca0 (registered by RegisterBindings); calls 0x001b3ed0 HUD_HideAll
  • Used by 56 of 467 script chunks (97 references); boot to menu: yes; mission 1: yes; result used: no
  • Later in the story: 28 of 28 levels, first level80 (mission 2)
  • Coney: implemented

HidePlayerHud

HidePlayerHud()

No arguments.

Returns nothing.

Hides both players' status panels (name banner, rage meter, score, money and item counters) and keeps them hidden: each panel's may show flag (+0x4108) is cleared, so activity no longer brings it back, until ShowPlayerHud. The radar, objective texts and prompts are not affected.

Notes. Panel calls 0x0020dfe0(panel, 0) then 0x0020dfe8 (hide), for the panels at HUD +0x08 and +0x0c (HUD: showing and hiding). HideHud hides more (radars, score board).

  • Evidence: confirmed (code) at 0x001b3ef0, 0x001b2030; detail: traced
  • Wrapper 0x00370ce0 (registered by RegisterBindings); calls 0x001b3ef0 HUD_HidePlayerPanels, 0x001b2030
  • Used by 44 of 467 script chunks (50 references); boot to menu: no; mission 1: no; result used: no
  • Later in the story: 4 of 28 levels, first level95 (the hub)
  • Coney: implemented

HUDAddRadarHuman

HUDAddRadarHuman(human)
# Argument Read as Meaning
1 human number, truncated to an unsigned integer Handle of the human to show on the radar.

Returns nothing.

Adds a radar blip for a human whose look depends on the human's radar class (from its character data): a team mate, an enemy, a neutral (grey) or a special marker shown to both players.

  • Evidence: confirmed (code) at 0x001b4168; detail: traced
  • Wrapper 0x00370a68 (registered by RegisterBindings); calls 0x001b4168 HUD_RadarAddHuman
  • Used by 9 of 467 script chunks (25 references); boot to menu: no; mission 1: yes; result used: no
  • Later in the story: 4 of 28 levels, first level80 (mission 2)
  • Coney: implemented

HUDAddRadarMissionObjective

HUDAddRadarMissionObjective(object)
# Argument Read as Meaning
1 object number, truncated to an unsigned integer Handle of the human, object or flag to mark.

Returns nothing.

Adds a mission-objective blip for an object to both radars (blip type 10). Pair with HUDSetRadarItemTexture to choose its icon.

  • Evidence: confirmed (code) at 0x001b3f98; detail: traced
  • Wrapper 0x00370760 (registered by RegisterBindings); calls 0x001b3f98 HUD_RadarAddObjective
  • Used by 66 of 467 script chunks (129 references); boot to menu: yes; mission 1: yes; result used: no
  • Later in the story: 22 of 28 levels, first level80 (mission 2)
  • Coney: implemented

HUDAddRadarObject

HUDAddRadarObject(object, colour) -> number
# Argument Read as Meaning
1 object number, truncated to an unsigned integer Handle of the object.
2 colour table of 3 numbers (t[1]..t[3]) Table {r, g, b}, each 0-255.

Returns number: A number from the radar (the blip, inferred).

Adds a coloured blip for an object to both radars. No script calls it.

  • Evidence: confirmed (code) at 0x001b40f8; detail: brief
  • Wrapper 0x00370aa0 (registered by RegisterBindings); calls 0x001b40f8
  • Used by no script on the disc
  • Coney: not implemented

HUDAddSecondaryRadarMissionObjective

HUDAddSecondaryRadarMissionObjective(object)
# Argument Read as Meaning
1 object number, truncated to an unsigned integer Handle of the human or object to mark.

Returns nothing.

Adds a secondary-objective blip (blip type 1) for an object to both radars.

  • Evidence: confirmed (code) at 0x001b3fc0; detail: traced
  • Wrapper 0x00370798 (registered by RegisterBindings); calls 0x001b3fc0
  • Used by 6 of 467 script chunks (9 references); boot to menu: no; mission 1: yes; result used: no
  • Later in the story: 4 of 28 levels, first level87 (mission 3)
  • Coney: implemented

HUDANEnableChkIndicator

HUDANEnableChkIndicator(on)
# Argument Read as Meaning
1 on boolean (nil or 0 is false) true shows the checkpoint indicator.

Returns nothing.

Turns the Armies of the Night checkpoint indicator on or off. No script calls it.

  • Evidence: confirmed (code) at 0x001b4720; detail: brief
  • Wrapper 0x00370c38 (registered by RegisterBindings); calls 0x001b4720
  • Used by no script on the disc
  • Coney: not implemented

HUDANEnableJoinMsg

HUDANEnableJoinMsg(player, on)
# Argument Read as Meaning
1 player number, truncated to an unsigned integer Player HUD index: 0 for player 1, 1 for player 2.
2 on boolean (nil or 0 is false) true shows the message, false hides it.

Returns nothing.

Shows or hides the press start to join message on one player's Armies of the Night HUD (flag at +0x4614 of the HUD panel, set by vtable +0x7c 0x002107d8). While the flag is set and the player's panel is not active, the HUD draws the message text (ANHud_Draw 0x00211938), and pressing Start with credits left revives that player, restores the panel, clears the flag and spends a credit (main loop 0x00158728).

Notes. Only Armies of the Night HUDs act on it (vtable 0x0053ecc0); no range check on player. The game-over screen sets the flag on both HUDs itself after a continue that leaves credits.

  • Evidence: confirmed (code) at 0x001b46a0; detail: traced
  • Wrapper 0x003701c8 (registered by RegisterBindings); calls 0x001b46a0 HUD_ANEnableJoinMsg
  • Used by 10 of 467 script chunks (78 references); boot to menu: no; mission 1: no; result used: no
  • Later in the story: 5 of 28 levels, first level60 (Armies of the Night 1)
  • Coney: not implemented

HUDANGetCredit

HUDANGetCredit() -> number

No arguments.

Returns number: Credits left in Armies of the Night (the global at 0x00619910).

Returns how many Armies of the Night credits are left. A credit is spent each time a player joins or rejoins with Start (main loop 0x00158728) or continues on the game-over screen (0x001cf468); with none left, Start does nothing and the game-over screen ends the run.

Notes. The counter is set by HUD_ANSetCredits (0x001b46e0); it is a plain global, not reset by the level set-up.

  • Evidence: confirmed (code) at 0x001b4700; detail: traced
  • Wrapper 0x00370290 (registered by RegisterBindings); calls 0x001b4700 HUD_ANGetCredits
  • Used by 5 of 467 script chunks (30 references); boot to menu: no; mission 1: no; result used: yes
  • Later in the story: 5 of 28 levels, first level60 (Armies of the Night 1)
  • Coney: not implemented

HUDANLaunchEndScreen

HUDANLaunchEndScreen(on)
# Argument Read as Meaning
1 on boolean (nil or 0 is false) true shows the end screen and hides the HUD; false removes it and restores the HUD.

Returns nothing.

Shows the Armies of the Night end screen: a full-screen white-tinted sprite of texture 0x18e0000 (a widget kept at 0x0061995c) is created and the HUD is hidden (0x001b1f38). With false the widget is destroyed and the HUD shown again (0x001b20f8).

Notes. Not guarded: calling true twice leaks the first widget, and false with no screen up uses a null pointer. Used once at the end of level 64.

  • Evidence: confirmed (code) at 0x001b44d8; detail: traced
  • Wrapper 0x00370228 (registered by RegisterBindings); calls 0x001b44d8 HUD_ANLaunchEndScreen
  • Used by 1 of 467 script chunks (2 references); boot to menu: no; mission 1: no; result used: no
  • Later in the story: 1 of 28 levels, first level64 (Armies of the Night 5)
  • Coney: not implemented

HUDANSetCredit

HUDANSetCredit(credits)
# Argument Read as Meaning
1 credits number, truncated to an unsigned integer Number of credits (continues) left in the Armies of the Night mini-game.

Returns nothing.

Sets the Armies of the Night credit counter (0x00619910). global.lua sets it to 99 on every level load.

  • Evidence: confirmed (code) at 0x001b46e0; detail: traced
  • Wrapper 0x00370258 (registered by RegisterBindings); calls 0x001b46e0 HUD_ANSetCredits
  • Used by 7 of 467 script chunks (23 references); boot to menu: yes; mission 1: no; result used: no
  • Later in the story: 5 of 28 levels, first level60 (Armies of the Night 1)
  • Coney: not implemented

HUDANSetGOSignMode

HUDANSetGOSignMode(mode)
# Argument Read as Meaning
1 mode number, truncated to an unsigned integer Mode of the GO arrow sign in Armies of the Night, stored as a byte (scripts use 0, 1 and 2).

Returns nothing.

Stores the Armies of the Night GO sign mode in the byte at 0x0060f260, which the HUD uses to show the arcade-style GO prompt that tells the players to move on.

Notes. No direct reader of 0x0060f260 was found (it may be read through a base pointer), so what modes 0, 1 and 2 look like is open; inferred: 0 off, 1 and 2 two directions or styles.

  • Evidence: confirmed (code) at 0x001b4690; detail: traced
  • Wrapper 0x00370c00 (registered by RegisterBindings); calls 0x001b4690 HUD_ANSetGOSignMode
  • Used by 19 of 467 script chunks (136 references); boot to menu: no; mission 1: no; result used: no
  • Later in the story: 5 of 28 levels, first level60 (Armies of the Night 1)
  • Coney: not implemented

HUDCenterComponents

HUDCenterComponents(count, widths, centres, centre)
# Argument Read as Meaning
1 count number, truncated to an unsigned integer How many widths to use (at most 10).
2 widths table of 10 numbers (t[1]..t[10]) Table of up to 10 widths.
3 centres table of 10 numbers (t[1]..t[10]) Table of 10 numbers overwritten with each item's centre.
4 centre number (single precision) The centre to lay the row out around (screen fraction).

Returns nothing.

Lays a row of items with the given widths side by side around a centre point and writes each item's centre back into the second table. Only the unused level100main.lua calls it.

  • Evidence: confirmed (code) at 0x001b5dd8; detail: brief
  • Wrapper 0x0036ef50 (registered by RegisterBindings); calls 0x001b5dd8
  • Used by 1 of 467 script chunks (1 reference); boot to menu: no; mission 1: no; result used: no
  • Coney: not implemented

HUDChangeRadarMissionObjective

HUDChangeRadarMissionObjective(object, colour)
# Argument Read as Meaning
1 object number, truncated to an unsigned integer Handle of the marked object.
2 colour table of 3 numbers (t[1]..t[3]) Table {r, g, b}, each 0-255.

Returns nothing.

Recolours an object's objective blip. No script calls it.

  • Evidence: confirmed (code) at 0x001b3fe8; detail: brief
  • Wrapper 0x003707d0 (registered by RegisterBindings); calls 0x001b3fe8
  • Used by no script on the disc
  • Coney: not implemented

HUDCheckTutorialText

HUDCheckTutorialText(text) -> boolean
# Argument Read as Meaning
1 text string A hint string previously given to HUDSetTutorialText (the same interned string).

Returns boolean (1 for true, nil for false): true (1) when that hint is the one showing (hint box +0x68) or is in the queue, else nil; nil for a nil text.

Reports whether a tutorial hint is still on screen or waiting in the hint box's queue, so a script can wait for the player to have seen it.

Notes. The test compares string objects, which works because Lua 4 interns strings; a hint built from a different but equal-looking string still matches. Hint box at 0x00609250 (HUD).

  • Evidence: confirmed (code) at 0x001b49a8, 0x001ce550; detail: traced
  • Wrapper 0x0036f3e8 (registered by RegisterBindings); calls 0x001b49a8 Tutorial_Contains, 0x001ce550 HintBox_Contains
  • Used by 2 of 467 script chunks (3 references); boot to menu: no; mission 1: no; result used: yes
  • Later in the story: 2 of 28 levels, first level3 (mission 6)
  • Coney: implemented

HUDDeleteRadarItem

HUDDeleteRadarItem(item)
# Argument Read as Meaning
1 item number, truncated to an unsigned integer A radar item (inferred: the value HUDAddRadarObject returns).

Returns nothing.

Removes a radar item. No script calls it.

  • Evidence: inferred; detail: brief
  • Wrapper 0x00370bc8 (registered by RegisterBindings); calls 0x001b42d8
  • Used by no script on the disc
  • Coney: not implemented

HUDDeleteRadarMissionObjective

HUDDeleteRadarMissionObjective(object)
# Argument Read as Meaning
1 object number, truncated to an unsigned integer Handle of the marked object.

Returns nothing.

Removes every radar blip of an object from both radars (the same function as HUDDeleteRadarObject).

  • Evidence: confirmed (code) at 0x001b4098; detail: traced
  • Wrapper 0x00370980 (registered by RegisterBindings); calls 0x001b4098 HUD_RadarRemove
  • Used by 63 of 467 script chunks (149 references); boot to menu: yes; mission 1: yes; result used: no
  • Later in the story: 22 of 28 levels, first level80 (mission 2)
  • Coney: implemented

HUDDeleteRadarObject

HUDDeleteRadarObject(object)
# Argument Read as Meaning
1 object number, truncated to an unsigned integer Handle of the human or object.

Returns nothing.

Removes every radar blip of an object (the same function as HUDDeleteRadarMissionObjective); level99 removes Ash's blip with it.

  • Evidence: confirmed (code) at 0x001b4300; detail: traced
  • Wrapper 0x00370a30 (registered by RegisterBindings); calls 0x001b4300
  • Used by 16 of 467 script chunks (25 references); boot to menu: no; mission 1: yes; result used: no
  • Later in the story: 10 of 28 levels, first level80 (mission 2)
  • Coney: implemented

HUDEnableBar

HUDEnableBar(kind, on, labels, count, flag, texA, texB)
# Argument Read as Meaning
1 kind number, truncated to an unsigned integer Bar kind: 0 a red bar at the top centre, 1 a green bar labelled labels[1] (boss health), 2 a sprite gauge drawn with texA and texB, 3 a stack of grey-framed bars, one per label (Rumble and two-player damage bars); other values do nothing.
2 on boolean (nil or 0 is false) true creates the bar (an existing one is left as is), false removes it.
3 labels table of 4 strings (t[1]..t[4]) Up to 4 label strings: kind 1 uses the first, kind 3 one per bar. Written back unchanged.
4 count number, truncated to an unsigned integer; default 1 Kind 3: how many bars to create (at most 4); with flag true, the number (0-3) of the bar to show or hide.
5 flag boolean (nil or 0 is false) Kind 3 only: false creates or removes all the bars; true shows (on) or hides one bar, number count, keeping the count of shown bars.
6 texA number, truncated to an unsigned integer; default 1703940 Kind 2 only: a sprite word for the gauge (default 1703940); kind 0 ignores it and uses sprite 0x020a0000.
7 texB number, truncated to an unsigned integer; default 1703936 Kind 2 only: a second sprite word (default 1703936); ignored by the other kinds.

Returns nothing.

Creates or removes one of the HUD's scripted bars. Kinds 0, 1 and 3 share four generic bar slots (0x0060a1b0, 0x3f0 bytes each; kinds 0 and 1 use slot 0): kind 0 a red (200, 30, 30) bar 0.17 × 0.025 at the top, kind 1 a labelled bar 0.22 × 0.025 at the right whose fill shades from red (empty) to green (full), kind 3 up to four labelled bars 0.07 apart with a (217, 158, 12) fill. Kind 2 is a separate three-sprite gauge (0x0060b180). Fill them with HUDSetBarPercentage.

Notes. Kind 2's gauge (0x001a3720) starts with values 60 (+0x348) and 30 (+0x340) and the marker sprite 0x1a0007 (sheet chasebar); its look is on HUD: scripted bars. Positions shift down by a constant in a two-player game (0x00609e8c). The bars draw in the HUD pass (HUD: render order).

  • Evidence: confirmed (code) at 0x001b53b0, 0x001b4ba0, 0x001b4c98, 0x001b4f00, 0x001b5008; detail: traced
  • Wrapper 0x0036f5b8 (registered by RegisterBindings); calls 0x001b53b0 HUD_EnableBar, 0x001b4ba0 HUD_EnableRedBar, 0x001b4c98 HUD_EnableLabelledBar, 0x001b4f00 HUD_EnableGaugeBar, 0x001b5008 HUD_EnableBarStack
  • Used by 28 of 467 script chunks (100 references); boot to menu: no; mission 1: no; result used: no
  • Later in the story: 15 of 28 levels, first level2 (mission 5)
  • Coney: implemented

HUDEnableClubActionText

HUDEnableClubActionText(on)
# Argument Read as Meaning
1 on boolean (nil or 0 is false) true moves the action-prompt text near the top of the screen (y 0.125), false back near the bottom (y 0.86); both are adjusted for the video mode.

Returns nothing.

Moves the HUD's context action-prompt text between its normal low position and a high position used in the clubhouse (level95 turns it on; global.lua turns it off on every level load). The position is a fraction of screen height.

Notes. Writes the y fraction to 0x00607d74 and 0x006077e4; other video modes use 0.08, 0.2/0.78 or 0.15/0.8.

  • Evidence: confirmed (code) at 0x001b5ea8; detail: traced
  • Wrapper 0x0036e968 (registered by RegisterBindings); calls 0x001b5ea8 HUD_SetActionTextHigh
  • Used by 4 of 467 script chunks (4 references); boot to menu: yes; mission 1: no; result used: no
  • Later in the story: 1 of 28 levels, first level95 (the hub)
  • Coney: implemented

HUDEnableFixedCamIcon

HUDEnableFixedCamIcon(on)
# Argument Read as Meaning
1 on boolean (nil or 0 is false) true shows the fixed-camera icon, false hides it.

Returns nothing.

Shows or hides the HUD's fixed-camera icons: stores the switch at HUD +0x177b4 (HUD object 0x00600840) and passes it to the show method (vtable +0x44) of the two icon widgets at +0x135e0 and +0x136e0, one per player, built at HUD set-up (0x001ad588) with icon id 0x57.

Notes. HUD set-up writes 1 to +0x177b4 on every level load; no reader of that field was found, so the widget calls are what matter. That the icon marks a fixed camera is inferred from the binding name.

  • Evidence: confirmed (code) at 0x001b4740, 0x001b2818; detail: traced
  • Wrapper 0x0036f250 (registered by RegisterBindings); calls 0x001b4740 HUD_EnableFixedCamIcon, 0x001b2818 HUD_SetFixedCamIconVisible
  • Used by 5 of 467 script chunks (5 references); boot to menu: no; mission 1: no; result used: no
  • Later in the story: 5 of 28 levels, first level60 (Armies of the Night 1)
  • Coney: implemented

HUDEnableGameTutorialText

HUDEnableGameTutorialText(on)
# Argument Read as Meaning
1 on boolean (nil or 0 is false) true enables the game's built-in tutorial hints, false disables them.

Returns nothing.

Sets the game state's tutorial-hints flag (W_GameState + 0x56e2). The first mission's combat tutorial turns it on; Rumble levels turn it off.

Notes. What reads the flag is not traced.

  • Evidence: confirmed (code) at 0x001b5ff0; detail: traced
  • Wrapper 0x0036eec8 (registered by RegisterBindings); calls 0x001b5ff0 GameState_SetTutorialText
  • Used by 36 of 467 script chunks (38 references); boot to menu: no; mission 1: yes; result used: no
  • Later in the story: 1 of 28 levels, first level86 (mission 9)
  • Coney: implemented

HUDEnableGenBar

HUDEnableGenBar(on, label, index, style)
# Argument Read as Meaning
1 on boolean (nil or 0 is false) true creates the bar, false removes it.
2 label string The bar's label.
3 index number, truncated to an unsigned integer Which generic bar (0 or 1).
4 style number, truncated to an unsigned integer; default 1 1 (default) or 0: picks one of two y positions and fill styles.

Returns nothing.

Creates or removes one of the generic labelled bars (the Rumble tag-battle bars).

  • Evidence: confirmed (code) at 0x001b4c98; detail: brief
  • Wrapper 0x0036f748 (registered by RegisterBindings); calls 0x001b4c98
  • Used by 1 of 467 script chunks (4 references); boot to menu: no; mission 1: no; result used: no
  • Coney: not implemented

HUDEnableInstArrow

HUDEnableInstArrow(on, x, y, angle)
# Argument Read as Meaning
1 on boolean (nil or 0 is false) true shows the instruction arrow, false hides it.
2 x number (single precision) Screen x as a fraction of the width.
3 y number (single precision) Screen y as a fraction of the height.
4 angle number (single precision) The arrow's rotation in radians (the tutorial uses 3.14).

Returns nothing.

Shows or hides the tutorial's on-screen arrow pointing at a HUD element; position and rotation apply only when turning it on.

Notes. The arrow is rectangle 10 of hud_minigames, size 0.06, grey (191, 191, 191), and bobs along its direction (0x001b7330). Behaviour: The in-game HUD.

  • Evidence: confirmed (code) at 0x001b5c30; detail: traced
  • Wrapper 0x0036fdd0 (registered by RegisterBindings); calls 0x001b5c30 HUD_EnableInstructionArrow
  • Used by 1 of 467 script chunks (1 reference); boot to menu: no; mission 1: yes; result used: no
  • Coney: implemented

HUDEnableTextProgress

HUDEnableTextProgress(on, labels, count, slot)
# Argument Read as Meaning
1 on boolean (nil or 0 is false) true creates the rows, false removes every shown row.
2 labels table of 6 strings (t[1]..t[6]) Up to 6 row labels (gang names); row i shows label i. Written back unchanged.
3 count number, truncated to an unsigned integer How many rows to create (1-6), from the top.
4 slot number, truncated to an unsigned integer; default 1 Which row count to record: 1 (default) the main count (0x00622e40) that HUDSetTextProgress sorts by when its own slot is 1, 0 the second count (0x00622e44).

Returns nothing.

Creates or removes the text scoreboard: up to six HUD text rows (widgets at 0x00615320, 0x560 bytes each) stacked down the screen at fixed positions (x 0x0050d56c, y 0x0050d574 + row × 0x0050d57c), each showing its label and a score that starts at 0. Used for the king-of-the-hill fight in level 92.

Notes. A row already shown is not recreated; the count is recorded even when on is false. Row fields: label +0x540, score +0x558, active +0x434. The exact text layout (0x001ccf10) is not traced.

  • Evidence: confirmed (code) at 0x001b5590; detail: traced
  • Wrapper 0x0036fa28 (registered by RegisterBindings); calls 0x001b5590 HUD_EnableTextProgress
  • Used by 4 of 467 script chunks (6 references); boot to menu: no; mission 1: no; result used: no
  • Later in the story: 1 of 28 levels, first level92 (flashback 2)
  • Coney: implemented

HUDFlushTutorialText

HUDFlushTutorialText(priority)
# Argument Read as Meaning
1 priority number, truncated to an unsigned integer; default 4 Remove the queued and showing hints of this priority; 4 (the default) removes all.

Returns nothing.

Clears tutorial hints from the hint box, by priority or all of them.

  • Evidence: confirmed (code) at 0x001b49d0; detail: traced
  • Wrapper 0x0036f430 (registered by RegisterBindings); calls 0x001b49d0 Tutorial_Flush
  • Used by 13 of 467 script chunks (55 references); boot to menu: yes; mission 1: yes; result used: no
  • Later in the story: 20 of 28 levels, first level80 (mission 2)
  • Coney: implemented

HUDGetNewPH

HUDGetNewPH(kind, label, width) -> number
# Argument Read as Meaning
1 kind number, truncated to an unsigned integer Panel layout: 0 value with a suffix, 1 a single value, 2 got / needed, 3 a bar. Scripts use 2 for counters and 3 for bars.
2 label string The panel's label text (copied).
3 width number (single precision); default 0.22 Bar width for kind 3, as a fraction of the screen (default 0.22).

Returns number: The panel's index (0-4) to pass to HUDSetPHValue and HUDReleasePH, or 4294967295 (-1 as unsigned) when all five panels are in use.

Takes one of the HUD's five counter panels (the on-screen objective counters such as Tags 2/6) and gives it a label and layout. The panel stays hidden until a value is set.

Notes. Panels live in the HUD object at 0x0060b4f0, 0xa50 bytes each.

  • Evidence: confirmed (code) at 0x001b4790; detail: traced
  • Wrapper 0x0036e998 (registered by RegisterBindings); calls 0x001b4790 HUD_PanelAlloc
  • Used by 20 of 467 script chunks (40 references); boot to menu: yes; mission 1: yes; result used: yes
  • Later in the story: 21 of 28 levels, first level80 (mission 2)
  • Coney: implemented

HUDLaunchANGameOver

HUDLaunchANGameOver(on)
# Argument Read as Meaning
1 on boolean (nil or 0 is false) Read but not used (scripts pass true).

Returns nothing.

Opens the Armies of the Night game-over screen (game mode 0xd, pushed from 0x005e53a0); the main loop does the same itself when a failed Armies of the Night level fades out. The screen (ANGameOver_Update 0x001cf468) counts down and lets either player press Start to continue: with credits left a credit is spent, the Lua function F1.Time is called and both HUDs show the join message; with no credits, or when the countdown ends, the screen fades out. Calling it while the screen is already up closes it and applies the result: continuing players are revived and their HUD restored, otherwise the game either reloads level60 or calls runNextMission(0).

Notes. It is a toggle: a second call while game mode 0xd is current pops the screen instead of opening it again. Which menu outcome (game-over menu +0x7a4/+0x7a8) maps to reloading level60 and which to runNextMission is inferred, not traced to the button. Credits are the counter read by HUDANGetCredit (0x00619910).

  • Evidence: confirmed (code) at 0x001cede8, 0x001557f8; detail: traced
  • Wrapper 0x0036f1b8 (registered by RegisterBindings); calls 0x001cede8 HUD_LaunchANGameOver, 0x001557f8 ANGameOver_Toggle
  • Used by 5 of 467 script chunks (5 references); boot to menu: no; mission 1: no; result used: no
  • Later in the story: 5 of 28 levels, first level60 (Armies of the Night 1)
  • Coney: not implemented

HUDLaunchMissionComplete

HUDLaunchMissionComplete(kind)
# Argument Read as Meaning
1 kind number, truncated to an unsigned integer Which mission-complete screen to show (stored at 0x005e5e1c); runNextMission passes 4. 0 (or no argument) also sets a flag at 0x0050c754.

Returns nothing.

Pushes the mission-complete screen (game mode 0xb) unless it is already showing. See runNextMission.

Notes. The kind is stored on every call, also when mode 0xb is already on top and nothing is pushed; 0x0050c754 (the level-change flag mode 1's Exit reads) is set only when it pushes with kind 0. Mode 0xb's Enter sets the kind back to 0 before calling UnlockAndLoad, whose runNextMission(1) launches 4; the shipped scripts pass only 0 and 4.

  • Evidence: confirmed (code) at 0x0015d420; detail: traced
  • Wrapper 0x0036f218 (registered by RegisterBindings); calls 0x0015d420 MissionComplete_Launch
  • Used by 10 of 467 script chunks (12 references); boot to menu: yes; mission 1: yes; result used: no
  • Later in the story: 28 of 28 levels, first level80 (mission 2)
  • Coney: implemented

HUDLaunchMissionFailed

HUDLaunchMissionFailed(reason)
# Argument Read as Meaning
1 reason string The failure text shown under the title on the mission-failed screen; nil shows "Unknown Reason".

Returns nothing.

Ends the mission as failed: sets the game state's mission result (+0x118 = 2), gives the reason to the mission-failed menu (0x001d1fb8, its vtable +0xa4) and pushes game mode 0xc, which saves the sound state and opens the menu (Last checkpoint, Restart level, Quit).

Notes. The screen's layout and items are on Pause; what each item does there is not traced.

  • Evidence: confirmed (code) at 0x001d1f88; detail: traced
  • Wrapper 0x0036f130 (registered by RegisterBindings); calls 0x001d1f88 MissionFailed_Launch
  • Used by 24 of 467 script chunks (38 references); boot to menu: no; mission 1: no; result used: no
  • Later in the story: 15 of 28 levels, first level87 (mission 3)
  • Coney: implemented

HUDLaunchRumbleWin

HUDLaunchRumbleWin(winner, reason)
# Argument Read as Meaning
1 winner string Text naming the winner.
2 reason string Second line (how the match was won, or the survival time).

Returns nothing.

Shows the Rumble result screen (game mode 0x14) with the two lines of text; its choices replay the arena, reopen the Rumble menu or quit.

Notes. 0x001dfe20 pushes mode 0x14 (0x00155648) and copies the texts into the result screen at 0x00635390. Behaviour: Rumble.

  • Evidence: confirmed (code) at 0x001dfe20; detail: brief
  • Wrapper 0x0036f160 (registered by RegisterBindings); calls 0x001dfe20
  • Used by 33 of 467 script chunks (66 references); boot to menu: no; mission 1: no; result used: no
  • Coney: implemented

HUDRadarSetRange

HUDRadarSetRange(near, far)
# Argument Read as Meaning
1 near number (single precision) Radius in metres the radar shows around a standing player (radar +0x28, rest; level99 runs with 50); the shown radius (+0x20) jumps to it at once.
2 far number (single precision) Radius in metres shown at full running speed, 12 m/s (radar +0x24, fast; level99 runs with 75).

Returns nothing.

Sets both players' radar zoom range (HUD radars at +0x15d0 and +0x3f10): the disc shows near metres around a standing player and widens toward far as the player speeds up. Level 3 passes 25 and 35, a closer view than the usual 50 and 75.

Notes. The floats pass through in registers, which hides them in the decompiled wrapper. The zoom formula and HUDSetRadarZoomScale are in HUD: the radar.

  • Evidence: confirmed (code) at 0x001b40c0, 0x001b2e10; detail: traced
  • Wrapper 0x003709b8 (registered by RegisterBindings); calls 0x001b40c0 HUD_SetRadarRange, 0x001b2e10 HudManager_SetRadarRange
  • Used by 1 of 467 script chunks (1 reference); boot to menu: no; mission 1: no; result used: no
  • Later in the story: 1 of 28 levels, first level3 (mission 6)
  • Coney: implemented

HUDReleasePH

HUDReleasePH(panel)
# Argument Read as Meaning
1 panel number, truncated to an integer Panel index returned by HUDGetNewPH.

Returns nothing.

Frees a counter panel and hides it.

  • Evidence: confirmed (code) at 0x001b47b8; detail: traced
  • Wrapper 0x0036ea40 (registered by RegisterBindings); calls 0x001b47b8 HUD_PanelRelease
  • Used by 16 of 467 script chunks (37 references); boot to menu: yes; mission 1: yes; result used: no
  • Later in the story: 20 of 28 levels, first level80 (mission 2)
  • Coney: implemented

HUDRemoveAllGoalText

HUDRemoveAllGoalText()

No arguments.

Returns nothing.

Clears the HUD's goal text (objective slot 0).

  • Evidence: confirmed (code) at 0x001db248; detail: traced
  • Wrapper 0x0036f360 (registered by RegisterBindings); calls 0x001db248
  • Used by 7 of 467 script chunks (7 references); boot to menu: no; mission 1: yes; result used: no
  • Later in the story: 4 of 28 levels, first level80 (mission 2)
  • Coney: implemented

HUDSetANBossTexture

HUDSetANBossTexture(human, texture, on)
# Argument Read as Meaning
1 human number, truncated to an unsigned integer Handle of the boss human in an Armies of the Night level.
2 texture number, truncated to an unsigned integer Texture id of the portrait to show for that boss (scripts pass ids around 1966080, 0x1e0000 + n).
3 on boolean (nil or 0 is false); default true true (default) registers the portrait, false removes the human's entry.

Returns nothing.

Registers (or removes) a boss portrait on both players' Armies of the Night HUDs. Each HUD's target panel keeps a table of 6 (human, texture) pairs: on puts the pair in the first free slot, false clears the slot holding that human. While a player fights a registered human, the enemy health panel the HUD shows for its target (TargetPanel_Update 0x0020e6f8) swaps in that portrait texture; other enemies get the plain panel.

Notes. Only Armies of the Night HUDs (built by ANHud_Construct 0x0020fd80 when the level index is 60-69) implement the call; on a normal player HUD the method is an empty stub (vtable 0x0053edf8 +0x74). A full table (6 entries) silently ignores further adds, and the same human can be added twice. Free slots hold the null handle (0x006ebd30).

  • Evidence: confirmed (code) at 0x001b5b80, 0x00210dc0, 0x0020fc98; detail: traced
  • Wrapper 0x0036e8d8 (registered by RegisterBindings); calls 0x001b5b80 HUD_SetANBossTexture, 0x00210dc0 ANHud_SetBossTexture, 0x0020fc98 TargetPanel_SetBossTexture
  • Used by 15 of 467 script chunks (38 references); boot to menu: no; mission 1: no; result used: no
  • Later in the story: 5 of 28 levels, first level60 (Armies of the Night 1)
  • Coney: not implemented

HUDSetAnnounceMsg

HUDSetAnnounceMsg(kind, text, flag)
# Argument Read as Meaning
1 kind number, truncated to an unsigned integer Announcement type. 5 shows the custom text; any other value shows that type's built-in message (a table of message pointers at 0x00622e20) and ignores text.
2 text string The text to show when kind is 5 (scripts pass a string from the level's string table, or GSTRING.CHEAT).
3 flag boolean (nil or 0 is false) Stored in a HUD global (0x00617fe8) that the announcement display reads; the Armies of the Night levels pass true. Meaning not traced.

Returns nothing.

Shows an announcement: the custom text for kind 5 centred at GUI (0.5, 0.25), or one of the built-in announcement messages at the bottom left (0.02, 0.90) for the other kinds. Each call replaces the text at once (no queue). global.lua uses it to announce an entered cheat.

Notes. Kind 5 goes to a separate text widget (0x0060e990, HUD +0xe150); the other kinds restart the HUD manager's announcement widget (+0xe340) through 0x001b3cb0, which also looks up interface cue 0x14. An announcement lasts as its own markup says, else until replaced; while the +0xe340 one shows, the objective message, the hint box and the action prompts are hidden. Details: The in-game HUD.

  • Evidence: confirmed (code) at 0x001b5b08; detail: traced
  • Wrapper 0x0036e858 (registered by RegisterBindings); calls 0x001b5b08 HUD_SetAnnounceMessage
  • Used by 17 of 467 script chunks (50 references); boot to menu: yes; mission 1: yes; result used: no
  • Later in the story: 7 of 28 levels, first level95 (the hub)
  • Coney: implemented

HUDSetBarPercentage

HUDSetBarPercentage(kind, fill, fill2, index, value2)
# Argument Read as Meaning
1 kind number, truncated to an unsigned integer The bar kind given to HUDEnableBar (0-3); other values do nothing.
2 fill number (single precision) Fill fraction 0-1 (clamped) for kinds 0, 1 and 3; for kind 2 the gauge's main value (+0x340), not clamped.
3 fill2 number (single precision); default 1 Kinds 1 and 2: the chase gauge's maximum (+0x348); ignored by kinds 0 and 3.
4 index number, truncated to an unsigned integer Which generic bar for kinds 1 and 3 (0-3).
5 value2 number (single precision) Kind 2's second gauge value (+0x344); also passed for kind 1 (scripts pass 0).

Returns nothing.

Sets how full a HUD bar is: kinds 0, 1 and 3 store the clamped fraction in the generic bar (+0x78, only when that bar exists); kind 2 sets the chase gauge's value (fill), maximum (fill2) and minimum (value2). Kind 1 also writes those three into the kind-2 gauge.

Notes. The kind-1 fall-through into the gauge is in 0x001b5450; it is harmless while no gauge is shown (inferred).

  • Evidence: confirmed (code) at 0x001b5450, 0x001c2530; detail: traced
  • Wrapper 0x0036f7f8 (registered by RegisterBindings); calls 0x001b5450 HUD_SetBarPercentage, 0x001c2530 HudGenericBar_SetFill
  • Used by 28 of 467 script chunks (103 references); boot to menu: no; mission 1: no; result used: no
  • Later in the story: 15 of 28 levels, first level2 (mission 5)
  • Coney: implemented

HUDSetBarProperty

HUDSetBarProperty(index, flag, colour, width)
# Argument Read as Meaning
1 index number, truncated to an unsigned integer Generic bar slot (0-3, as HUDEnableBar's kinds 0, 1 and 3 fill them); ignored when that bar does not exist.
2 flag boolean (nil or 0 is false) The red-to-green gradient flag (HudBar +0x60): true makes the fill colour follow the fill again at the next draw, replacing colour; false keeps colour.
3 colour table of 4 numbers (t[1]..t[4]) Fill colour {r, g, b, a}, each 0-255 (the low byte is kept); written back unchanged.
4 width number (single precision) Bar width as a fraction of the screen width (+0x40; × 0.7 when the HUD's layout flag 2 is set, inferred: widescreen).

Returns nothing.

Sets a generic bar's fill colour (+0x68) and width, then rebuilds it. Scripts use it to recolour the Rumble and damage bars made by HUDEnableBar kind 3.

  • Evidence: confirmed (code) at 0x001b54f0, 0x001c22b0; detail: traced
  • Wrapper 0x0036f8e8 (registered by RegisterBindings); calls 0x001b54f0 HUD_SetBarProperty, 0x001c22b0 HudGenericBar_SetWidth
  • Used by 21 of 467 script chunks (39 references); boot to menu: no; mission 1: no; result used: no
  • Later in the story: 14 of 28 levels, first level2 (mission 5)
  • Coney: implemented

HUDSetChaseHUDState_CREATE

HUDSetChaseHUDState_CREATE(n, label)
# Argument Read as Meaning
1 n number, truncated to an unsigned integer A number passed to the chase HUD.
2 label string The chase HUD's label.

Returns nothing.

Creates the chase HUD if it does not exist yet. No script calls it.

  • Evidence: confirmed (code) at 0x001b4ab8; detail: brief
  • Wrapper 0x0036f558 (registered by RegisterBindings); calls 0x001b4ab8
  • Used by no script on the disc
  • Coney: not implemented

HUDSetChaseHUDState_DESTROY

HUDSetChaseHUDState_DESTROY()

No arguments.

Returns nothing.

Puts the chase HUD (the pursuit display widget at 0x00609e80) into state 6, its destroy state: the widget's own removal (vtable slot +0x6c) runs. After it the chase HUD can be made again (HUDSetChaseHUDState_CREATE makes it only while widget +0x0c is 0).

Notes. State 6 does not store the state (+0x44); what slot +0x6c frees is inferred from the name. Takes no arguments.

  • Evidence: confirmed (code) at 0x001b4a88, 0x001a41b0; detail: traced
  • Wrapper 0x0036f538 (registered by RegisterBindings); calls 0x001b4a88 ChaseHud_Destroy, 0x001a41b0 ChaseHud_SetState
  • Used by 2 of 467 script chunks (2 references); boot to menu: no; mission 1: no; result used: no
  • Later in the story: 2 of 28 levels, first level3 (mission 6)
  • Coney: implemented

HUDSetChaseHUDState_NORMAL

HUDSetChaseHUDState_NORMAL()

No arguments.

Returns nothing.

Puts the chase HUD (the pursuit distance display, object 0x00609e80) into its normal state. No script calls it.

  • Evidence: confirmed (code) at 0x001b49f8; detail: brief
  • Wrapper 0x0036f468 (registered by RegisterBindings); calls 0x001b49f8
  • Used by no script on the disc
  • Coney: not implemented

HUDSetChaseHUDState_TIMEOUT

HUDSetChaseHUDState_TIMEOUT(n, seconds, positive, label)
# Argument Read as Meaning
1 n number, truncated to an unsigned integer A number passed to the chase HUD state change.
2 seconds number (single precision) A time value; negated when positive is false.
3 positive boolean (nil or 0 is false) false negates the time.
4 label string Text shown by the chase HUD.

Returns nothing.

Puts the chase HUD into its timeout state with a time and a label. No script calls it.

  • Evidence: confirmed (code) at 0x001b4a28; detail: brief
  • Wrapper 0x0036f488 (registered by RegisterBindings); calls 0x001b4a28
  • Used by no script on the disc
  • Coney: not implemented

HUDSetInstArrowAnimSpeed

HUDSetInstArrowAnimSpeed(speed)
# Argument Read as Meaning
1 speed number, truncated to an unsigned integer Animation speed value for the arrow.

Returns nothing.

Sets the instruction arrow's animation speed. No script calls it.

  • Evidence: confirmed (code) at 0x001b5cc8; detail: brief
  • Wrapper 0x0036fe90 (registered by RegisterBindings); calls 0x001b5cc8
  • Used by no script on the disc
  • Coney: implemented

HUDSetInstArrowColor

HUDSetInstArrowColor(colour)
# Argument Read as Meaning
1 colour table of 3 numbers (t[1]..t[3]) Table {r, g, b}, each 0-255 (alpha is always 255).

Returns nothing.

Sets the instruction arrow's colour. No script calls it.

  • Evidence: confirmed (code) at 0x001b5cf0; detail: brief
  • Wrapper 0x0036ffb8 (registered by RegisterBindings); calls 0x001b5cf0
  • Used by no script on the disc
  • Coney: not implemented

HUDSetInstArrowLocation

HUDSetInstArrowLocation(object)
# Argument Read as Meaning
1 object number, truncated to an unsigned integer Handle of a world object; the arrow is placed over its screen position (raised 0.03).

Returns nothing.

Moves the instruction arrow, either onto a world object or to a screen position. No script calls it.

Overload (registered first; the wrapper above checks its argument types and calls this one when they do not match): The two-number form places the arrow at a screen position; it is the fallback when the arguments do not match the one-handle form's type check.

HUDSetInstArrowLocation(x, y)
# Argument Read as Meaning
1 x number (single precision) Screen x fraction.
2 y number (single precision) Screen y fraction.

Returns nothing.

Wrapper 0x0036fec8; calls 0x001b5d38.

  • Evidence: confirmed (code) at 0x001b5d78; detail: brief
  • Wrapper 0x0036ff40 (registered by RegisterBindings); calls 0x001b5d78
  • Used by no script on the disc
  • Coney: not implemented

HUDSetMissionFailedCallbacks

HUDSetMissionFailedCallbacks(onRetry)
# Argument Read as Meaning
1 onRetry string Name of the Lua function (at most 31 characters kept) to call when the player retries from the mission-failed screen; nil clears it.

Returns nothing.

Stores a Lua function name in the mission-failed menu (+0x7b0, Pause). When the menu closes with its checkpoint choice (menu +0x7a8), a stored name is called with no arguments instead of reloading the level: the game first restores player 1's screen colour and blur when he is in state 0xc, clears game state +0x14c, resets the mission statistics (0x00422d00) and resumes play. With no name the level is reloaded from its checkpoint as usual.

Notes. The close logic is confirmed (code) at 0x00155408; that +0x7a8 is the "Last checkpoint" item (and +0x7a4 Restart level, +0x7a0 Quit) is inferred from their effects. The name stays until replaced or cleared.

  • Evidence: confirmed (code) at 0x001d1ff0, 0x001d2398, 0x00155408; detail: traced
  • Wrapper 0x0036f1e8 (registered by RegisterBindings); calls 0x001d1ff0, 0x001d2398, 0x00155408
  • Used by 6 of 467 script chunks (15 references); boot to menu: no; mission 1: no; result used: no
  • Later in the story: 4 of 28 levels, first level93 (mission 10)
  • Coney: not implemented

HUDSetNumIndicator

HUDSetNumIndicator(player, on, gang)
# Argument Read as Meaning
1 player number, truncated to an unsigned integer 0 or 1 for a player HUD's indicator, 2 for the shared one.
2 on boolean (nil or 0 is false) true shows the indicator.
3 gang number, truncated to an integer; default -1 Gang id whose count it shows (default -1: none, which also forces it off).

Returns nothing.

Shows a number indicator (the remaining members of a gang) on a player's HUD or the shared HUD, as Rumble brawls do.

  • Evidence: confirmed (code) at 0x001b4438; detail: brief
  • Wrapper 0x00370138 (registered by RegisterBindings); calls 0x001b4438
  • Used by 3 of 467 script chunks (9 references); boot to menu: no; mission 1: no; result used: no
  • Coney: implemented

HUDSetObjective

HUDSetObjective(slot, text, mode, silent, ms)
# Argument Read as Meaning
1 slot number, truncated to an integer Objective line: 0 or 1 (two objective slots; each has its own heading string).
2 text string The objective text.
3 mode number, truncated to an integer 0 set the objective (and announce it unless silent), 1 clear the slot, 2 mark it done (no message: it removes the objective's own message from the queue; slot 1 also shows the built-in Bonus complete announcement), 3 set and mark it without a message.
4 silent boolean (nil or 0 is false) With mode 0, true sets the text without the message.
5 ms number, truncated to an unsigned integer; default 8000 How long the message stays on screen, in milliseconds (default 8000).

Returns nothing.

Sets, marks or clears one of the two objective lines in the HUD's checklist, with an optional message at the bottom left (GUI (0.025, 0.88), size 0.05, interface sound cue 0x11). It is the most-used HUD binding (global.lua's Objective helpers and most level scripts).

Notes. The mode-0 message is one string: the objective icon markup and a space, HUD colour slot 4 or 6, global string 0xe5 or 0xe6 (which ends the line), then the text; a text whose leading tag names an icon ( ...) takes that icon. Mode 2 flushes that message and shows announcement 2 for slot 1 only (runtime-checked in level99, 2026-10-11); mode 0 for slot 1 also queues tutorial hint 0x15 once while game tutorial text is on. That mode 2 ticks the line off is inferred (0x001a5070). The checklist is the object at 0x0062e790 (pointer 0x0050eddc). Behaviour: The in-game HUD.

  • Evidence: confirmed (code) at 0x001dad88; detail: traced
  • Wrapper 0x0036f280 (registered by RegisterBindings); calls 0x001dad88 HUD_SetObjective
  • Used by 149 of 467 script chunks (675 references); boot to menu: yes; mission 1: yes; result used: no
  • Later in the story: 23 of 28 levels, first level80 (mission 2)
  • Coney: implemented

HUDSetPHLabelFlashing

HUDSetPHLabelFlashing(panel, on)
# Argument Read as Meaning
1 panel number, truncated to an integer Panel index.
2 on boolean (nil or 0 is false) true makes the label flash, false stops it (inferred from the name).

Returns nothing.

Makes a counter panel's label flash. No script calls it.

  • Evidence: inferred; detail: brief
  • Wrapper 0x0036eb80 (registered by RegisterBindings); calls 0x001b4808
  • Used by no script on the disc
  • Coney: not implemented

HUDSetPHValue

HUDSetPHValue(panel, field, value, show, ms, sound)
# Argument Read as Meaning
1 panel number, truncated to an integer Panel index returned by HUDGetNewPH.
2 field number, truncated to an integer 1 sets the current value (and redraws), 2 sets the target value of a got / needed panel without redrawing.
3 value number (single precision) The number to show (for a bar panel, the fill as a fraction 0-1).
4 show boolean (nil or 0 is false) Scripts always pass true; passed on to the panel code, its effect is not traced.
5 ms number, truncated to an unsigned integer; default 3000 How long the panel stays on screen after the change, in milliseconds (default 3000); 0 keeps it up. Scripts pass 4000000000 for forever.
6 sound boolean (nil or 0 is false) true plays the menu bonus sound (vags/interface/menu/bonuspart_01) with the change.

Returns nothing.

Changes a counter panel's value, redraws its text (or bar) and shows it for a while. Used for every objective counter in the game (global.lua's Objective and TagInfo helpers).

  • Evidence: confirmed (code) at 0x001b47e0; detail: traced
  • Wrapper 0x0036ea78 (registered by RegisterBindings); calls 0x001b47e0 HUD_PanelSetValue
  • Used by 53 of 467 script chunks (239 references); boot to menu: yes; mission 1: yes; result used: no
  • Later in the story: 21 of 28 levels, first level80 (mission 2)
  • Coney: implemented

HUDSetRadarItemTexture

HUDSetRadarItemTexture(object, icon, scale, flag)
# Argument Read as Meaning
1 object number, truncated to an unsigned integer Handle of an object that already has a blip.
2 icon number, truncated to an unsigned integer Radar icon id (scripts use 27 and 28 for objective markers, 34 for items; icon 22 is drawn at 0.7 scale, icons 29-31 tinted green).
3 scale number (single precision); default 1 Icon scale (default 1).
4 flag boolean (nil or 0 is false) Icon lock (slot +0x34, 0x001c4640), set after the icon: while it is set, icon and scale changes to this blip are ignored (including this call's own icon when the lock was already set), so a locked blip keeps its icon until a call with false unlocks it and a further call changes it; scripts sometimes pass 1.

Returns nothing.

Changes the icon (and scale) of an object's radar blip on both radars, then sets or clears its icon lock.

Notes. Corrected from earlier readings that took the fourth argument for a colour or tint: it is the blip's icon lock (Radar_SetBlipIconLock, 0x001c4640), and no colour is involved. Coney stores the icon and scale but does not yet keep the lock, so a locked blip's icon can still change in Coney.

  • Evidence: confirmed (code) at 0x001b4038, 0x001b2bf0; detail: traced
  • Wrapper 0x003708c8 (registered by RegisterBindings); calls 0x001b4038 HUD_RadarSetIcon, 0x001b2bf0 HUD_RadarSetBlipIconLock
  • Used by 70 of 467 script chunks (154 references); boot to menu: yes; mission 1: yes; result used: no
  • Later in the story: 22 of 28 levels, first level80 (mission 2)
  • Coney: implemented

HUDSetRadarObjectFlash

HUDSetRadarObjectFlash(object, on, n)
# Argument Read as Meaning
1 object number, truncated to an unsigned integer Handle of the human or object whose radar blip changes.
2 on boolean (nil or 0 is false) true makes the blip flash; false or nil returns it to its steady mode.
3 n number, truncated to an unsigned integer A value passed to the radar with the change (scripts pass 1 or omit it).

Returns nothing.

Makes an object's radar blip flash, or stops it, on both radars.

  • Evidence: confirmed (code) at 0x001b4298; detail: traced
  • Wrapper 0x00370690 (registered by RegisterBindings); calls 0x001b4298 HUD_RadarFlash
  • Used by 9 of 467 script chunks (18 references); boot to menu: no; mission 1: yes; result used: no
  • Later in the story: 5 of 28 levels, first level87 (mission 3)
  • Coney: implemented

HUDSetRadarZoomScale

HUDSetRadarZoomScale(scale)
# Argument Read as Meaning
1 scale number (single precision) Factor on the radius in metres the radar shows (1.0 by default); below 1 zooms in (scripts use 0.35 and 0.5), above 1 shows more of the map.

Returns nothing.

Sets the zoom scale of both radars (radar +0x2920, the two globals 0x00604730 and 0x00607070). The radar's shown radius eases toward (rest + (fast - rest) × min(speed, 12) / 12) × scale, so with the level99 values (50 m standing, 75 m at 12 m/s) a scale of 0.5 shows 25-37.5 m (HUD: radar zoom). The change eases in over a few frames, not at once.

Notes. Nothing resets it per level as far as traced (inferred: scripts set it back to 1 themselves).

  • Evidence: confirmed (code) at 0x001b40e0; detail: traced
  • Wrapper 0x00370728 (registered by RegisterBindings); calls 0x001b40e0 HUD_SetRadarZoomScale
  • Used by 6 of 467 script chunks (8 references); boot to menu: no; mission 1: no; result used: no
  • Later in the story: 3 of 28 levels, first level81 (mission 8)
  • Coney: implemented

HUDSetTextProgress

HUDSetTextProgress(label, value, colour, slot)
# Argument Read as Meaning
1 label string The row's label, as given to HUDEnableTextProgress; a label no shown row has does nothing.
2 value number, truncated to an unsigned integer The row's new score.
3 colour table of 3 numbers (t[1]..t[3]) Table {r, g, b}, each 0-255, for the row's text; written back.
4 slot number, truncated to an unsigned integer; default 1 Which recorded row count bounds the sort: 1 (default) the main count, 0 the second (see HUDEnableTextProgress).

Returns nothing.

Finds the shown row whose label matches, sets its score and text colour and redraws it, then sorts the first count rows by score, highest at the top, by swapping labels, scores and colours between rows (the row widgets stay in place).

Notes. The sort is a selection sort with ties keeping their order. Scores are unsigned, so a negative value sorts first.

  • Evidence: confirmed (code) at 0x001b57c8; detail: traced
  • Wrapper 0x0036fb38 (registered by RegisterBindings); calls 0x001b57c8 HUD_SetTextProgress
  • Used by 4 of 467 script chunks (16 references); boot to menu: no; mission 1: no; result used: no
  • Later in the story: 1 of 28 levels, first level92 (flashback 2)
  • Coney: implemented

HUDSetTutorialCallback

HUDSetTutorialCallback(name)
# Argument Read as Meaning
1 name string Name of the Lua function to call on each hit player 1 deals (for example P1.BasicAttacks); nil clears it.

Returns nothing.

Sets the Lua function called each time player 1 lands a hit, or has one blocked, on a non-ally, with one argument: the attacker's current anim id (11 X1, 12 S1, ...). The first mission's combat tutorial counts the attacks with it. The call is synchronous, from the damage step (0x00265f70 -> 0x002653d8 -> 0x001ce9a8), on every hit until the name is cleared. The pointer is stored as given (0x006095f0), not interned.

Notes. Not tied to the hint text. Cleared only by nil or when the HUD is released at UnloadLevel. Player 2's hits do not call it. Because the name is not interned, the original relies on the script keeping the string alive (constants in a chunk are). Details: The in-game HUD.

  • Evidence: confirmed (code) at 0x001b5e90; detail: traced
  • Wrapper 0x00370098 (registered by RegisterBindings); calls 0x001b5e90 Tutorial_SetCallback
  • Used by 2 of 467 script chunks (20 references); boot to menu: no; mission 1: yes; result used: no
  • Later in the story: 1 of 28 levels, first level95 (the hub)
  • Coney: implemented

HUDSetTutorialText

HUDSetTutorialText(text, priority)
# Argument Read as Meaning
1 text string The hint text to show; nil clears the current hint when the game is not paused.
2 priority number, truncated to an unsigned integer; default 1 Priority (default 1; the game's own hints use 2, action-object hints 0): lower numbers show first; a hint with a lower number than the one showing interrupts it, which goes back in the queue and restarts later; equal numbers wait in order.

Returns nothing.

Queues a tutorial hint in the hint box (the text panel used by the tutorial and for gameplay tips).

Notes. The hint box is the object at 0x00609250: black at alpha 128 at the bottom left, text at GUI x 0.016, interface sound cue 0x15 for each new hint; hidden while an objective message or an announcement shows. At most 20 hints are held (more are dropped) and the text is kept by pointer. A hint stays until its own or markup ends it, or until it is flushed, withdrawn or interrupted; without either tag it stays. Queue and timing: The in-game HUD.

  • Evidence: confirmed (code) at 0x001b4980; detail: traced
  • Wrapper 0x0036f380 (registered by RegisterBindings); calls 0x001b4980 Tutorial_QueueText
  • Used by 53 of 467 script chunks (244 references); boot to menu: yes; mission 1: yes; result used: no
  • Later in the story: 22 of 28 levels, first level80 (mission 2)
  • Coney: implemented

HUDShowMissionSelect

HUDShowMissionSelect(onCancel, onChoose)
# Argument Read as Meaning
1 onCancel string Name of the Lua function called with no arguments when the player backs out (copied, at most 31 characters); nil for none.
2 onChoose string Name of the Lua function called as onChoose(level, checkpoint) when the player picks a mission (copied, at most 31 characters); nil for none.

Returns nothing.

Opens the clubhouse mission-select screen (game mode 0x10, pushed on the mode stack) unless it is already the current mode; the world stops updating while it shows. On entry it loads the menu sound bank. When the player backs out, the sound bank is loaded back and onCancel() is called; when the player picks an entry, onChoose(level, checkpoint) is called with the entry's level number and its 1-based checkpoint.

Notes. The choice comes from 0x001bdd38: level = level record +0x14d8 of the entry's level index, checkpoint = entry +0x70 + 1; for a checkpoint above 1 it also calls 0x0041e040(W_GameState + 0x480, 1) and resets and re-copies the statistics (0x00422930, 0x00422c60) before the callback. Callbacks run through the script system by name, so dotted names work. The menu's list and layout are not traced.

  • Evidence: confirmed (code) at 0x00155180, 0x0015d5e0, 0x0015d728; detail: traced
  • Wrapper 0x0036ec40 (registered by RegisterBindings); calls 0x00155180 MissionSelect_Show, 0x0015d5e0 MissionSelect_SetCallbacks, 0x0015d728 MissionSelect_Exit
  • Used by 2 of 467 script chunks (2 references); boot to menu: no; mission 1: no; result used: no
  • Later in the story: 1 of 28 levels, first level95 (the hub)
  • Coney: implemented

HUDShowMissionSummaryText

HUDShowMissionSummaryText(text, n)
# Argument Read as Meaning
1 text string Summary text.
2 n number, truncated to an unsigned integer A number (scripts pass 4 or 6).

Returns nothing.

Does nothing in this build: the function it calls (0x001b3878) returns at once.

Notes. global.lua still calls it after scenes; Coney can implement it as a no-op.

  • Evidence: confirmed (code) at 0x001b4768; detail: traced
  • Wrapper 0x0036f0d0 (registered by RegisterBindings); calls 0x001b4768
  • Used by 3 of 467 script chunks (3 references); boot to menu: yes; mission 1: yes; result used: no
  • Later in the story: 26 of 28 levels, first level80 (mission 2)
  • Coney: implemented

HUDShowWarCommand

HUDShowWarCommand(on, player)
# Argument Read as Meaning
1 on boolean (nil or 0 is false); default true true (the default when omitted) allows the Warrior-command display, false hides it.
2 player number, truncated to an unsigned integer Player HUD index, 0 or 1 (default 0); not range-checked.

Returns nothing.

Allows or forbids the Warrior-command display (the d-pad squad-order picture, HUD +0x1ef0) on one player's HUD: the flag at element +0x155c (1 when the HUD is built) gates both its opening (0x001a6d28) and its drawing (0x001a8590). Either call also closes the display's picture if it is open (0x001b9290), so false hides it at once and true only lets it come up again when the player next calls for commands.

Notes. Used around scripted moments where squad orders must not be given; the per-command availability shown in the display comes from game state +0x41e and is not set here.

  • Evidence: confirmed (code) at 0x001b4948, 0x001a6c38; detail: traced
  • Wrapper 0x0036e7f8 (registered by RegisterBindings); calls 0x001b4948 HUD_ShowWarCommand, 0x001a6c38 WarCommandDisplay_SetAllowed
  • Used by 9 of 467 script chunks (32 references); boot to menu: no; mission 1: no; result used: no
  • Later in the story: 3 of 28 levels, first level87 (mission 3)
  • Coney: implemented

HUDTurnOffActionCycleAnim

HUDTurnOffActionCycleAnim(player)
# Argument Read as Meaning
1 player number, truncated to an unsigned integer Player index (0 or 1) whose action prompt stops cycling.

Returns nothing.

Stops the icon cycle that HUDTurnOnActionCycleAnim started on a player's action prompt (clears the prompt's cycle flag +0x45c); the prompt goes back to its normal, steady icon.

Notes. Only the flag is cleared: the icon last shown and its visibility stay until the prompt next sets them.

  • Evidence: confirmed (code) at 0x001b5ae0, 0x0019f320; detail: traced
  • Wrapper 0x0036fd98 (registered by RegisterBindings); calls 0x001b5ae0 HUD_TurnOffActionCycleAnim, 0x0019f320 ActionPrompt_StopCycle
  • Used by 8 of 467 script chunks (27 references); boot to menu: no; mission 1: no; result used: no
  • Later in the story: 6 of 28 levels, first level95 (the hub)
  • Coney: implemented

HUDTurnOffRadar

HUDTurnOffRadar(player)
# Argument Read as Meaning
1 player number, truncated to an integer; default 2 0 or 1 for one player's radar, 2 (the default) for both.

Returns nothing.

Hides the radar for one or both players.

Notes. Also clears HUD +0x177ac, so the radars do not come back on their own after a scene's letterbox; HUD_Update turns both back on when no letterbox or fade runs, +0x177ac is set and +0x177b0 is 0. Behaviour: The in-game HUD.

  • Evidence: confirmed (code) at 0x001b43a8; detail: traced
  • Wrapper 0x00370100 (registered by RegisterBindings); calls 0x001b43a8 HUD_RadarOff
  • Used by 67 of 467 script chunks (121 references); boot to menu: no; mission 1: yes; result used: no
  • Later in the story: 15 of 28 levels, first level95 (the hub)
  • Coney: implemented

HUDTurnOnActionCycleAnim

HUDTurnOnActionCycleAnim(framesPerIcon, seconds, blinkFrames, iconA, iconB, player)
# Argument Read as Meaning
1 framesPerIcon number, truncated to an unsigned integer HUD updates each icon stays before switching to the other (scripts pass 3 or 4); 0 crashes the update (division by zero).
2 seconds number (single precision) Ignored: the callee overwrites it with a fixed 0.1 (scripts pass 0.1 or 0.15).
3 blinkFrames number, truncated to an unsigned integer The icon shows for this many HUD updates, then hides for as many (scripts pass 2 or 6); 0 means no blinking.
4 iconA number, truncated to an unsigned integer First button sprite word of the cycle (scripts pass 73 or 79).
5 iconB number, truncated to an unsigned integer Second button sprite word.
6 player number, truncated to an unsigned integer Player index (0 or 1): which player's action prompt (HUD +0x6b40 + player × 0x590).

Returns nothing.

Animates a player's action-prompt icon as a press this button hint: the icon alternates between two button sprites every framesPerIcon HUD updates and blinks on and off every blinkFrames updates, until HUDTurnOffActionCycleAnim. The scripts use it for the mash prompts in chases, fights and workouts.

Notes. Stores the two icons at prompt +0x440/+0x444, the rates at +0x448 and +0x458, sets the cycle flag +0x45c and hides the prompt widget until its next update; the icon sprite (+0x480) is set up with a fixed size 0.1. The cycle runs in ActionPrompt_Update (HUD: action prompts), so it shows only while that player's prompt itself is shown.

  • Evidence: confirmed (code) at 0x001b5a90, 0x0019f270, 0x0019f328; detail: traced
  • Wrapper 0x0036fc80 (registered by RegisterBindings); calls 0x001b5a90 HUD_TurnOnActionCycleAnim, 0x0019f270 ActionPrompt_StartCycle, 0x0019f328 ActionPrompt_UpdateCycle
  • Used by 7 of 467 script chunks (13 references); boot to menu: no; mission 1: no; result used: no
  • Later in the story: 6 of 28 levels, first level95 (the hub)
  • Coney: implemented

HUDTurnOnRadar

HUDTurnOnRadar(player)
# Argument Read as Meaning
1 player number, truncated to an integer; default 2 0 or 1 for one player's radar, 2 (the default) for both.

Returns nothing.

Shows the radar (minimap) for one or both players.

Notes. Also sets HUD +0x177ac (0x00617fec, the radars come back on their own after a letterbox) and +0x177b0, for both players whichever one is named. Behaviour: The in-game HUD.

  • Evidence: confirmed (code) at 0x001b4328; detail: traced
  • Wrapper 0x003700c8 (registered by RegisterBindings); calls 0x001b4328 HUD_RadarOn
  • Used by 52 of 467 script chunks (87 references); boot to menu: no; mission 1: yes; result used: no
  • Later in the story: 15 of 28 levels, first level80 (mission 2)
  • Coney: implemented

PreloadCredits

PreloadCredits()

No arguments.

Returns nothing.

Prepares the end credits (the HUD's credits element at HUD 0x00600840 + 0xea30): allocates the credit list (0x0050d340) and its string cache, runs the script credits.lua (whose CfgCredits calls fill the list), and creates the 70 text widgets the scroll reuses. Called by level84_end ahead of ShowCredits.

Notes. Sets the element's loaded flag (+0x44) and a duration-like field +0x16c to 8000 (ms, inferred); scroll fields +0x170-+0x18c are set here but their use is not traced. Calling it twice allocates again.

  • Evidence: confirmed (code) at 0x001b5fb0, 0x001b38b8, 0x001a9130; detail: traced
  • Wrapper 0x0036ee08 (registered by RegisterBindings); calls 0x001b5fb0, 0x001b38b8, 0x001a9130 Credits_Load
  • Used by 2 of 467 script chunks (2 references); boot to menu: no; mission 1: no; result used: no
  • Later in the story: 1 of 28 levels, first level84 (mission 18)
  • Coney: implemented

RestoreHud

RestoreHud()

No arguments.

Returns nothing.

Shows the whole HUD again after HideHud: each player panel that may show, each radar that is on, the score board when enabled; a radar turned off stays off.

Notes. The engine also calls it when a letterbox finishes going out (so after every cinematic scene), when play resumes after the pause menu, and after the wasted/busted camera. Behaviour: The in-game HUD.

  • Evidence: confirmed (code) at 0x001b3f78; detail: traced
  • Wrapper 0x00370cc0 (registered by RegisterBindings); calls 0x001b3f78 HUD_ShowAll
  • Used by 82 of 467 script chunks (199 references); boot to menu: no; mission 1: yes; result used: no
  • Later in the story: 26 of 28 levels, first level80 (mission 2)
  • Coney: implemented

ShowCredits

ShowCredits()

No arguments.

Returns nothing.

Starts the end-credits scroll on the HUD (called by level84_end): if PreloadCredits has loaded them and they are not already running, the credits element is marked running (+0xc = 1, +0x10 = 0) with the current time (+0x168) as its start.

Notes. Does nothing without PreloadCredits first. The update and drawing of the scroll (speed, end) are not traced.

  • Evidence: confirmed (code) at 0x001b5fd0, 0x001b38d8, 0x001a9480; detail: traced
  • Wrapper 0x0036ee28 (registered by RegisterBindings); calls 0x001b5fd0, 0x001b38d8, 0x001a9480 Credits_Start
  • Used by 1 of 467 script chunks (1 reference); boot to menu: no; mission 1: no; result used: no
  • Later in the story: 1 of 28 levels, first level84 (mission 18)
  • Coney: implemented

ShowGameStatsInterface

ShowGameStatsInterface(onClose)
# Argument Read as Meaning
1 onClose string Name of the Lua function called with no arguments when the screen closes (interned through the script system); nil for none.

Returns nothing.

Opens the game statistics screen (game mode 0x13, pushed on the mode stack) unless it is already the current mode; the world stops updating while it shows. When the player closes it, the sound bank is loaded back and onClose() is called.

Notes. The interned name is kept in a global (0x005e57d0), so a second call replaces the first's callback. What the screen lists (the statistics categories, inferred) and its enter path (vtable 0x005384c8) are not traced.

  • Evidence: confirmed (code) at 0x001551e0, 0x001594e0, 0x00159630; detail: traced
  • Wrapper 0x0036ec98 (registered by RegisterBindings); calls 0x001551e0 GameStats_Show, 0x001594e0 GameStats_SetCloseCallback, 0x00159630 GameStats_Exit
  • Used by 2 of 467 script chunks (2 references); boot to menu: no; mission 1: no; result used: no
  • Later in the story: 1 of 28 levels, first level95 (the hub)
  • Coney: implemented

ShowHud

ShowHud(n)
# Argument Read as Meaning
1 n number, truncated to an integer Ignored.

Returns nothing.

Does nothing in this build: the function it calls (0x001b3ec8) returns at once. Use RestoreHud to show the HUD.

Notes. level99's Main calls ShowHud(0) then RestoreHud().

  • Evidence: confirmed (code) at 0x001b3ec8; detail: traced
  • Wrapper 0x00370c68 (registered by RegisterBindings); calls 0x001b3ec8
  • Used by 5 of 467 script chunks (5 references); boot to menu: no; mission 1: yes; result used: no
  • Later in the story: 4 of 28 levels, first level34 (mission 4)
  • Coney: implemented

ShowOptionMenu

ShowOptionMenu()

No arguments.

Returns nothing.

Sets the game state's options-menu request flag (W_GameState + 0x11c = 1). No script calls it.

Notes. What reads the flag is not traced.

  • Evidence: confirmed (code) at 0x0041dd78; detail: brief
  • Wrapper 0x0036c238 (registered by RegisterBindings); calls 0x0041dd78 GameState_RequestOptionMenu
  • Used by no script on the disc
  • Coney: not implemented

ShowPlayerHud

ShowPlayerHud()

No arguments.

Returns nothing.

Lets both players' status panels show again (sets each panel's may show flag +0x4108) and shows each one that is attached to a player; the usual fade after inactivity then applies.

Notes. Panel calls 0x0020dfe0(panel, 1) then 0x0020e008; a panel not attached to a player stays hidden.

  • Evidence: confirmed (code) at 0x001b3f10, 0x001b2088; detail: traced
  • Wrapper 0x00370d00 (registered by RegisterBindings); calls 0x001b3f10 HUD_ShowPlayerPanels, 0x001b2088
  • Used by 3 of 467 script chunks (4 references); boot to menu: no; mission 1: no; result used: no
  • Later in the story: 3 of 28 levels, first level95 (the hub)
  • Coney: implemented

ShowProfileManager

ShowProfileManager(onQuickRumble, onStartGame)
# Argument Read as Meaning
1 onQuickRumble string Name of the Lua function the main menu calls for QUICK RUMBLE (level100 passes Menu.fadeToRMI).
2 onStartGame string Name of the Lua function called when a story game is started (Menu.startGame).

Returns nothing.

Opens the profile manager, the front end's menu flow (game mode 0x12), unless it is already on top, keeping both callback names interned. The menus end when a screen sets the done flag (0x0050f5b0); the mode then fades out over 1.0 s and calls the second callback. See Front end.

  • Evidence: confirmed (code) at 0x001552b0; detail: traced
  • Wrapper 0x0036eef8 (registered by RegisterBindings); calls 0x001552b0 ProfileManager_Show
  • Used by 2 of 467 script chunks (2 references); boot to menu: yes; mission 1: no; result used: no
  • Coney: implemented

ShowRumbleModeInterface

ShowRumbleModeInterface(onCancel, onStart, fromFrontEnd)
# Argument Read as Meaning
1 onCancel string Name of the Lua function called when the player backs out of the Rumble menu.
2 onStart string Name of the Lua function called with the chosen Rumble level number when a match starts.
3 fromFrontEnd number, truncated to an unsigned integer 1 when opened from the main menu (level100), 0 when opened in game (clubhouse, level101); any other value leaves the previous setting.

Returns nothing.

Opens the Rumble mode set-up menu (game mode 0x11) unless it is already open, keeping both callback names (interned, so they are looked up by name when they fire).

Notes. The names go to 0x005e67c0 / 0x005e67c4; the 0/1 flag to 0x0063ef64.

  • Evidence: confirmed (code) at 0x00155228; detail: traced
  • Wrapper 0x0036ecc8 (registered by RegisterBindings); calls 0x00155228 RumbleMenu_Show
  • Used by 37 of 467 script chunks (71 references); boot to menu: yes; mission 1: no; result used: no
  • Later in the story: 1 of 28 levels, first level95 (the hub)
  • Coney: partial

ShowRumbleModeIntro

ShowRumbleModeIntro(onDone, names)
# Argument Read as Meaning
1 onDone string Name of the Lua function called when the intro finishes.
2 names table of 10 strings (t[1]..t[10]) Table of up to 10 strings (the two gang names first, the rest empty in the scripts).

Returns nothing.

Shows the Rumble match introduction: the names one by one with the announcer, a prompt the player confirms, then a 3-2-1 countdown, after which onDone is called.

Notes. Opens the HUD's RM_Intro screen (0x001f9418, 0x001f9558; update 0x001fad40). Behaviour: Rumble.

  • Evidence: confirmed (code) at 0x001b5f88; detail: brief
  • Wrapper 0x0036ed48 (registered by RegisterBindings); calls 0x001b5f88
  • Used by 33 of 467 script chunks (33 references); boot to menu: no; mission 1: no; result used: no
  • Coney: implemented