sm64

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

geo.c (5002B)


      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/debug_level_select.h"
     12 #include "menu/intro_geo.h"
     13 
     14 #include "make_const_nonconst.h"
     15 
     16 #include "levels/intro/header.h"
     17 
     18 // 0x0E0002D0
     19 const GeoLayout intro_geo_0002D0[] = {
     20     GEO_NODE_SCREEN_AREA(0, SCREEN_WIDTH/2, SCREEN_HEIGHT/2, SCREEN_WIDTH/2, SCREEN_HEIGHT/2),
     21     GEO_OPEN_NODE(),
     22         GEO_ZBUFFER(0),
     23         GEO_OPEN_NODE(),
     24             GEO_NODE_ORTHO(100),
     25             GEO_OPEN_NODE(),
     26                 GEO_BACKGROUND_COLOR(0x0001),
     27             GEO_CLOSE_NODE(),
     28         GEO_CLOSE_NODE(),
     29         GEO_ZBUFFER(1),
     30         GEO_OPEN_NODE(),
     31             GEO_CAMERA_FRUSTUM(45, 128, 16384),
     32             GEO_OPEN_NODE(),
     33                 GEO_CAMERA(0, 0, 0, 3200, 0, 0, 0, 0x00000000),
     34                 GEO_OPEN_NODE(),
     35                     GEO_ASM(0, geo_intro_super_mario_64_logo),
     36                 GEO_CLOSE_NODE(),
     37             GEO_CLOSE_NODE(),
     38         GEO_CLOSE_NODE(),
     39         GEO_ZBUFFER(0),
     40         GEO_OPEN_NODE(),
     41             GEO_ASM(0, geo_intro_tm_copyright),
     42         GEO_CLOSE_NODE(),
     43     GEO_CLOSE_NODE(),
     44     GEO_END(),
     45 };
     46 
     47 // 0x0E00035C
     48 const GeoLayout intro_geo_mario_head_regular[] = {
     49     GEO_NODE_SCREEN_AREA(0, SCREEN_WIDTH/2, SCREEN_HEIGHT/2, SCREEN_WIDTH/2, SCREEN_HEIGHT/2),
     50     GEO_OPEN_NODE(),
     51         GEO_ZBUFFER(0),
     52         GEO_OPEN_NODE(),
     53             GEO_NODE_ORTHO(100),
     54             GEO_OPEN_NODE(),
     55                 GEO_ASM(0, geo_intro_regular_backdrop),
     56 #if defined(VERSION_SH) || defined(VERSION_CN)
     57                 GEO_ASM(0, geo_intro_face_easter_egg),
     58 #endif
     59             GEO_CLOSE_NODE(),
     60         GEO_CLOSE_NODE(),
     61         GEO_ZBUFFER(1),
     62         GEO_OPEN_NODE(),
     63             GEO_CAMERA_FRUSTUM(45, 128, 16384),
     64             GEO_OPEN_NODE(),
     65                 GEO_ASM(2, geo_draw_mario_head_goddard),
     66             GEO_CLOSE_NODE(),
     67         GEO_CLOSE_NODE(),
     68 #ifdef VERSION_SH
     69     GEO_ZBUFFER(0),
     70     GEO_OPEN_NODE(),
     71         GEO_ASM(0, geo_intro_rumble_pak_graphic),
     72     GEO_CLOSE_NODE(),
     73 #endif
     74     GEO_CLOSE_NODE(),
     75     GEO_END(),
     76 };
     77 
     78 // 0x0E0003B8
     79 const GeoLayout intro_geo_mario_head_dizzy[] = {
     80     GEO_NODE_SCREEN_AREA(0, SCREEN_WIDTH/2, SCREEN_HEIGHT/2, SCREEN_WIDTH/2, SCREEN_HEIGHT/2),
     81     GEO_OPEN_NODE(),
     82         GEO_ZBUFFER(0),
     83         GEO_OPEN_NODE(),
     84             GEO_NODE_ORTHO(100),
     85             GEO_OPEN_NODE(),
     86                 GEO_ASM(0, geo_intro_gameover_backdrop),
     87 #if defined(VERSION_SH) || defined(VERSION_CN)
     88                 GEO_ASM(0, geo_intro_face_easter_egg),
     89 #endif
     90             GEO_CLOSE_NODE(),
     91         GEO_CLOSE_NODE(),
     92         GEO_ZBUFFER(1),
     93         GEO_OPEN_NODE(),
     94             GEO_CAMERA_FRUSTUM(45, 128, 16384),
     95             GEO_OPEN_NODE(),
     96                 GEO_ASM(3, geo_draw_mario_head_goddard),
     97             GEO_CLOSE_NODE(),
     98         GEO_CLOSE_NODE(),
     99 #ifdef VERSION_SH
    100         GEO_ZBUFFER(0),
    101         GEO_OPEN_NODE(),
    102             GEO_ASM(1, geo_intro_rumble_pak_graphic),
    103         GEO_CLOSE_NODE(),
    104 #endif
    105     GEO_CLOSE_NODE(),
    106     GEO_END(),
    107 };
    108 
    109 // 0x0E000414
    110 const GeoLayout intro_geo_000414[] = {
    111     GEO_NODE_SCREEN_AREA(0, SCREEN_WIDTH/2, SCREEN_HEIGHT/2, SCREEN_WIDTH/2, SCREEN_HEIGHT/2),
    112     GEO_OPEN_NODE(),
    113         GEO_ZBUFFER(0),
    114         GEO_OPEN_NODE(),
    115             GEO_NODE_ORTHO(100),
    116             GEO_OPEN_NODE(),
    117                 GEO_ASM(0, geo_intro_regular_backdrop),
    118             GEO_CLOSE_NODE(),
    119         GEO_CLOSE_NODE(),
    120         GEO_ZBUFFER(1),
    121         GEO_OPEN_NODE(),
    122             GEO_CAMERA_FRUSTUM(45, 128, 16384),
    123             GEO_OPEN_NODE(),
    124                 GEO_CAMERA(0, 0, 0, 1200, 0, 0, 0, 0x00000000),
    125                 GEO_OPEN_NODE(),
    126                     GEO_TRANSLATE_NODE_WITH_DL(LAYER_OPAQUE, -230, 300, 0, debug_level_select_dl_07000858),
    127                     GEO_TRANSLATE_NODE_WITH_DL(LAYER_OPAQUE, -120, 300, 0, debug_level_select_dl_07001100),
    128                     GEO_TRANSLATE_NODE_WITH_DL(LAYER_OPAQUE,  -20, 300, 0, debug_level_select_dl_07001BA0),
    129                     GEO_TRANSLATE_NODE_WITH_DL(LAYER_OPAQUE,  100, 300, 0, debug_level_select_dl_070025F0),
    130                     GEO_TRANSLATE_NODE_WITH_DL(LAYER_OPAQUE,  250, 300, 0, debug_level_select_dl_07003258),
    131                     GEO_TRANSLATE_NODE_WITH_DL(LAYER_OPAQUE, -310, 100, 0, debug_level_select_dl_07003DB8),
    132                     GEO_TRANSLATE_NODE_WITH_DL(LAYER_OPAQUE,  -90, 100, 0, debug_level_select_dl_070048C8),
    133                     GEO_TRANSLATE_NODE_WITH_DL(LAYER_OPAQUE,   60, 100, 0, debug_level_select_dl_07005558),
    134                     GEO_TRANSLATE_NODE_WITH_DL(LAYER_OPAQUE,  180, 100, 0, debug_level_select_dl_070059F8),
    135                     GEO_TRANSLATE_NODE_WITH_DL(LAYER_OPAQUE,  300, 100, 0, debug_level_select_dl_070063B0),
    136                 GEO_CLOSE_NODE(),
    137             GEO_CLOSE_NODE(),
    138         GEO_CLOSE_NODE(),
    139     GEO_CLOSE_NODE(),
    140     GEO_END(),
    141 };
    142