Refresh 3

This commit is contained in:
n64
2019-11-03 14:36:27 -05:00
parent 6b8bc9b9ec
commit a7c423cb43
4603 changed files with 475500 additions and 437701 deletions

122
levels/intro/geo.c Normal file
View File

@@ -0,0 +1,122 @@
#include <ultra64.h>
#include "sm64.h"
#include "geo_commands.h"
#include "game/level_geo.h"
#include "game/geo_misc.h"
#include "game/camera.h"
#include "game/moving_texture.h"
#include "game/screen_transition.h"
#include "game/paintings.h"
#include "menu/debug_level_select.h"
#include "menu/intro_geo.h"
#include "levels/intro/header.h"
// 0x0E0002D0
const GeoLayout intro_geo_0002D0[] = {
GEO_NODE_SCREEN_AREA(0, SCREEN_WIDTH/2, SCREEN_HEIGHT/2, SCREEN_WIDTH/2, SCREEN_HEIGHT/2),
GEO_OPEN_NODE(),
GEO_ZBUFFER(0),
GEO_OPEN_NODE(),
GEO_NODE_ORTHO(100),
GEO_OPEN_NODE(),
GEO_BACKGROUND_COLOR(0x0001),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_ZBUFFER(1),
GEO_OPEN_NODE(),
GEO_CAMERA_FRUSTUM(45, 128, 16384),
GEO_OPEN_NODE(),
GEO_CAMERA(0, 0, 0, 3200, 0, 0, 0, 0x00000000),
GEO_OPEN_NODE(),
GEO_ASM(0, geo18_title_screen),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_ZBUFFER(0),
GEO_OPEN_NODE(),
GEO_ASM(0, geo18_fade_transition),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_END(),
};
// 0x0E00035C
const GeoLayout intro_geo_00035C[] = {
GEO_NODE_SCREEN_AREA(0, SCREEN_WIDTH/2, SCREEN_HEIGHT/2, SCREEN_WIDTH/2, SCREEN_HEIGHT/2),
GEO_OPEN_NODE(),
GEO_ZBUFFER(0),
GEO_OPEN_NODE(),
GEO_NODE_ORTHO(100),
GEO_OPEN_NODE(),
GEO_ASM(0, geo18_intro_backdrop),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_ZBUFFER(1),
GEO_OPEN_NODE(),
GEO_CAMERA_FRUSTUM(45, 128, 16384),
GEO_OPEN_NODE(),
GEO_ASM(2, Geo18_802764B0),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_END(),
};
// 0x0E0003B8
const GeoLayout intro_geo_0003B8[] = {
GEO_NODE_SCREEN_AREA(0, SCREEN_WIDTH/2, SCREEN_HEIGHT/2, SCREEN_WIDTH/2, SCREEN_HEIGHT/2),
GEO_OPEN_NODE(),
GEO_ZBUFFER(0),
GEO_OPEN_NODE(),
GEO_NODE_ORTHO(100),
GEO_OPEN_NODE(),
GEO_ASM(0, geo18_game_over_tile),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_ZBUFFER(1),
GEO_OPEN_NODE(),
GEO_CAMERA_FRUSTUM(45, 128, 16384),
GEO_OPEN_NODE(),
GEO_ASM(3, Geo18_802764B0),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_END(),
};
// 0x0E000414
const GeoLayout intro_geo_000414[] = {
GEO_NODE_SCREEN_AREA(0, SCREEN_WIDTH/2, SCREEN_HEIGHT/2, SCREEN_WIDTH/2, SCREEN_HEIGHT/2),
GEO_OPEN_NODE(),
GEO_ZBUFFER(0),
GEO_OPEN_NODE(),
GEO_NODE_ORTHO(100),
GEO_OPEN_NODE(),
GEO_ASM(0, geo18_intro_backdrop),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_ZBUFFER(1),
GEO_OPEN_NODE(),
GEO_CAMERA_FRUSTUM(45, 128, 16384),
GEO_OPEN_NODE(),
GEO_CAMERA(0, 0, 0, 1200, 0, 0, 0, 0x00000000),
GEO_OPEN_NODE(),
GEO_TRANSLATE_NODE_WITH_DL(LAYER_OPAQUE, -230, 300, 0, debug_level_select_dl_07000858),
GEO_TRANSLATE_NODE_WITH_DL(LAYER_OPAQUE, -120, 300, 0, debug_level_select_dl_07001100),
GEO_TRANSLATE_NODE_WITH_DL(LAYER_OPAQUE, -20, 300, 0, debug_level_select_dl_07001BA0),
GEO_TRANSLATE_NODE_WITH_DL(LAYER_OPAQUE, 100, 300, 0, debug_level_select_dl_070025F0),
GEO_TRANSLATE_NODE_WITH_DL(LAYER_OPAQUE, 250, 300, 0, debug_level_select_dl_07003258),
GEO_TRANSLATE_NODE_WITH_DL(LAYER_OPAQUE, -310, 100, 0, debug_level_select_dl_07003DB8),
GEO_TRANSLATE_NODE_WITH_DL(LAYER_OPAQUE, -90, 100, 0, debug_level_select_dl_070048C8),
GEO_TRANSLATE_NODE_WITH_DL(LAYER_OPAQUE, 60, 100, 0, debug_level_select_dl_07005558),
GEO_TRANSLATE_NODE_WITH_DL(LAYER_OPAQUE, 180, 100, 0, debug_level_select_dl_070059F8),
GEO_TRANSLATE_NODE_WITH_DL(LAYER_OPAQUE, 300, 100, 0, debug_level_select_dl_070063B0),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_END(),
};

