![]() |
Super Mario 64 Source
A Super Mario 64 decompilation, brought to you by a bunch of clever folks.
|
#include <ultra64.h>
#include "sm64.h"
#include "memory.h"
#include "types.h"
#include "audio/external.h"
#include "seq_ids.h"
#include "game.h"
#include "save_file.h"
#include "level_update.h"
#include "camera.h"
#include "text_strings.h"
#include "segment2.h"
#include "segment7.h"
#include "eu_translation.h"
#include "ingame_menu.h"
#include "engine/math_util.h"
Data Structures | |
struct | MultiTextEntry |
Macros | |
#define | ASCII_TO_DIALOG(asc) |
#define | DEFAULT_DIALOG_BOX_ANGLE 90.0f |
#define | DEFAULT_DIALOG_BOX_SCALE 19.0f |
#define | MAX_STRING_WIDTH 16 |
#define | TEXT_THE_RAW ASCII_TO_DIALOG('t'), ASCII_TO_DIALOG('h'), ASCII_TO_DIALOG('e'), 0x00 |
#define | TEXT_YOU_RAW ASCII_TO_DIALOG('y'), ASCII_TO_DIALOG('o'), ASCII_TO_DIALOG('u'), 0x00 |
#define | X_VAL1 -7.0f |
#define | Y_VAL1 5.0 |
#define | Y_VAL2 5.0f |
#define | X_VAL3 0.0f |
#define | Y_VAL3 16 |
#define | X_VAL4_1 56 |
#define | X_VAL4_2 47 |
#define | Y_VAL4_1 2 |
#define | Y_VAL4_2 16 |
#define | DIAG_VAL1 16 |
#define | DIAG_VAL3 132 |
#define | DIAG_VAL4 5 |
#define | DIAG_VAL2 240 |
#define | PEACH_MESSAGE_TIMER 250 |
#define | STR_X 38 |
#define | STR_Y 142 |
#define | CRS_NUM_X1 100 |
#define | TXT_STAR_X 98 |
#define | ACT_NAME_X 116 |
#define | LVL_NAME_X 117 |
#define | TXT1_X 3 |
#define | TXT2_X 119 |
#define | Y_VAL7 2 |
#define | X_VAL8 4 |
#define | Y_VAL8 2 |
#define | TXT_HISCORE_X 109 |
#define | TXT_HISCORE_Y 36 |
#define | TXT_CONGRATS_X 70 |
#define | TXT_NAME_X1 71 |
#define | TXT_NAME_X2 69 |
#define | CRS_NUM_X2 104 |
#define | CRS_NUM_X3 102 |
#define | TXT_CLEAR_X1 get_str_width(name) + 81 |
#define | TXT_CLEAR_X2 get_str_width(name) + 79 |
#define | TXT_SAVECONT_Y 0 |
#define | TXT_SAVEQUIT_Y 20 |
#define | TXT_CONTNOSAVE_Y 40 |
#define | X_VAL9 x |
Enumerations | |
enum | DialogBoxState { DIALOG_STATE_OPENING, DIALOG_STATE_WAITBUTTON, DIALOG_STATE_SCROLLING, DIALOG_STATE_CLOSING } |
enum | DialogBoxType { DIALOG_TYPE_ROTATE, DIALOG_TYPE_ZOOM } |
enum | HudSpecialChars { HUD_CHAR_SYM_X = 0x32, HUD_CHAR_SYM_COIN = 0x33, HUD_CHAR_SYM_MARIO = 0x34, HUD_CHAR_SYM_STAR = 0x35, HUD_CHAR_SPACE = 0x9E } |
enum | DialogSpecialChars { DIALOG_CHAR_HANDAKUTEN = 0x6E, DIALOG_CHAR_COMMA = 0x6F, DIALOG_CHAR_SPACE = 0x9E, DIALOG_CHAR_STAR_COUNT = 0xE0, DIALOG_CHAR_PREFIX_DAKUTEN = 0xF0, DIALOG_CHAR_PREFIX_HANDAKUTEN = 0xF1, DIALOG_CHAR_STAR_FILLED = 0xFA, DIALOG_CHAR_STAR_OPEN = 0xFD, DIALOG_CHAR_NEWLINE = 0xFE, DIALOG_CHAR_TERMINATOR = 0xFF } |
enum | DialogMark { DIALOG_MARK_NONE = 0, DIALOG_MARK_DAKUTEN = 1, DIALOG_MARK_HANDAKUTEN = 2 } |
enum | MutliStringIDs { STRING_THE, STRING_YOU } |
#define ACT_NAME_X 116 |
#define ASCII_TO_DIALOG | ( | asc | ) |
#define CRS_NUM_X1 100 |
#define CRS_NUM_X2 104 |
#define CRS_NUM_X3 102 |
#define DEFAULT_DIALOG_BOX_ANGLE 90.0f |
#define DEFAULT_DIALOG_BOX_SCALE 19.0f |
#define DIAG_VAL1 16 |
#define DIAG_VAL2 240 |
#define DIAG_VAL3 132 |
#define DIAG_VAL4 5 |
#define LVL_NAME_X 117 |
#define MAX_STRING_WIDTH 16 |
#define PEACH_MESSAGE_TIMER 250 |
#define STR_X 38 |
#define STR_Y 142 |
#define TEXT_THE_RAW ASCII_TO_DIALOG('t'), ASCII_TO_DIALOG('h'), ASCII_TO_DIALOG('e'), 0x00 |
#define TEXT_YOU_RAW ASCII_TO_DIALOG('y'), ASCII_TO_DIALOG('o'), ASCII_TO_DIALOG('u'), 0x00 |
#define TXT1_X 3 |
#define TXT2_X 119 |
#define TXT_CLEAR_X1 get_str_width(name) + 81 |
#define TXT_CLEAR_X2 get_str_width(name) + 79 |
#define TXT_CONGRATS_X 70 |
#define TXT_CONTNOSAVE_Y 40 |
#define TXT_HISCORE_X 109 |
#define TXT_HISCORE_Y 36 |
#define TXT_NAME_X1 71 |
#define TXT_NAME_X2 69 |
#define TXT_SAVECONT_Y 0 |
#define TXT_SAVEQUIT_Y 20 |
#define TXT_STAR_X 98 |
#define X_VAL1 -7.0f |
#define X_VAL3 0.0f |
#define X_VAL4_1 56 |
#define X_VAL4_2 47 |
#define X_VAL8 4 |
#define X_VAL9 x |
#define Y_VAL1 5.0 |
#define Y_VAL2 5.0f |
#define Y_VAL3 16 |
#define Y_VAL4_1 2 |
#define Y_VAL4_2 16 |
#define Y_VAL7 2 |
#define Y_VAL8 2 |
enum DialogBoxState |
enum DialogBoxType |
enum DialogMark |
enum DialogSpecialChars |
enum HudSpecialChars |
enum MutliStringIDs |
for | ( | ) |
void func_802D8134 | ( | struct DialogEntry * | dialog, |
s8 | sp47 | ||
) |
void func_802D8980 | ( | s8 | sp63, |
struct DialogEntry * | dialog, | ||
s8 | sp5B | ||
) |
Probably originally a >=, but later replaced with an == and an else statement.
Gfx castle_grounds_seg7_dl_0700EA58[] |
Gfx castle_grounds_seg7_us_dl_0700F2E8[] |
Gfx coin_seg3_dl_03007940[] |
Gfx coin_seg3_dl_03007968[] |
Gfx coin_seg3_dl_03007990[] |
Gfx coin_seg3_dl_030079B8[] |
s16 D_8033042C = 0 |
s8 D_80330430 = 1 |
s8 D_80330434 = 0 |
u8 D_80330438 = 0 |
u8 D_8033043C = 0 |
s16 D_8033047C = -1 |
s8 D_80330530 = 1 |
s8 D_80330534 = 1 |
s8 D_803305C0 = 0 |
s32 D_803305C4 = 0 |
s32 D_803305C8 = 0 |
s8 D_803305CC = 0 |
u16 D_80360080 |
u16 D_80360088 |
s8 D_8036008E |
s16 gCurrCourseNum |
s16 gCurrSaveFileNum |
s16 gCutsceneMsgDuration = -1 |
u16 gCutsceneMsgFade = 0 |
s16 gCutsceneMsgIndex = -1 |
s16 gCutsceneMsgTimer = 0 |
s16 gCutsceneMsgXOffset |
s16 gCutsceneMsgYOffset |
f32 gDialogBoxOpenTimer = DEFAULT_DIALOG_BOX_ANGLE |
f32 gDialogBoxScale = DEFAULT_DIALOG_BOX_SCALE |
s8 gDialogBoxState = DIALOG_STATE_OPENING |
s8 gDialogBoxType = DIALOG_TYPE_ROTATE |
u8 gDialogCharWidths[256] |
s16 gDialogID = -1 |
s32 gDialogResponse = 0 |
s16 gDialogScrollOffsetY = 0 |
s32 gDialogVariable |
Gfx* gDisplayListHead |
u8 gEndCutsceneStrEn0[] = { TEXT_FILE_MARIO_EXCLAMATION } |
u8 gEndCutsceneStrEn1[] = { TEXT_POWER_STARS_RESTORED } |
u8 gEndCutsceneStrEn2[] = { TEXT_THANKS_TO_YOU } |
u8 gEndCutsceneStrEn3[] = { TEXT_THANK_YOU_MARIO } |
u8 gEndCutsceneStrEn4[] = { TEXT_SOMETHING_SPECIAL } |
u8 gEndCutsceneStrEn5[] = { TEXT_COME_ON_EVERYBODY } |
u8 gEndCutsceneStrEn6[] = { TEXT_LETS_HAVE_CAKE } |
u8 gEndCutsceneStrEn7[] = { TEXT_FOR_MARIO } |
u8 gEndCutsceneStrEn8[] = { TEXT_FILE_MARIO_QUESTION } |
u8* gEndCutsceneStringsEn[] |
s32 gGlobalTimer |
u8 gHudSymCoin[] = { HUD_CHAR_SYM_COIN, 0xFF } |
u8 gHudSymX[] = { HUD_CHAR_SYM_X, 0xFF } |
u8 gLastCompletedCourseNum |
u8 gLastCompletedStarNum |
s8 gLastDialogLineNum |
s16 gLastDialogPageStrPos = 0 |
u8 main_menu_seg7_table_0700ABD0[] |
struct MultiTextEntry textLengths[2] |