sm64

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

geo.inc.c (13718B)


      1 // 0x0E0005E8
      2 const GeoLayout hmc_geo_0005E8[] = {
      3     GEO_NODE_START(),
      4     GEO_OPEN_NODE(),
      5         GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_070078B0),
      6         GEO_DISPLAY_LIST(LAYER_ALPHA, hmc_seg7_dl_07007B50),
      7         GEO_DISPLAY_LIST(LAYER_TRANSPARENT, hmc_seg7_dl_070080E8),
      8         GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_070093F0),
      9     GEO_CLOSE_NODE(),
     10     GEO_RETURN(),
     11 };
     12 
     13 // 0x0E000618
     14 const GeoLayout hmc_geo_000618[] = {
     15     GEO_NODE_START(),
     16     GEO_OPEN_NODE(),
     17         GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_0700E448),
     18         GEO_DISPLAY_LIST(LAYER_ALPHA, hmc_seg7_dl_0700EF00),
     19         GEO_DISPLAY_LIST(LAYER_TRANSPARENT, hmc_seg7_dl_0700F3E8),
     20         GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_0700FA40),
     21         GEO_DISPLAY_LIST(LAYER_TRANSPARENT, hmc_seg7_dl_0700FEF0),
     22         GEO_DISPLAY_LIST(LAYER_OPAQUE_DECAL, hmc_seg7_dl_07010070),
     23     GEO_CLOSE_NODE(),
     24     GEO_RETURN(),
     25 };
     26 
     27 // 0x0E000658
     28 const GeoLayout hmc_geo_000658[] = {
     29     GEO_NODE_START(),
     30     GEO_OPEN_NODE(),
     31         GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_07013CA8),
     32         GEO_DISPLAY_LIST(LAYER_ALPHA, hmc_seg7_dl_07013E80),
     33         GEO_DISPLAY_LIST(LAYER_TRANSPARENT, hmc_seg7_dl_07014300),
     34         GEO_DISPLAY_LIST(LAYER_TRANSPARENT, hmc_seg7_dl_07014B08),
     35         GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_07014C00),
     36         GEO_DISPLAY_LIST(LAYER_TRANSPARENT, hmc_seg7_dl_07014E48),
     37         GEO_ASM(   0, geo_movtex_pause_control),
     38         GEO_ASM(0x0702, geo_movtex_draw_water_regions),
     39     GEO_CLOSE_NODE(),
     40     GEO_RETURN(),
     41 };
     42 
     43 // 0x0E0006A8
     44 const GeoLayout hmc_geo_0006A8[] = {
     45     GEO_NODE_START(),
     46     GEO_OPEN_NODE(),
     47         GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_070173A8),
     48         GEO_DISPLAY_LIST(LAYER_ALPHA, hmc_seg7_dl_07017C98),
     49         GEO_DISPLAY_LIST(LAYER_TRANSPARENT, hmc_seg7_dl_07018200),
     50         GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_07019248),
     51         GEO_DISPLAY_LIST(LAYER_TRANSPARENT, hmc_seg7_dl_07019368),
     52     GEO_CLOSE_NODE(),
     53     GEO_RETURN(),
     54 };
     55 
     56 // 0x0E0006E0
     57 const GeoLayout hmc_geo_0006E0[] = {
     58     GEO_NODE_START(),
     59     GEO_OPEN_NODE(),
     60         GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_0701A080),
     61         GEO_DISPLAY_LIST(LAYER_ALPHA, hmc_seg7_dl_0701A400),
     62     GEO_CLOSE_NODE(),
     63     GEO_RETURN(),
     64 };
     65 
     66 // 0x0E000700
     67 const GeoLayout hmc_geo_000700[] = {
     68     GEO_NODE_START(),
     69     GEO_OPEN_NODE(),
     70         GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_0701E820),
     71         GEO_DISPLAY_LIST(LAYER_ALPHA, hmc_seg7_dl_0701F1B0),
     72         GEO_DISPLAY_LIST(LAYER_TRANSPARENT, hmc_seg7_dl_0701F690),
     73         GEO_DISPLAY_LIST(LAYER_TRANSPARENT, hmc_seg7_dl_0701F818),
     74         GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_0701FD58),
     75         GEO_ASM(0, geo_movtex_pause_control),
     76         GEO_ASM(0x0701, geo_movtex_draw_water_regions),
     77     GEO_CLOSE_NODE(),
     78     GEO_RETURN(),
     79 };
     80 
     81 // 0x0E000748
     82 const GeoLayout hmc_geo_000748[] = {
     83     GEO_NODE_START(),
     84     GEO_OPEN_NODE(),
     85         GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_07020FD0),
     86         GEO_ASM(0, geo_painting_update),
     87         GEO_ASM(PAINTING_ID(0, 0), geo_painting_draw),
     88     GEO_CLOSE_NODE(),
     89     GEO_RETURN(),
     90 };
     91 
     92 // 0x0E000770
     93 const GeoLayout hmc_geo_000770[] = {
     94     GEO_NODE_START(),
     95     GEO_OPEN_NODE(),
     96         GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_07021760),
     97         GEO_DISPLAY_LIST(LAYER_TRANSPARENT, hmc_seg7_dl_07021BA0),
     98         GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_070228A0),
     99     GEO_CLOSE_NODE(),
    100     GEO_RETURN(),
    101 };
    102 
    103 // 0x0E000798
    104 const GeoLayout hmc_geo_000798[] = {
    105     GEO_NODE_START(),
    106     GEO_OPEN_NODE(),
    107         GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_070078B0),
    108         GEO_DISPLAY_LIST(LAYER_ALPHA, hmc_seg7_dl_07007B50),
    109         GEO_DISPLAY_LIST(LAYER_TRANSPARENT, hmc_seg7_dl_070080E8),
    110         GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_070093F0),
    111         GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_0700E448),
    112         GEO_DISPLAY_LIST(LAYER_ALPHA, hmc_seg7_dl_0700EF00),
    113         GEO_DISPLAY_LIST(LAYER_TRANSPARENT, hmc_seg7_dl_0700F3E8),
    114         GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_0700FA40),
    115         GEO_DISPLAY_LIST(LAYER_TRANSPARENT, hmc_seg7_dl_0700FEF0),
    116         GEO_DISPLAY_LIST(LAYER_OPAQUE_DECAL, hmc_seg7_dl_07010070),
    117     GEO_CLOSE_NODE(),
    118     GEO_RETURN(),
    119 };
    120 
    121 // 0x0E0007F8
    122 const GeoLayout hmc_geo_0007F8[] = {
    123     GEO_NODE_START(),
    124     GEO_OPEN_NODE(),
    125         GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_070078B0),
    126         GEO_DISPLAY_LIST(LAYER_ALPHA, hmc_seg7_dl_07007B50),
    127         GEO_DISPLAY_LIST(LAYER_TRANSPARENT, hmc_seg7_dl_070080E8),
    128         GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_070093F0),
    129         GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_070173A8),
    130         GEO_DISPLAY_LIST(LAYER_ALPHA, hmc_seg7_dl_07017C98),
    131         GEO_DISPLAY_LIST(LAYER_TRANSPARENT, hmc_seg7_dl_07018200),
    132         GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_07019248),
    133         GEO_DISPLAY_LIST(LAYER_TRANSPARENT, hmc_seg7_dl_07019368),
    134     GEO_CLOSE_NODE(),
    135     GEO_RETURN(),
    136 };
    137 
    138 // 0x0E000850
    139 const GeoLayout hmc_geo_000850[] = {
    140     GEO_NODE_START(),
    141     GEO_OPEN_NODE(),
    142         GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_0700E448),
    143         GEO_DISPLAY_LIST(LAYER_ALPHA, hmc_seg7_dl_0700EF00),
    144         GEO_DISPLAY_LIST(LAYER_TRANSPARENT, hmc_seg7_dl_0700F3E8),
    145         GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_0700FA40),
    146         GEO_DISPLAY_LIST(LAYER_TRANSPARENT, hmc_seg7_dl_0700FEF0),
    147         GEO_DISPLAY_LIST(LAYER_OPAQUE_DECAL, hmc_seg7_dl_07010070),
    148         GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_07013CA8),
    149         GEO_DISPLAY_LIST(LAYER_ALPHA, hmc_seg7_dl_07013E80),
    150         GEO_DISPLAY_LIST(LAYER_TRANSPARENT, hmc_seg7_dl_07014300),
    151         GEO_DISPLAY_LIST(LAYER_TRANSPARENT, hmc_seg7_dl_07014B08),
    152         GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_07014C00),
    153         GEO_DISPLAY_LIST(LAYER_TRANSPARENT, hmc_seg7_dl_07014E48),
    154         GEO_ASM(   0, geo_movtex_pause_control),
    155         GEO_ASM(0x0702, geo_movtex_draw_water_regions),
    156     GEO_CLOSE_NODE(),
    157     GEO_RETURN(),
    158 };
    159 
    160 // 0x0E0008D0
    161 const GeoLayout hmc_geo_0008D0[] = {
    162     GEO_NODE_START(),
    163     GEO_OPEN_NODE(),
    164         GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_0700E448),
    165         GEO_DISPLAY_LIST(LAYER_ALPHA, hmc_seg7_dl_0700EF00),
    166         GEO_DISPLAY_LIST(LAYER_TRANSPARENT, hmc_seg7_dl_0700F3E8),
    167         GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_0700FA40),
    168         GEO_DISPLAY_LIST(LAYER_TRANSPARENT, hmc_seg7_dl_0700FEF0),
    169         GEO_DISPLAY_LIST(LAYER_OPAQUE_DECAL, hmc_seg7_dl_07010070),
    170         GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_070173A8),
    171         GEO_DISPLAY_LIST(LAYER_ALPHA, hmc_seg7_dl_07017C98),
    172         GEO_DISPLAY_LIST(LAYER_TRANSPARENT, hmc_seg7_dl_07018200),
    173         GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_07019248),
    174         GEO_DISPLAY_LIST(LAYER_TRANSPARENT, hmc_seg7_dl_07019368),
    175     GEO_CLOSE_NODE(),
    176     GEO_RETURN(),
    177 };
    178 
    179 // 0x0E000938
    180 const GeoLayout hmc_geo_000938[] = {
    181     GEO_NODE_START(),
    182     GEO_OPEN_NODE(),
    183         GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_07013CA8),
    184         GEO_DISPLAY_LIST(LAYER_ALPHA, hmc_seg7_dl_07013E80),
    185         GEO_DISPLAY_LIST(LAYER_TRANSPARENT, hmc_seg7_dl_07014300),
    186         GEO_DISPLAY_LIST(LAYER_TRANSPARENT, hmc_seg7_dl_07014B08),
    187         GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_07014C00),
    188         GEO_DISPLAY_LIST(LAYER_TRANSPARENT, hmc_seg7_dl_07014E48),
    189         GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_0701A080),
    190         GEO_DISPLAY_LIST(LAYER_ALPHA, hmc_seg7_dl_0701A400),
    191         GEO_ASM(   0, geo_movtex_pause_control),
    192         GEO_ASM(0x0702, geo_movtex_draw_water_regions),
    193     GEO_CLOSE_NODE(),
    194     GEO_RETURN(),
    195 };
    196 
    197 // 0x0E000998
    198 const GeoLayout hmc_geo_000998[] = {
    199     GEO_NODE_START(),
    200     GEO_OPEN_NODE(),
    201         GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_07013CA8),
    202         GEO_DISPLAY_LIST(LAYER_ALPHA, hmc_seg7_dl_07013E80),
    203         GEO_DISPLAY_LIST(LAYER_TRANSPARENT, hmc_seg7_dl_07014300),
    204         GEO_DISPLAY_LIST(LAYER_TRANSPARENT, hmc_seg7_dl_07014B08),
    205         GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_07014C00),
    206         GEO_DISPLAY_LIST(LAYER_TRANSPARENT, hmc_seg7_dl_07014E48),
    207         GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_0701E820),
    208         GEO_DISPLAY_LIST(LAYER_ALPHA, hmc_seg7_dl_0701F1B0),
    209         GEO_DISPLAY_LIST(LAYER_TRANSPARENT, hmc_seg7_dl_0701F690),
    210         GEO_DISPLAY_LIST(LAYER_TRANSPARENT, hmc_seg7_dl_0701F818),
    211         GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_0701FD58),
    212         GEO_ASM(   0, geo_movtex_pause_control),
    213         GEO_ASM(0x0701, geo_movtex_draw_water_regions),
    214         GEO_ASM(0x0702, geo_movtex_draw_water_regions),
    215     GEO_CLOSE_NODE(),
    216     GEO_RETURN(),
    217 };
    218 
    219 // 0x0E000A18
    220 const GeoLayout hmc_geo_000A18[] = {
    221     GEO_NODE_START(),
    222     GEO_OPEN_NODE(),
    223         GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_070173A8),
    224         GEO_DISPLAY_LIST(LAYER_ALPHA, hmc_seg7_dl_07017C98),
    225         GEO_DISPLAY_LIST(LAYER_TRANSPARENT, hmc_seg7_dl_07018200),
    226         GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_07019248),
    227         GEO_DISPLAY_LIST(LAYER_TRANSPARENT, hmc_seg7_dl_07019368),
    228         GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_0701E820),
    229         GEO_DISPLAY_LIST(LAYER_ALPHA, hmc_seg7_dl_0701F1B0),
    230         GEO_DISPLAY_LIST(LAYER_TRANSPARENT, hmc_seg7_dl_0701F690),
    231         GEO_DISPLAY_LIST(LAYER_TRANSPARENT, hmc_seg7_dl_0701F818),
    232         GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_0701FD58),
    233         GEO_ASM(   0, geo_movtex_pause_control),
    234         GEO_ASM(0x0701, geo_movtex_draw_water_regions),
    235     GEO_CLOSE_NODE(),
    236     GEO_RETURN(),
    237 };
    238 
    239 // 0x0E000A88
    240 const GeoLayout hmc_geo_000A88[] = {
    241     GEO_NODE_START(),
    242     GEO_OPEN_NODE(),
    243         GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_0701E820),
    244         GEO_DISPLAY_LIST(LAYER_ALPHA, hmc_seg7_dl_0701F1B0),
    245         GEO_DISPLAY_LIST(LAYER_TRANSPARENT, hmc_seg7_dl_0701F690),
    246         GEO_DISPLAY_LIST(LAYER_TRANSPARENT, hmc_seg7_dl_0701F818),
    247         GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_0701FD58),
    248         GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_07020FD0),
    249         GEO_ASM(   0, geo_painting_update),
    250         GEO_ASM(   PAINTING_ID(0, 0), geo_painting_draw),
    251         GEO_ASM(   0, geo_movtex_pause_control),
    252         GEO_ASM(0x0701, geo_movtex_draw_water_regions),
    253     GEO_CLOSE_NODE(),
    254     GEO_RETURN(),
    255 };
    256 
    257 // 0x0E000AE8
    258 const GeoLayout hmc_geo_000AE8[] = {
    259     GEO_NODE_START(),
    260     GEO_OPEN_NODE(),
    261         GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_0701E820),
    262         GEO_DISPLAY_LIST(LAYER_ALPHA, hmc_seg7_dl_0701F1B0),
    263         GEO_DISPLAY_LIST(LAYER_TRANSPARENT, hmc_seg7_dl_0701F690),
    264         GEO_DISPLAY_LIST(LAYER_TRANSPARENT, hmc_seg7_dl_0701F818),
    265         GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_0701FD58),
    266         GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_07021760),
    267         GEO_DISPLAY_LIST(LAYER_TRANSPARENT, hmc_seg7_dl_07021BA0),
    268         GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_070228A0),
    269         GEO_ASM(   0, geo_movtex_pause_control),
    270         GEO_ASM(0x0701, geo_movtex_draw_water_regions),
    271     GEO_CLOSE_NODE(),
    272     GEO_RETURN(),
    273 };
    274 
    275 // 0x0E000B48
    276 const GeoLayout hmc_geo_000B48[] = {
    277     GEO_NODE_START(),
    278     GEO_OPEN_NODE(),
    279         GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_070173A8),
    280         GEO_DISPLAY_LIST(LAYER_ALPHA, hmc_seg7_dl_07017C98),
    281         GEO_DISPLAY_LIST(LAYER_TRANSPARENT, hmc_seg7_dl_07018200),
    282         GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_07019248),
    283         GEO_DISPLAY_LIST(LAYER_TRANSPARENT, hmc_seg7_dl_07019368),
    284         GEO_DISPLAY_LIST(LAYER_OPAQUE, hmc_seg7_dl_0701A080),
    285         GEO_DISPLAY_LIST(LAYER_ALPHA, hmc_seg7_dl_0701A400),
    286     GEO_CLOSE_NODE(),
    287     GEO_RETURN(),
    288 };
    289 
    290 // 0x0E000B90
    291 const GeoLayout hmc_geo_000B90[] = {
    292     GEO_NODE_SCREEN_AREA(10, SCREEN_WIDTH/2, SCREEN_HEIGHT/2, SCREEN_WIDTH/2, SCREEN_HEIGHT/2),
    293     GEO_OPEN_NODE(),
    294         GEO_ZBUFFER(0),
    295         GEO_OPEN_NODE(),
    296             GEO_NODE_ORTHO(100),
    297             GEO_OPEN_NODE(),
    298                 GEO_BACKGROUND_COLOR(0x0001),
    299             GEO_CLOSE_NODE(),
    300         GEO_CLOSE_NODE(),
    301         GEO_ZBUFFER(1),
    302         GEO_OPEN_NODE(),
    303             GEO_CAMERA_FRUSTUM_WITH_FUNC(45, 100, 12800, geo_camera_fov),
    304             GEO_OPEN_NODE(),
    305                 GEO_CAMERA(16, 0, 2000, 6000, 0, 0, 0, geo_camera_main),
    306                 GEO_OPEN_NODE(),
    307                     GEO_SWITCH_CASE(18, geo_switch_area),
    308                     GEO_OPEN_NODE(),
    309                         GEO_BRANCH(1, hmc_geo_0005E8), // 0x0E0005E8
    310                         GEO_BRANCH(1, hmc_geo_000618), // 0x0E000618
    311                         GEO_BRANCH(1, hmc_geo_000658), // 0x0E000658
    312                         GEO_BRANCH(1, hmc_geo_0006A8), // 0x0E0006A8
    313                         GEO_BRANCH(1, hmc_geo_0006E0), // 0x0E0006E0
    314                         GEO_BRANCH(1, hmc_geo_000700), // 0x0E000700
    315                         GEO_BRANCH(1, hmc_geo_000748), // 0x0E000748
    316                         GEO_BRANCH(1, hmc_geo_000770), // 0x0E000770
    317                         GEO_BRANCH(1, hmc_geo_000798), // 0x0E000798
    318                         GEO_BRANCH(1, hmc_geo_0007F8), // 0x0E0007F8
    319                         GEO_BRANCH(1, hmc_geo_000850), // 0x0E000850
    320                         GEO_BRANCH(1, hmc_geo_0008D0), // 0x0E0008D0
    321                         GEO_BRANCH(1, hmc_geo_000938), // 0x0E000938
    322                         GEO_BRANCH(1, hmc_geo_000998), // 0x0E000998
    323                         GEO_BRANCH(1, hmc_geo_000A18), // 0x0E000A18
    324                         GEO_BRANCH(1, hmc_geo_000A88), // 0x0E000A88
    325                         GEO_BRANCH(1, hmc_geo_000AE8), // 0x0E000AE8
    326                         GEO_BRANCH(1, hmc_geo_000B48), // 0x0E000B48
    327                     GEO_CLOSE_NODE(),
    328                     GEO_RENDER_OBJ(),
    329                     GEO_ASM(0, geo_envfx_main),
    330                 GEO_CLOSE_NODE(),
    331             GEO_CLOSE_NODE(),
    332         GEO_CLOSE_NODE(),
    333     GEO_CLOSE_NODE(),
    334     GEO_END(),
    335 };