View File

@@ -1,100 +0,0 @@
glabel intro_geo_0002D0 # 0x0E0002D0
geo_node_screen_area 0, SCREEN_WIDTH/2, SCREEN_HEIGHT/2, SCREEN_WIDTH/2, SCREEN_HEIGHT/2
geo_open_node
geo_zbuffer 0
geo_open_node
geo_node_ortho 100
geo_open_node
geo_background 0x0001
geo_close_node
geo_close_node
geo_zbuffer 1
geo_open_node
geo_camera_frustum 45, 128, 16384
geo_open_node
geo_camera 0, 0, 0, 3200, 0, 0, 0, 0x00000000
geo_open_node
geo_asm 0, geo18_title_screen
geo_close_node
geo_close_node
geo_close_node
geo_zbuffer 0
geo_open_node
geo_asm 0, geo18_fade_transition
geo_close_node
geo_close_node
geo_end
glabel intro_geo_00035C # 0x0E00035C
geo_node_screen_area 0, SCREEN_WIDTH/2, SCREEN_HEIGHT/2, SCREEN_WIDTH/2, SCREEN_HEIGHT/2
geo_open_node
geo_zbuffer 0
geo_open_node
geo_node_ortho 100
geo_open_node
geo_asm 0, geo18_intro_backdrop
geo_close_node
geo_close_node
geo_zbuffer 1
geo_open_node
geo_camera_frustum 45, 128, 16384
geo_open_node
geo_asm 2, Geo18_802764B0
geo_close_node
geo_close_node
geo_close_node
geo_end
glabel intro_geo_0003B8 # 0x0E0003B8
geo_node_screen_area 0, SCREEN_WIDTH/2, SCREEN_HEIGHT/2, SCREEN_WIDTH/2, SCREEN_HEIGHT/2
geo_open_node
geo_zbuffer 0
geo_open_node
geo_node_ortho 100
geo_open_node
geo_asm 0, geo18_game_over_tile
geo_close_node
geo_close_node
geo_zbuffer 1
geo_open_node
geo_camera_frustum 45, 128, 16384
geo_open_node
geo_asm 3, Geo18_802764B0
geo_close_node
geo_close_node
geo_close_node
geo_end
glabel intro_geo_000414 # 0x0E000414
geo_node_screen_area 0, SCREEN_WIDTH/2, SCREEN_HEIGHT/2, SCREEN_WIDTH/2, SCREEN_HEIGHT/2
geo_open_node
geo_zbuffer 0
geo_open_node
geo_node_ortho 100
geo_open_node
geo_asm 0, geo18_intro_backdrop
geo_close_node
geo_close_node
geo_zbuffer 1
geo_open_node
geo_camera_frustum 45, 128, 16384
geo_open_node
geo_camera 0, 0, 0, 1200, 0, 0, 0, 0x00000000
geo_open_node
geo_translate_node LAYER_OPAQUE, -230, 300, 0, debug_level_select_dl_07000858
geo_translate_node LAYER_OPAQUE, -120, 300, 0, debug_level_select_dl_07001100
geo_translate_node LAYER_OPAQUE, -20, 300, 0, debug_level_select_dl_07001BA0
geo_translate_node LAYER_OPAQUE, 100, 300, 0, debug_level_select_dl_070025F0
geo_translate_node LAYER_OPAQUE, 250, 300, 0, debug_level_select_dl_07003258
geo_translate_node LAYER_OPAQUE, -310, 100, 0, debug_level_select_dl_07003DB8
geo_translate_node LAYER_OPAQUE, -90, 100, 0, debug_level_select_dl_070048C8
geo_translate_node LAYER_OPAQUE, 60, 100, 0, debug_level_select_dl_07005558
geo_translate_node LAYER_OPAQUE, 180, 100, 0, debug_level_select_dl_070059F8
geo_translate_node LAYER_OPAQUE, 300, 100, 0, debug_level_select_dl_070063B0
geo_close_node
geo_close_node
geo_close_node
geo_close_node
geo_end
.balign 16

