diff --git a/autogen/convert_constants.py b/autogen/convert_constants.py index 404414a27..200e80ab3 100644 --- a/autogen/convert_constants.py +++ b/autogen/convert_constants.py @@ -3,6 +3,7 @@ from extract_constants import * import sys in_filename = 'autogen/lua_constants/built-in.lua' +deprecated_filename = 'autogen/lua_constants/deprecated.lua' out_filename = 'src/pc/lua/smlua_constants_autogen.c' out_filename_docs = 'docs/lua/constants.md' out_filename_defs = 'autogen/lua_definitions/constants.lua' @@ -54,6 +55,10 @@ in_files = [ exclude_constants = { "*": [ "^MAXCONTROLLERS$", "^AREA_[^T].*", "^AREA_T[HTO]", "^CONT_ERR.*", "^READ_MASK$", "^SIGN_RANGE$", ], + "include/sm64.h": [ "END_DEMO" ], + "include/types.h": [ "GRAPH_NODE_GUARD" ], + "src/audio/external.h": [ "DS_DIFF" ], + "src/game/save_file.h": [ "EEPROM_SIZE" ], "src/game/obj_behaviors.c": [ "^o$" ], "src/pc/djui/djui_console.h": [ "CONSOLE_MAX_TMP_BUFFER" ], "src/pc/lua/smlua_hooks.h": [ "MAX_HOOKED_MOD_MENU_ELEMENTS" ], @@ -102,6 +107,12 @@ include_constants = { ] } +# Constants that exist in the source code but should not appear +# in the documentation or VSCode autocomplete +hide_constants = { + "interaction.h": [ "INTERACT_UNKNOWN_08" ], +} + pretend_find = [ "SOUND_ARG_LOAD" ] @@ -113,7 +124,6 @@ verbose = len(sys.argv) > 1 and (sys.argv[1] == "-v" or sys.argv[1] == "--verbos overrideConstant = { 'VERSION_REGION': '"US"', } -forced_defines = ['F3DEX_GBI_2'] defined_values = { 'VERSION_US': True, 'VERSION_EU': False, @@ -314,7 +324,7 @@ def process_files(): ############################################################################ -def build_constant(processed_constant): +def build_constant(processed_constant, skip_constant): constants = processed_constant s = '' @@ -326,16 +336,25 @@ def build_constant(processed_constant): for c in constants: if c[0].startswith('#'): - s += '%s\n' % c[0] + if c[0].startswith('#ifdef'): + skip_constant = not defined_values[c[0].split()[1]] + elif c[0].startswith('#else'): + skip_constant = not skip_constant + elif c[0].startswith('#endif'): + skip_constant = False + continue + if skip_constant: continue s += '%s=%s\n' % (c[0], c[1].replace('"', "'")) - return s + return s, skip_constant def build_file(processed_file): s = '' + skip_constant = False for c in processed_file['constants']: - s += build_constant(c) + cs, skip_constant = build_constant(c, skip_constant) + s += cs return s @@ -348,18 +367,17 @@ def build_files(processed_files): def build_to_c(built_files): txt = '' - with open(get_path(in_filename), 'r') as f: - txt = '' - for line in f.readlines(): - txt += line.strip() + '\n' + for filename in [in_filename, deprecated_filename]: + with open(get_path(filename), 'r') as f: + for line in f.readlines(): + txt += line.strip() + '\n' txt += '\n' + built_files while ('\n\n' in txt): txt = txt.replace('\n\n', '\n') lines = txt.splitlines() - txt = "".join(f"#define {item}\n" for item in forced_defines) - txt += 'char gSmluaConstants[] = ""\n' + txt = 'char gSmluaConstants[] = ""\n' for line in lines: if line.startswith("#"): txt += '%s\n' % line @@ -370,6 +388,13 @@ def build_to_c(built_files): ############################################################################ +def doc_should_document(fname, identifier): + if fname in hide_constants: + for pattern in hide_constants[fname]: + if re.search(pattern, identifier) != None: + return False + return True + def doc_constant_index(processed_files): s = '# Supported Constants\n' for processed_file in processed_files: @@ -380,7 +405,7 @@ def doc_constant_index(processed_files): s += '\n
\n\n' return s -def doc_constant(processed_constant): +def doc_constant(fname, processed_constant): constants = processed_constant s = '' @@ -401,6 +426,8 @@ def doc_constant(processed_constant): for c in [processed_constant]: if c[0].startswith('#'): continue + if not doc_should_document(fname, c[0]): + continue s += '- %s\n' % (c[0]) return s @@ -409,7 +436,7 @@ def doc_file(processed_file): s = '## [%s](#%s)\n' % (processed_file['filename'], processed_file['filename']) constants = processed_file['constants'] for c in constants: - s += doc_constant(c) + s += doc_constant(processed_file['filename'], c) s += '\n[:arrow_up_small:](#)\n' s += '\n
\n\n' @@ -425,7 +452,7 @@ def doc_files(processed_files): ############################################################################ -def def_constant(processed_constant, skip_constant): +def def_constant(fname, processed_constant, skip_constant): global totalConstants constants = processed_constant s = '' @@ -461,6 +488,8 @@ def def_constant(processed_constant, skip_constant): continue if skip_constant: continue + if not doc_should_document(fname, c[0]): + continue if '"' in c[1]: s += '\n--- @type string\n' else: @@ -480,7 +509,7 @@ def build_to_def(processed_files): constants = file['constants'] skip_constant = False for c in constants: - cs, skip_constant = def_constant(c, skip_constant) + cs, skip_constant = def_constant(file['filename'], c, skip_constant) s += cs return s diff --git a/autogen/convert_functions.py b/autogen/convert_functions.py index f4d7a534d..79e6ee39d 100644 --- a/autogen/convert_functions.py +++ b/autogen/convert_functions.py @@ -1,10 +1,11 @@ -import os import re -import math +import sys from extract_functions import * from common import * from vec_types import * +verbose = len(sys.argv) > 1 and (sys.argv[1] == "-v" or sys.argv[1] == "--verbose") + rejects = "" integer_types = ["u8", "u16", "u32", "u64", "s8", "s16", "s32", "s64", "int"] number_types = ["f32", "float", "f64", "double"] @@ -1004,8 +1005,8 @@ def build_function(function, do_extern): if function['description'] != "": global total_doc_functions total_doc_functions += 1 - else: - print(function['filename'] + ": " + function['line']) + elif verbose: + print("UNDOCUMENTED: " + function['filename'] + ": " + function['line']) return s + "\n" @@ -1387,12 +1388,15 @@ def doc_files(processed_files): def_pointers = [] -def def_function(function): +def def_function(fname, function): s = '' if not function['implemented']: return '' fid = function['identifier'] + if not doc_should_document(fname, fid): + return '' + rtype, rlink = translate_type_to_lua(function['type']) param_str = ', '.join([x['identifier'] for x in function['params']]) @@ -1430,7 +1434,7 @@ def def_files(processed_files): s = '-- AUTOGENERATED FOR CODE EDITORS --\n\n' for processed_file in processed_files: for function in processed_file['functions']: - s += def_function(function) + s += def_function(processed_file['filename'], function) for def_pointer in def_pointers: s += '--- @alias %s %s\n' % (def_pointer, def_pointer[8:]) diff --git a/autogen/lua_constants/built-in.lua b/autogen/lua_constants/built-in.lua index a31e615d6..525b015fe 100644 --- a/autogen/lua_constants/built-in.lua +++ b/autogen/lua_constants/built-in.lua @@ -311,4 +311,5 @@ end -- legacy font -- ----------------- +--- @type integer FONT_TINY = -1 \ No newline at end of file diff --git a/autogen/lua_constants/deprecated.lua b/autogen/lua_constants/deprecated.lua new file mode 100644 index 000000000..d0cf2de20 --- /dev/null +++ b/autogen/lua_constants/deprecated.lua @@ -0,0 +1,2 @@ +--- @type integer +ANIM_FLAG_FORWARD = (1 << 1) diff --git a/autogen/lua_definitions/constants.lua b/autogen/lua_definitions/constants.lua index 4d9ca4ebe..3dbf19a26 100644 --- a/autogen/lua_definitions/constants.lua +++ b/autogen/lua_definitions/constants.lua @@ -313,6 +313,7 @@ end -- legacy font -- ----------------- +--- @type integer FONT_TINY = -1 --- @type integer @@ -2610,9 +2611,6 @@ DS_NONE = 0xff --- @type DialogSound --- | `DS_MAX` --- | `DS_NONE` ---- @type integer -DS_DIFF = DS_TUXIE - --- @type integer FIRST_PERSON_DEFAULT_FOV = 70 @@ -2866,9 +2864,6 @@ GEO_CONTEXT_AREA_INIT = 4 --- @type integer GEO_CONTEXT_HELD_OBJ = 5 ---- @type integer -INTERACT_UNKNOWN_08 = (1 << 8) - INTERACT_HOOT = (1 << 0) --- @type InteractionType INTERACT_GRABBABLE = (1 << 1) --- @type InteractionType INTERACT_DOOR = (1 << 2) --- @type InteractionType @@ -6484,9 +6479,6 @@ METAL = CAP --- @type PlayerPart --- | `PLAYER_PART_MAX` --- | `METAL` ---- @type integer -EEPROM_SIZE = 0x200 - --- @type integer NUM_SAVE_FILES = 4 @@ -7751,9 +7743,6 @@ ACT_HOLDING_BOWSER = 0x00000391 --- @type integer ACT_RELEASING_BOWSER = 0x00000392 ---- @type integer -END_DEMO = (1 << 7) - --- @type integer VALID_BUTTONS = (A_BUTTON | B_BUTTON | Z_TRIG | START_BUTTON | U_JPAD | D_JPAD | L_JPAD | R_JPAD | L_TRIG | R_TRIG | X_BUTTON | Y_BUTTON | U_CBUTTONS | D_CBUTTONS | L_CBUTTONS | R_CBUTTONS ) @@ -10739,7 +10728,7 @@ AREA_TIMER_TYPE_MAXIMUM = 2 --- @type AreaTimerType ANIM_FLAG_NOLOOP = (1 << 0) --- @type integer -ANIM_FLAG_FORWARD = (1 << 1) +ANIM_FLAG_BACKWARD = (1 << 1) --- @type integer ANIM_FLAG_2 = (1 << 2) @@ -10759,9 +10748,6 @@ ANIM_FLAG_6 = (1 << 6) --- @type integer ANIM_FLAG_7 = (1 << 7) ---- @type integer -GRAPH_NODE_GUARD = 0xAA - --- @type integer OBJECT_MAX_BHV_STACK = 16 diff --git a/autogen/lua_definitions/functions.lua b/autogen/lua_definitions/functions.lua index 2f5a38f04..fff66adad 100644 --- a/autogen/lua_definitions/functions.lua +++ b/autogen/lua_definitions/functions.lua @@ -6840,24 +6840,6 @@ function get_network_player_smallest_global() -- ... end ---- @param np NetworkPlayer ---- @param part PlayerPart ---- @param index integer ---- @return integer ---- Gets a red, green, or blue value from a part in `np`'s color palette -function network_player_get_palette_color_channel(np, part, index) - -- ... -end - ---- @param np NetworkPlayer ---- @param part PlayerPart ---- @param index integer ---- @return integer ---- Gets a red, green, or blue value from a part in `np`'s override color palette -function network_player_get_override_palette_color_channel(np, part, index) - -- ... -end - --- @param np NetworkPlayer --- @param part PlayerPart --- @param color Color @@ -9619,57 +9601,6 @@ function smlua_collision_util_find_surface_types(data) -- ... end ---- @deprecated ---- @param enable boolean ---- [DEPRECATED: Use `HOOK_ON_HUD_RENDER_BEHIND` instead] Sets if DJUI should render behind the vanilla HUD -function djui_hud_set_render_behind_hud(enable) - -- ... -end - ---- @deprecated ---- @param audio ModAudio ---- @return number ---- [DEPRECATED: There may be a replacement for this function in the future] -function audio_stream_get_tempo(audio) - -- ... -end - ---- @deprecated ---- @param audio ModAudio ---- @param tempo number ---- [DEPRECATED: There may be a replacement for this function in the future] -function audio_stream_set_tempo(audio, tempo) - -- ... -end - ---- @deprecated ---- @param audio ModAudio ---- @param initial_freq number ---- @param speed number ---- @param pitch boolean ---- [DEPRECATED: There may be a replacement for this function in the future] -function audio_stream_set_speed(audio, initial_freq, speed, pitch) - -- ... -end - ---- @deprecated ---- @param np NetworkPlayer ---- @param part PlayerPart ---- @param color Color ---- [DEPRECATED: Use `network_player_set_override_palette_color` instead] -function network_player_color_to_palette(np, part, color) - -- ... -end - ---- @deprecated ---- @param np NetworkPlayer ---- @param part PlayerPart ---- @param out Color ---- [DEPRECATED: Use `network_player_get_palette_color` or `network_player_get_override_palette_color` instead] -function network_player_palette_to_color(np, part, out) - -- ... -end - --- @param fov number --- Sets the override FOV function set_override_fov(fov) diff --git a/docs/lua/constants.md b/docs/lua/constants.md index 9191550a7..2b33f2407 100644 --- a/docs/lua/constants.md +++ b/docs/lua/constants.md @@ -1219,8 +1219,6 @@ | DS_YOSHI | 10 | | DS_MAX | 11 | | DS_NONE | 0xff | -- DS_DIFF -- DS_DIFF [:arrow_up_small:](#) @@ -1360,7 +1358,6 @@
## [interaction.h](#interaction.h) -- INTERACT_UNKNOWN_08 ### [enum InteractionType](#InteractionType) | Identifier | Value | @@ -2915,7 +2912,6 @@
## [save_file.h](#save_file.h) -- EEPROM_SIZE - NUM_SAVE_FILES ### [enum SaveFileIndex](#SaveFileIndex) @@ -3373,7 +3369,6 @@ - ACT_PICKING_UP_BOWSER - ACT_HOLDING_BOWSER - ACT_RELEASING_BOWSER -- END_DEMO - VALID_BUTTONS - C_BUTTONS @@ -4588,14 +4583,13 @@ | AREA_TIMER_TYPE_LOOP | 1 | | AREA_TIMER_TYPE_MAXIMUM | 2 | - ANIM_FLAG_NOLOOP -- ANIM_FLAG_FORWARD +- ANIM_FLAG_BACKWARD - ANIM_FLAG_2 - ANIM_FLAG_HOR_TRANS - ANIM_FLAG_VERT_TRANS - ANIM_FLAG_5 - ANIM_FLAG_6 - ANIM_FLAG_7 -- GRAPH_NODE_GUARD - OBJECT_MAX_BHV_STACK - OBJECT_NUM_REGULAR_FIELDS - OBJECT_NUM_CUSTOM_FIELDS diff --git a/include/types.h b/include/types.h index 8276a2c19..b04e647d8 100644 --- a/include/types.h +++ b/include/types.h @@ -86,7 +86,7 @@ struct VblankHandler }; #define ANIM_FLAG_NOLOOP (1 << 0) // 0x01 -#define ANIM_FLAG_FORWARD (1 << 1) // 0x02 +#define ANIM_FLAG_BACKWARD (1 << 1) // 0x02 #define ANIM_FLAG_2 (1 << 2) // 0x04 #define ANIM_FLAG_HOR_TRANS (1 << 3) // 0x08 #define ANIM_FLAG_VERT_TRANS (1 << 4) // 0x10 diff --git a/src/engine/graph_node.c b/src/engine/graph_node.c index 7716efb0c..790f91913 100644 --- a/src/engine/graph_node.c +++ b/src/engine/graph_node.c @@ -798,7 +798,7 @@ void geo_obj_init_animation(struct GraphNodeObject *graphNode, const struct Anim if (graphNode->animInfo.curAnim != anim) { graphNode->animInfo.curAnim = (struct Animation*)anim; - graphNode->animInfo.animFrame = anim->startFrame + ((anim->flags & ANIM_FLAG_FORWARD) ? 1 : -1); + graphNode->animInfo.animFrame = anim->startFrame + ((anim->flags & ANIM_FLAG_BACKWARD) ? 1 : -1); graphNode->animInfo.animAccel = 0; graphNode->animInfo.animYTrans = 0; } @@ -815,7 +815,7 @@ void geo_obj_init_animation_accel(struct GraphNodeObject *graphNode, const struc graphNode->animInfo.curAnim = (struct Animation*)anim; graphNode->animInfo.animYTrans = 0; graphNode->animInfo.animFrameAccelAssist = - (anim->startFrame << 16) + ((anim->flags & ANIM_FLAG_FORWARD) ? animAccel : -animAccel); + (anim->startFrame << 16) + ((anim->flags & ANIM_FLAG_BACKWARD) ? animAccel : -animAccel); graphNode->animInfo.animFrame = graphNode->animInfo.animFrameAccelAssist >> 16; } @@ -900,7 +900,7 @@ s16 geo_update_animation_frame(struct AnimInfo *obj, s32 *accelAssist) { return obj->animFrame; } - if (anim->flags & ANIM_FLAG_FORWARD) { + if (anim->flags & ANIM_FLAG_BACKWARD) { if (obj->animAccel) { result = obj->animFrameAccelAssist - obj->animAccel; } else { diff --git a/src/game/mario.c b/src/game/mario.c index bf08e2c74..bc5d14401 100644 --- a/src/game/mario.c +++ b/src/game/mario.c @@ -95,7 +95,7 @@ static s16 mario_set_animation_internal(struct MarioState *m, s32 targetAnimID, if (targetAnim->flags & ANIM_FLAG_2) { o->header.gfx.animInfo.animFrameAccelAssist = (targetAnim->startFrame << 0x10); } else { - if (targetAnim->flags & ANIM_FLAG_FORWARD) { + if (targetAnim->flags & ANIM_FLAG_BACKWARD) { o->header.gfx.animInfo.animFrameAccelAssist = (targetAnim->startFrame << 0x10) + accel; } else { o->header.gfx.animInfo.animFrameAccelAssist = (targetAnim->startFrame << 0x10) - accel; @@ -151,13 +151,13 @@ void set_anim_to_frame(struct MarioState *m, s16 animFrame) { if (animInfo == NULL) { return; } if (animInfo->animAccel) { - if (curAnim != NULL && curAnim->flags & ANIM_FLAG_FORWARD) { + if (curAnim != NULL && curAnim->flags & ANIM_FLAG_BACKWARD) { animInfo->animFrameAccelAssist = (animFrame << 0x10) + animInfo->animAccel; } else { animInfo->animFrameAccelAssist = (animFrame << 0x10) - animInfo->animAccel; } } else { - if (curAnim != NULL && curAnim->flags & ANIM_FLAG_FORWARD) { + if (curAnim != NULL && curAnim->flags & ANIM_FLAG_BACKWARD) { animInfo->animFrame = animFrame + 1; } else { animInfo->animFrame = animFrame - 1; @@ -176,7 +176,7 @@ s32 is_anim_past_frame(struct MarioState *m, s16 animFrame) { struct Animation *curAnim = animInfo->curAnim; if (animInfo->animAccel) { - if (curAnim->flags & ANIM_FLAG_FORWARD) { + if (curAnim->flags & ANIM_FLAG_BACKWARD) { isPastFrame = (animInfo->animFrameAccelAssist > acceleratedFrame) && (acceleratedFrame >= (animInfo->animFrameAccelAssist - animInfo->animAccel)); @@ -186,7 +186,7 @@ s32 is_anim_past_frame(struct MarioState *m, s16 animFrame) { && (acceleratedFrame <= (animInfo->animFrameAccelAssist + animInfo->animAccel)); } } else { - if (curAnim->flags & ANIM_FLAG_FORWARD) { + if (curAnim->flags & ANIM_FLAG_BACKWARD) { isPastFrame = (animInfo->animFrame == (animFrame + 1)); } else { isPastFrame = ((animInfo->animFrame + 1) == animFrame); diff --git a/src/pc/lua/smlua_constants_autogen.c b/src/pc/lua/smlua_constants_autogen.c index eb51f92ca..f76efdff8 100644 --- a/src/pc/lua/smlua_constants_autogen.c +++ b/src/pc/lua/smlua_constants_autogen.c @@ -1,4 +1,3 @@ -#define F3DEX_GBI_2 char gSmluaConstants[] = "" "math.randomseed(get_time())\n" "_SyncTable = {\n" @@ -279,7 +278,10 @@ char gSmluaConstants[] = "" "-----------------\n" "-- legacy font --\n" "-----------------\n" +"--- @type integer\n" "FONT_TINY = -1\n" +"--- @type integer\n" +"ANIM_FLAG_FORWARD = (1 << 1)\n" "INSTANT_WARP_INDEX_START=0x00\n" "INSTANT_WARP_INDEX_STOP=0x04\n" "MAX_AREAS=16\n" @@ -1302,16 +1304,10 @@ char gSmluaConstants[] = "" "DS_YOSHI=10\n" "DS_MAX=11\n" "DS_NONE=0xff\n" -#ifdef VERSION_JP -"DS_DIFF=DS_KOOPA\n" -#else // #ifdef VERSION_JP -"DS_DIFF=DS_TUXIE\n" -#endif // #ifdef VERSION_JP "FIRST_PERSON_DEFAULT_FOV=70\n" "FIRST_PERSON_MARIO_HEAD_POS=120\n" "FIRST_PERSON_MARIO_HEAD_POS_SHORT=60\n" "G_COPYMEM=0xd2\n" -#ifdef F3DEX_GBI_2 "G_NOOP=0x00\n" "G_SETOTHERMODE_H=0xe3\n" "G_SETOTHERMODE_L=0xe2\n" @@ -1326,20 +1322,6 @@ char gSmluaConstants[] = "" "G_VTX=0x01\n" "G_TRI1=0x05\n" "G_TRI2=0x06\n" -#else // #ifdef F3DEX_GBI_2 -"G_MTX=1\n" -"G_MOVEMEM=3\n" -"G_VTX=4\n" -"G_DL=6\n" -"G_TRI1=(G_IMMFIRST-0)\n" -"G_POPMTX=(G_IMMFIRST-2)\n" -"G_MOVEWORD=(G_IMMFIRST-3)\n" -"G_TEXTURE=(G_IMMFIRST-4)\n" -"G_SETOTHERMODE_H=(G_IMMFIRST-5)\n" -"G_SETOTHERMODE_L=(G_IMMFIRST-6)\n" -"G_ENDDL=(G_IMMFIRST-7)\n" -"G_NOOP=0xc0\n" -#endif // #ifdef F3DEX_GBI_2 "G_SETCIMG=0xff\n" "G_SETZIMG=0xfe\n" "G_SETTIMG=0xfd\n" @@ -2796,7 +2778,6 @@ char gSmluaConstants[] = "" "EMBLEM=7\n" "PLAYER_PART_MAX=8\n" "METAL=CAP\n" -"EEPROM_SIZE=0x200\n" "NUM_SAVE_FILES=4\n" "SAVE_FILE_A=0\n" "SAVE_FILE_B=1\n" @@ -3230,7 +3211,6 @@ char gSmluaConstants[] = "" "ACT_PICKING_UP_BOWSER=0x00000390\n" "ACT_HOLDING_BOWSER=0x00000391\n" "ACT_RELEASING_BOWSER=0x00000392\n" -"END_DEMO=(1 << 7)\n" "VALID_BUTTONS=(A_BUTTON | B_BUTTON | Z_TRIG | START_BUTTON | U_JPAD | D_JPAD | L_JPAD | R_JPAD | L_TRIG | R_TRIG | X_BUTTON | Y_BUTTON | U_CBUTTONS | D_CBUTTONS | L_CBUTTONS | R_CBUTTONS )\n" "C_BUTTONS=(U_CBUTTONS | D_CBUTTONS | L_CBUTTONS | R_CBUTTONS )\n" "HOOK_UPDATE=0\n" @@ -3901,11 +3881,7 @@ char gSmluaConstants[] = "" "SOUND_GENERAL_UNKNOWN1_2=SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x25, 0x00, SOUND_VIBRATO | SOUND_DISCRETE)\n" "SOUND_GENERAL_CLAM_SHELL2=SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x26, 0x40, SOUND_DISCRETE)\n" "SOUND_GENERAL_CLAM_SHELL3=SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x27, 0x40, SOUND_DISCRETE)\n" -#ifdef VERSION_JP -"SOUND_GENERAL_PAINTING_EJECT=SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x28, 0x00, SOUND_CONSTANT_FREQUENCY | SOUND_DISCRETE)\n" -#else // #ifdef VERSION_JP "SOUND_GENERAL_PAINTING_EJECT=SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x28, 0x00, SOUND_NO_VOLUME_LOSS | SOUND_CONSTANT_FREQUENCY | SOUND_DISCRETE)\n" -#endif // #ifdef VERSION_JP "SOUND_GENERAL_LEVEL_SELECT_CHANGE=SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x2B, 0x00, SOUND_DISCRETE)\n" "SOUND_GENERAL_PLATFORM=SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x2D, 0x80, SOUND_DISCRETE)\n" "SOUND_GENERAL_DONUT_PLATFORM_EXPLOSION=SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x2E, 0x20, SOUND_DISCRETE)\n" @@ -4380,14 +4356,13 @@ char gSmluaConstants[] = "" "AREA_TIMER_TYPE_LOOP=1\n" "AREA_TIMER_TYPE_MAXIMUM=2\n" "ANIM_FLAG_NOLOOP=(1 << 0)\n" -"ANIM_FLAG_FORWARD=(1 << 1)\n" +"ANIM_FLAG_BACKWARD=(1 << 1)\n" "ANIM_FLAG_2=(1 << 2)\n" "ANIM_FLAG_HOR_TRANS=(1 << 3)\n" "ANIM_FLAG_VERT_TRANS=(1 << 4)\n" "ANIM_FLAG_5=(1 << 5)\n" "ANIM_FLAG_6=(1 << 6)\n" "ANIM_FLAG_7=(1 << 7)\n" -"GRAPH_NODE_GUARD=0xAA\n" "OBJECT_MAX_BHV_STACK=16\n" "OBJECT_NUM_REGULAR_FIELDS=0x50\n" "OBJECT_NUM_CUSTOM_FIELDS=0x40\n"