sm64

A Super Mario 64 decompilation
Log | Files | Refs | README | LICENSE

geo.c (5502B)


      1 #include <ultra64.h>
      2 #include "sm64.h"
      3 #include "geo_commands.h"
      4 
      5 #include "game/level_geo.h"
      6 #include "game/geo_misc.h"
      7 #include "game/camera.h"
      8 #include "game/moving_texture.h"
      9 #include "game/screen_transition.h"
     10 #include "game/paintings.h"
     11 #include "menu/file_select.h"
     12 #include "menu/star_select.h"
     13 
     14 #include "make_const_nonconst.h"
     15 
     16 #include "levels/menu/header.h"
     17 
     18 // 0x0E0001D0
     19 const GeoLayout geo_menu_mario_save_button[] = {
     20     GEO_NODE_START(),
     21     GEO_OPEN_NODE(),
     22         GEO_SCALE(0x00, 524288),
     23         GEO_OPEN_NODE(),
     24             GEO_DISPLAY_LIST(LAYER_OPAQUE, dl_menu_mario_save_button_base),
     25             GEO_DISPLAY_LIST(LAYER_OPAQUE, dl_menu_save_button_back),
     26         GEO_CLOSE_NODE(),
     27     GEO_CLOSE_NODE(),
     28     GEO_END(),
     29 };
     30 
     31 // 0x0E000200
     32 const GeoLayout geo_menu_mario_save_button_fade[] = {
     33     GEO_NODE_START(),
     34     GEO_OPEN_NODE(),
     35         GEO_SCALE(0x00, 524288),
     36         GEO_OPEN_NODE(),
     37             GEO_DISPLAY_LIST(LAYER_OPAQUE, dl_menu_mario_save_button_base),
     38             GEO_DISPLAY_LIST(LAYER_OPAQUE, dl_menu_save_button_fade_back),
     39         GEO_CLOSE_NODE(),
     40     GEO_CLOSE_NODE(),
     41     GEO_END(),
     42 };
     43 
     44 // 0x0E000230
     45 const GeoLayout geo_menu_mario_new_button[] = {
     46     GEO_NODE_START(),
     47     GEO_OPEN_NODE(),
     48         GEO_SCALE(0x00, 524288),
     49         GEO_OPEN_NODE(),
     50             GEO_DISPLAY_LIST(LAYER_OPAQUE, dl_menu_mario_new_button_base),
     51             GEO_DISPLAY_LIST(LAYER_OPAQUE, dl_menu_save_button_back),
     52         GEO_CLOSE_NODE(),
     53     GEO_CLOSE_NODE(),
     54     GEO_END(),
     55 };
     56 
     57 // 0x0E000260
     58 const GeoLayout geo_menu_mario_new_button_fade[] = {
     59     GEO_NODE_START(),
     60     GEO_OPEN_NODE(),
     61         GEO_SCALE(0x00, 524288),
     62         GEO_OPEN_NODE(),
     63             GEO_DISPLAY_LIST(LAYER_OPAQUE, dl_menu_mario_new_button_base),
     64             GEO_DISPLAY_LIST(LAYER_OPAQUE, dl_menu_save_button_fade_back),
     65         GEO_CLOSE_NODE(),
     66     GEO_CLOSE_NODE(),
     67     GEO_END(),
     68 };
     69 
     70 // 0x0E000290
     71 const GeoLayout geo_menu_erase_button[] = {
     72     GEO_NODE_START(),
     73     GEO_OPEN_NODE(),
     74         GEO_SCALE(0x00, 524288),
     75         GEO_OPEN_NODE(),
     76             GEO_DISPLAY_LIST(LAYER_OPAQUE, dl_menu_erase_button),
     77         GEO_CLOSE_NODE(),
     78     GEO_CLOSE_NODE(),
     79     GEO_END(),
     80 };
     81 
     82 // 0x0E0002B8
     83 const GeoLayout geo_menu_copy_button[] = {
     84     GEO_NODE_START(),
     85     GEO_OPEN_NODE(),
     86         GEO_SCALE(0x00, 524288),
     87         GEO_OPEN_NODE(),
     88             GEO_DISPLAY_LIST(LAYER_OPAQUE, dl_menu_copy_button),
     89         GEO_CLOSE_NODE(),
     90     GEO_CLOSE_NODE(),
     91     GEO_END(),
     92 };
     93 
     94 // 0x0E0002E0
     95 const GeoLayout geo_menu_file_button[] = {
     96     GEO_NODE_START(),
     97     GEO_OPEN_NODE(),
     98         GEO_SCALE(0x00, 524288),
     99         GEO_OPEN_NODE(),
    100             GEO_DISPLAY_LIST(LAYER_OPAQUE, dl_menu_file_button),
    101         GEO_CLOSE_NODE(),
    102     GEO_CLOSE_NODE(),
    103     GEO_END(),
    104 };
    105 
    106 // 0x0E000308
    107 const GeoLayout geo_menu_score_button[] = {
    108     GEO_NODE_START(),
    109     GEO_OPEN_NODE(),
    110         GEO_SCALE(0x00, 524288),
    111         GEO_OPEN_NODE(),
    112             GEO_DISPLAY_LIST(LAYER_OPAQUE, dl_menu_score_button),
    113         GEO_CLOSE_NODE(),
    114     GEO_CLOSE_NODE(),
    115     GEO_END(),
    116 };
    117 
    118 // 0x0E000330
    119 const GeoLayout geo_menu_sound_button[] = {
    120     GEO_NODE_START(),
    121     GEO_OPEN_NODE(),
    122         GEO_SCALE(0x00, 524288),
    123         GEO_OPEN_NODE(),
    124             GEO_DISPLAY_LIST(LAYER_OPAQUE, dl_menu_sound_button),
    125         GEO_CLOSE_NODE(),
    126     GEO_CLOSE_NODE(),
    127     GEO_END(),
    128 };
    129 
    130 // 0x0E000358
    131 const GeoLayout geo_menu_generic_button[] = {
    132     GEO_NODE_START(),
    133     GEO_OPEN_NODE(),
    134         GEO_SCALE(0x00, 524288),
    135         GEO_OPEN_NODE(),
    136             GEO_DISPLAY_LIST(LAYER_OPAQUE, dl_menu_generic_button),
    137         GEO_CLOSE_NODE(),
    138     GEO_CLOSE_NODE(),
    139     GEO_END(),
    140 };
    141 
    142 // 0x0E000380
    143 const GeoLayout geo_menu_file_select_strings_and_menu_cursor[] = {
    144     GEO_NODE_SCREEN_AREA(10, SCREEN_WIDTH/2, SCREEN_HEIGHT/2, SCREEN_WIDTH/2, SCREEN_HEIGHT/2),
    145     GEO_OPEN_NODE(),
    146         GEO_ZBUFFER(0),
    147         GEO_OPEN_NODE(),
    148             GEO_NODE_ORTHO(100),
    149             GEO_OPEN_NODE(),
    150                 GEO_BACKGROUND_COLOR(0x0001),
    151             GEO_CLOSE_NODE(),
    152         GEO_CLOSE_NODE(),
    153         GEO_ZBUFFER(1),
    154         GEO_OPEN_NODE(),
    155             GEO_CAMERA_FRUSTUM(45, 100, 25000),
    156             GEO_OPEN_NODE(),
    157                 GEO_CAMERA(0, 0, 0, 1000, 0, 0, 0, 0x00000000),
    158                 GEO_OPEN_NODE(),
    159                     GEO_RENDER_OBJ(),
    160                 GEO_CLOSE_NODE(),
    161             GEO_CLOSE_NODE(),
    162         GEO_CLOSE_NODE(),
    163         GEO_ZBUFFER(0),
    164         GEO_OPEN_NODE(),
    165             GEO_ASM(0, geo_file_select_strings_and_menu_cursor),
    166         GEO_CLOSE_NODE(),
    167     GEO_CLOSE_NODE(),
    168     GEO_END(),
    169 };
    170 
    171 // 0x0E000408
    172 const GeoLayout geo_menu_act_selector_strings[] = {
    173     GEO_NODE_SCREEN_AREA(10, SCREEN_WIDTH/2, SCREEN_HEIGHT/2, SCREEN_WIDTH/2, SCREEN_HEIGHT/2),
    174     GEO_OPEN_NODE(),
    175         GEO_ZBUFFER(0),
    176         GEO_OPEN_NODE(),
    177             GEO_NODE_ORTHO(100),
    178             GEO_OPEN_NODE(),
    179                 GEO_BACKGROUND_COLOR(0xFFFF),
    180             GEO_CLOSE_NODE(),
    181         GEO_CLOSE_NODE(),
    182         GEO_ZBUFFER(1),
    183         GEO_OPEN_NODE(),
    184             GEO_CAMERA_FRUSTUM(45, 100, 25000),
    185             GEO_OPEN_NODE(),
    186                 GEO_CAMERA(0, 0, 0, 1000, 0, 0, 0, 0x00000000),
    187                 GEO_OPEN_NODE(),
    188                     GEO_RENDER_OBJ(),
    189                 GEO_CLOSE_NODE(),
    190             GEO_CLOSE_NODE(),
    191         GEO_CLOSE_NODE(),
    192         GEO_ZBUFFER(0),
    193         GEO_OPEN_NODE(),
    194             GEO_ASM(0, geo_act_selector_strings),
    195         GEO_CLOSE_NODE(),
    196     GEO_CLOSE_NODE(),
    197     GEO_END(),
    198 };