29
levels/intro/header.h Normal file
View File

@@ -0,0 +1,29 @@
#ifndef INTRO_HEADER_H
#define INTRO_HEADER_H
#include "types.h"
// geo
extern const GeoLayout intro_geo_0002D0[];
extern const GeoLayout intro_geo_00035C[];
extern const GeoLayout intro_geo_0003B8[];
extern const GeoLayout intro_geo_000414[];
// leveldata
extern const Gfx intro_seg7_dl_0700B3A0[];
extern const Gfx intro_seg7_dl_0700C6A0[];
extern const f32 intro_seg7_table_0700C790[];
extern const f32 intro_seg7_table_0700C880[];
// script
extern const LevelScript level_intro_entry_1[];
extern const LevelScript level_intro_entry_2[];
extern const LevelScript level_intro_entry_3[];
extern const LevelScript level_intro_entry_4[];
extern const LevelScript script_intro_L1[];
extern const LevelScript script_intro_L2[];
extern const LevelScript script_intro_L3[];
extern const LevelScript script_intro_L4[];
extern const LevelScript script_intro_L5[];
#endif

View File

@@ -1,7 +0,0 @@
.include "macros.inc"
.include "level_commands.inc"
.include "geo_commands.inc"
leveldata intro
levelscript intro
levelgeo intro

3418
levels/intro/leveldata.c Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

157
levels/intro/script.c Normal file
View File

@@ -0,0 +1,157 @@
#include <ultra64.h>
#include "sm64.h"
#include "behavior_data.h"
#include "model_ids.h"
#include "seq_ids.h"
#include "segment_symbols.h"
#include "level_commands.h"
#include "game/level_update.h"
#include "menu/level_select_menu.h"
#include "levels/scripts.h"
#include "levels/menu/header.h"
#include "actors/common1.h"
#include "make_const_nonconst.h"
#include "levels/intro/header.h"
const LevelScript level_intro_entry_1[] = {
INIT_LEVEL(),
FIXED_LOAD(/*loadAddr*/ _goddardSegmentStart, /*romStart*/ _goddardSegmentRomStart, /*romEnd*/ _goddardSegmentRomEnd),
LOAD_RAW(/*seg*/ 0x13, _behaviorSegmentRomStart, _behaviorSegmentRomEnd),
LOAD_MIO0(/*seg*/ 0x07, _intro_segment_7SegmentRomStart, _intro_segment_7SegmentRomEnd),
ALLOC_LEVEL_POOL(),
AREA(/*index*/ 1, intro_geo_0002D0),
END_AREA(),
FREE_LEVEL_POOL(),
LOAD_AREA(/*area*/ 1),
CALL(/*arg*/ 0, /*func*/ LevelProc_8016F508),
SLEEP(/*frames*/ 75),
TRANSITION(/*transType*/ 1, /*time*/ 16, /*color*/ 0, 0, 0),
SLEEP(/*frames*/ 16),
CMD2A(/*unk2*/ 1),
CLEAR_LEVEL(),
SLEEP(/*frames*/ 2),
EXIT_AND_EXECUTE(/*seg*/ 0x14, _introSegmentRomStart, _introSegmentRomEnd, level_intro_entry_2),
};
const LevelScript level_intro_entry_2[] = {
INIT_LEVEL(),
BLACKOUT(/*active*/ TRUE),
FIXED_LOAD(/*loadAddr*/ _goddardSegmentStart, /*romStart*/ _goddardSegmentRomStart, /*romEnd*/ _goddardSegmentRomEnd),
LOAD_MARIO_HEAD(/*loadHeadID*/ REGULAR_FACE),
LOAD_RAW(/*seg*/ 0x13, _behaviorSegmentRomStart, _behaviorSegmentRomEnd),
LOAD_MIO0_TEXTURE(/*seg*/ 0x0A, _title_screen_bg_mio0SegmentRomStart, _title_screen_bg_mio0SegmentRomEnd),
ALLOC_LEVEL_POOL(),
AREA(/*index*/ 1, intro_geo_00035C),
END_AREA(),
FREE_LEVEL_POOL(),
SLEEP(/*frames*/ 2),
BLACKOUT(/*active*/ FALSE),
LOAD_AREA(/*area*/ 1),
SET_MENU_MUSIC(/*seq*/ 0x0002),
TRANSITION(/*transType*/ 8, /*time*/ 20, /*color*/ 0, 0, 0),
SLEEP(/*frames*/ 20),
CALL_LOOP(/*arg*/ 1, /*func*/ LevelProc_8016F508),
JUMP_IF(/*op*/ OP_EQ, /*arg*/ 100, script_intro_L1),
JUMP_IF(/*op*/ OP_EQ, /*arg*/ 101, script_intro_L2),
JUMP(script_intro_L4),
};
const LevelScript level_intro_entry_3[] = {
INIT_LEVEL(),
BLACKOUT(/*active*/ TRUE),
FIXED_LOAD(/*loadAddr*/ _goddardSegmentStart, /*romStart*/ _goddardSegmentRomStart, /*romEnd*/ _goddardSegmentRomEnd),
LOAD_MARIO_HEAD(/*loadHeadID*/ DIZZY_FACE),
LOAD_RAW(/*seg*/ 0x13, _behaviorSegmentRomStart, _behaviorSegmentRomEnd),
LOAD_MIO0_TEXTURE(/*seg*/ 0x0A, _title_screen_bg_mio0SegmentRomStart, _title_screen_bg_mio0SegmentRomEnd),
ALLOC_LEVEL_POOL(),
AREA(/*index*/ 1, intro_geo_0003B8),
END_AREA(),
FREE_LEVEL_POOL(),
SLEEP(/*frames*/ 2),
BLACKOUT(/*active*/ FALSE),
LOAD_AREA(/*area*/ 1),
SET_MENU_MUSIC(/*seq*/ 0x0082),
TRANSITION(/*transType*/ 8, /*time*/ 20, /*color*/ 0, 0, 0),
SLEEP(/*frames*/ 20),
CALL_LOOP(/*arg*/ 2, /*func*/ LevelProc_8016F508),
JUMP_IF(/*op*/ OP_EQ, /*arg*/ 100, script_intro_L1),
JUMP_IF(/*op*/ OP_EQ, /*arg*/ 101, script_intro_L2),
JUMP(script_intro_L4),
};
const LevelScript level_intro_entry_4[] = {
INIT_LEVEL(),
LOAD_RAW(/*seg*/ 0x13, _behaviorSegmentRomStart, _behaviorSegmentRomEnd),
LOAD_MIO0_TEXTURE(/*seg*/ 0x0A, _title_screen_bg_mio0SegmentRomStart, _title_screen_bg_mio0SegmentRomEnd),
LOAD_MIO0(/*seg*/ 0x07, _debug_level_select_mio0SegmentRomStart, _debug_level_select_mio0SegmentRomEnd),
FIXED_LOAD(/*loadAddr*/ _goddardSegmentStart, /*romStart*/ _goddardSegmentRomStart, /*romEnd*/ _goddardSegmentRomEnd),
ALLOC_LEVEL_POOL(),
AREA(/*index*/ 1, intro_geo_000414),
END_AREA(),
FREE_LEVEL_POOL(),
LOAD_AREA(/*area*/ 1),
SET_MENU_MUSIC(/*seq*/ 0x0002),
TRANSITION(/*transType*/ 0, /*time*/ 16, /*color*/ -1, -1, -1),
SLEEP(/*frames*/ 16),
CALL_LOOP(/*arg*/ 3, /*func*/ LevelProc_8016F508),
JUMP_IF(/*op*/ OP_EQ, /*arg*/ -1, script_intro_L5),
JUMP(script_intro_L3),
};
// These should be static, but C doesn't allow non-sized forward declarations of static arrays
const LevelScript script_intro_L1[] = {
STOP_MUSIC(/*fadeOutTime*/ 0x00BE),
TRANSITION(/*transType*/ 1, /*time*/ 16, /*color*/ -1, -1, -1),
SLEEP(/*frames*/ 16),
CLEAR_LEVEL(),
SLEEP(/*frames*/ 2),
SET_REG(/*value*/ 16),
EXIT_AND_EXECUTE(/*seg*/ 0x14, _menuSegmentRomStart, _menuSegmentRomEnd, level_main_menu_entry_1),
};
const LevelScript script_intro_L2[] = {
TRANSITION(/*transType*/ 1, /*time*/ 16, /*color*/ -1, -1, -1),
SLEEP(/*frames*/ 16),
CLEAR_LEVEL(),
SLEEP(/*frames*/ 2),
EXIT_AND_EXECUTE(/*seg*/ 0x14, _introSegmentRomStart, _introSegmentRomEnd, level_intro_entry_4),
};
const LevelScript script_intro_L3[] = {
STOP_MUSIC(/*fadeOutTime*/ 0x00BE),
TRANSITION(/*transType*/ 1, /*time*/ 16, /*color*/ -1, -1, -1),
SLEEP(/*frames*/ 16),
CLEAR_LEVEL(),
SLEEP(/*frames*/ 2),
EXIT_AND_EXECUTE(/*seg*/ 0x15, _scriptsSegmentRomStart, _scriptsSegmentRomEnd, level_main_scripts_entry),
};
const LevelScript script_intro_L4[] = {
TRANSITION(/*transType*/ 1, /*time*/ 16, /*color*/ -1, -1, -1),
SLEEP(/*frames*/ 16),
CLEAR_LEVEL(),
SLEEP(/*frames*/ 2),
EXIT_AND_EXECUTE(/*seg*/ 0x15, _scriptsSegmentRomStart, _scriptsSegmentRomEnd, level_main_scripts_entry),
};
const LevelScript script_intro_L5[] = {
STOP_MUSIC(/*fadeOutTime*/ 0x00BE),
TRANSITION(/*transType*/ 1, /*time*/ 16, /*color*/ 0, 0, 0),
SLEEP(/*frames*/ 16),
CLEAR_LEVEL(),
SLEEP(/*frames*/ 2),
EXIT_AND_EXECUTE(/*seg*/ 0x14, _introSegmentRomStart, _introSegmentRomEnd, level_intro_entry_1),
};

View File

@@ -1,126 +0,0 @@
glabel level_intro_entry_1
init_level
fixed_load /*loadAddr*/ _goddardSegmentStart, /*romStart*/ _goddardSegmentRomStart, /*romEnd*/ _goddardSegmentRomEnd
load_raw /*seg*/ 0x13, /*romStart*/ _behaviorSegmentRomStart, /*romEnd*/ _behaviorSegmentRomEnd
load_mio0 /*seg*/ 0x07, /*romStart*/ _intro_segment_7SegmentRomStart, /*romEnd*/ _intro_segment_7SegmentRomEnd
alloc_level_pool
area /*index*/ 1, /*geo*/ intro_geo_0002D0
end_area
free_level_pool
load_area /*area*/ 1
call /*arg*/ 0, /*func*/ LevelProc_8016F508
sleep /*frames*/ 75
transition /*unk2*/ 1, /*unk3*/ 16, /*color*/ 0, 0, 0
sleep /*frames*/ 16
cmd2A /*unk2*/ 1
clear_level
sleep /*frames*/ 2
exit_and_execute /*seg*/ 0x14, /*script*/ _introSegmentRomStart, /*scriptEnd*/ _introSegmentRomEnd, /*entry*/ level_intro_entry_2
glabel level_intro_entry_2
init_level
blackout /*active*/ TRUE
fixed_load /*loadAddr*/ _goddardSegmentStart, /*romStart*/ _goddardSegmentRomStart, /*romEnd*/ _goddardSegmentRomEnd
load_mario_head /*loadHeadID*/ REGULAR_FACE
load_raw /*seg*/ 0x13, /*romStart*/ _behaviorSegmentRomStart, /*romEnd*/ _behaviorSegmentRomEnd
load_mio0_texture /*seg*/ 0x0A, /*romStart*/ _title_screen_bg_mio0SegmentRomStart, /*romEnd*/ _title_screen_bg_mio0SegmentRomEnd
alloc_level_pool
area /*index*/ 1, /*geo*/ intro_geo_00035C
end_area
free_level_pool
sleep /*frames*/ 2
blackout /*active*/ FALSE
load_area /*area*/ 1
set_menu_music /*seq*/ 0x0002
transition /*unk2*/ 8, /*unk3*/ 20, /*color*/ 0, 0, 0
sleep /*frames*/ 20
call_loop /*arg*/ 1, /*func*/ LevelProc_8016F508
jump_if /*op*/ OP_EQ, /*arg*/ 100, /*target*/ L1
jump_if /*op*/ OP_EQ, /*arg*/ 101, /*target*/ L2
jump /*target*/ L4
glabel level_intro_entry_3
init_level
blackout /*active*/ TRUE
fixed_load /*loadAddr*/ _goddardSegmentStart, /*romStart*/ _goddardSegmentRomStart, /*romEnd*/ _goddardSegmentRomEnd
load_mario_head /*loadHeadID*/ DIZZY_FACE
load_raw /*seg*/ 0x13, /*romStart*/ _behaviorSegmentRomStart, /*romEnd*/ _behaviorSegmentRomEnd
load_mio0_texture /*seg*/ 0x0A, /*romStart*/ _title_screen_bg_mio0SegmentRomStart, /*romEnd*/ _title_screen_bg_mio0SegmentRomEnd
alloc_level_pool
area /*index*/ 1, /*geo*/ intro_geo_0003B8
end_area
free_level_pool
sleep /*frames*/ 2
blackout /*active*/ FALSE
load_area /*area*/ 1
set_menu_music /*seq*/ 0x0082
transition /*unk2*/ 8, /*unk3*/ 20, /*color*/ 0, 0, 0
sleep /*frames*/ 20
call_loop /*arg*/ 2, /*func*/ LevelProc_8016F508
jump_if /*op*/ OP_EQ, /*arg*/ 100, /*target*/ L1
jump_if /*op*/ OP_EQ, /*arg*/ 101, /*target*/ L2
jump /*target*/ L4
glabel level_intro_entry_4
init_level
load_raw /*seg*/ 0x13, /*romStart*/ _behaviorSegmentRomStart, /*romEnd*/ _behaviorSegmentRomEnd
load_mio0_texture /*seg*/ 0x0A, /*romStart*/ _title_screen_bg_mio0SegmentRomStart, /*romEnd*/ _title_screen_bg_mio0SegmentRomEnd
load_mio0 /*seg*/ 0x07, /*romStart*/ _debug_level_select_mio0SegmentRomStart, /*romEnd*/ _debug_level_select_mio0SegmentRomEnd
fixed_load /*loadAddr*/ _goddardSegmentStart, /*romStart*/ _goddardSegmentRomStart, /*romEnd*/ _goddardSegmentRomEnd
alloc_level_pool
area /*index*/ 1, /*geo*/ intro_geo_000414
end_area
free_level_pool
load_area /*area*/ 1
set_menu_music /*seq*/ 0x0002
transition /*unk2*/ 0, /*unk3*/ 16, /*color*/ -1, -1, -1
sleep /*frames*/ 16
call_loop /*arg*/ 3, /*func*/ LevelProc_8016F508
jump_if /*op*/ OP_EQ, /*arg*/ -1, /*target*/ L5
jump /*target*/ L3
L1:
cmd38 /*unk2*/ 0x00BE
transition /*unk2*/ 1, /*unk3*/ 16, /*color*/ -1, -1, -1
sleep /*frames*/ 16
clear_level
sleep /*frames*/ 2
set_reg /*value*/ 16
exit_and_execute /*seg*/ 0x14, /*script*/ _menuSegmentRomStart, /*scriptEnd*/ _menuSegmentRomEnd, /*entry*/ level_main_menu_entry_1
L2:
transition /*unk2*/ 1, /*unk3*/ 16, /*color*/ -1, -1, -1
sleep /*frames*/ 16
clear_level
sleep /*frames*/ 2
exit_and_execute /*seg*/ 0x14, /*script*/ _introSegmentRomStart, /*scriptEnd*/ _introSegmentRomEnd, /*entry*/ level_intro_entry_4
L3:
cmd38 /*unk2*/ 0x00BE
transition /*unk2*/ 1, /*unk3*/ 16, /*color*/ -1, -1, -1
sleep /*frames*/ 16
clear_level
sleep /*frames*/ 2
exit_and_execute /*seg*/ 0x15, /*script*/ _scriptsSegmentRomStart, /*scriptEnd*/ _scriptsSegmentRomEnd, /*entry*/ level_main_scripts_entry
L4:
transition /*unk2*/ 1, /*unk3*/ 16, /*color*/ -1, -1, -1
sleep /*frames*/ 16
clear_level
sleep /*frames*/ 2
exit_and_execute /*seg*/ 0x15, /*script*/ _scriptsSegmentRomStart, /*scriptEnd*/ _scriptsSegmentRomEnd, /*entry*/ level_main_scripts_entry
L5:
cmd38 /*unk2*/ 0x00BE
transition /*unk2*/ 1, /*unk3*/ 16, /*color*/ 0, 0, 0
sleep /*frames*/ 16
clear_level
sleep /*frames*/ 2
exit_and_execute /*seg*/ 0x14, /*script*/ _introSegmentRomStart, /*scriptEnd*/ _introSegmentRomEnd, /*entry*/ level_intro_entry_1