Files
Microtransactions64/actors/door/model.inc.c
Reonu 5a9b5a9751 Mat Stack Fix
* Implemented new lightweight CPU/RDP profiler
* Added RSP profiling to the lightweight profiler
* Added CPU audio to lightweight profiler
* Changed lingering manual light struct definitions to gdSPDefLights1, made a dummy light for Koopa's pink shorts
* Ran script to convert all light commands to lightcolor commands
* Added define guards for the profiler
* Wrote function for setting up global light direction in the frame
* Moved camera matrix into projection stack
* Corrected cameraToObject for the new matrix stack (fixes culling and sound)
* Fixed billboarding with new matrix stack
* Fixed shadows with new matrix stack
* Fixed some areas where the game was previously extracting the camera matrix from various matrices
* Restored vanilla light and env map directions under new matrix stack
* Fix goddard crash
* Fix geo_process_level_of_detail
* Remove 'construct_float' from 'geo_process_level_of_detail'
* Removed some accidentally added files
* Removed unnecessary matrix multiplications in geo_process_object
* Added fixlights script to build system for fixing custom assets and added option to disable it if needed
* Fixed visual debug with new matstack and cleaned up visual debug code
* Fixed handling of WORLD_SCALE in view matrix so it doesn't get cancelled out
* Fixed clip planes not scaling based on WORLD_SCALE

Co-authored-by: Mr-Wiseguy <mrwiseguyromhacking@gmail.com>
Co-authored-by: Arceveti <arceveti@gmail.com>
Co-authored-by: thecozies <collinpferguson@gmail.com>
2022-07-19 08:04:54 -05:00

934 lines
47 KiB
C

// Door
// 0x03009CE0
// 0x03009CF8
// 0x03009D10
ALIGNED8 static const Texture door_seg3_texture_polished_wooden_door[] = {
#include "actors/door/polished_wooden_door.rgba16.inc.c"
};
// 0x0300AD10
ALIGNED8 static const Texture door_seg3_texture_polished_wooden_door_sides[] = {
#include "actors/door/polished_wooden_door_overlay.rgba16.inc.c"
};
// 0x0300BD10
ALIGNED8 static const Texture door_seg3_texture_rough_wooden_door[] = {
#include "actors/door/rough_wooden_door.rgba16.inc.c"
};
// 0x0300CD10
ALIGNED8 static const Texture door_seg3_texture_rough_wooden_door_sides[] = {
#include "actors/door/rough_wooden_door_overlay.rgba16.inc.c"
};
// 0x0300D510
ALIGNED8 static const Texture door_seg3_texture_metal_door[] = {
#include "actors/door/metal_door.rgba16.inc.c"
};
// 0x0300E510
ALIGNED8 static const Texture door_seg3_texture_metal_door_sides[] = {
#include "actors/door/metal_door_overlay.rgba16.inc.c"
};
// 0x0300ED10
ALIGNED8 static const Texture door_seg3_texture_cave_door[] = {
#include "actors/door/hmc_mural_door.rgba16.inc.c"
};
// 0x0300FD10
ALIGNED8 static const Texture door_seg3_texture_cave_door_sides[] = {
#include "actors/door/hmc_mural_door_overlay.rgba16.inc.c"
};
// 0x03010510
ALIGNED8 static const Texture door_seg3_texture_spooky_door[] = {
#include "actors/door/bbh_door.rgba16.inc.c"
};
// 0x03011510
ALIGNED8 static const Texture door_seg3_texture_spooky_door_sides[] = {
#include "actors/door/bbh_door_overlay.rgba16.inc.c"
};
// 0x03011D10
ALIGNED8 static const Texture door_seg3_texture_zero_star_door_sign[] = {
#include "actors/door/zero_star_door_sign.rgba16.inc.c"
};
// 0x03012510
ALIGNED8 static const Texture door_seg3_texture_one_star_door_sign[] = {
#include "actors/door/one_star_door_sign.rgba16.inc.c"
};
// 0x03012D10
ALIGNED8 static const Texture door_seg3_texture_three_star_door_sign[] = {
#include "actors/door/three_star_door_sign.rgba16.inc.c"
};
// 0x03013510
ALIGNED8 static const Texture door_seg3_texture_lock[] = {
#include "actors/door/door_lock.rgba16.inc.c"
};
// 0x03013910
static const Vtx door_seg3_vertex_polished_wooden_door_near_sides[] = {
{{{ -16, 0, -60}, 0, { 0, 0}, {0x81, 0x00, 0x00, 0xff}}},
{{{ -16, 0, 60}, 0, { 992, 0}, {0x81, 0x00, 0x00, 0xff}}},
{{{ -16, 1024, 60}, 0, { 992, 2016}, {0x81, 0x00, 0x00, 0xff}}},
{{{ -16, 1024, -60}, 0, { 992, 2016}, {0x00, 0x7f, 0x00, 0xff}}},
{{{ -16, 1024, 60}, 0, { 0, 2016}, {0x00, 0x7f, 0x00, 0xff}}},
{{{ 600, 1024, 60}, 0, { 0, 0}, {0x00, 0x7f, 0x00, 0xff}}},
{{{ 600, 1024, -60}, 0, { 992, 0}, {0x00, 0x7f, 0x00, 0xff}}},
{{{ 600, 0, -60}, 0, { 0, 0}, {0x00, 0x81, 0x00, 0xff}}},
{{{ -16, 0, 60}, 0, { 992, 2016}, {0x00, 0x81, 0x00, 0xff}}},
{{{ -16, 0, -60}, 0, { 0, 2016}, {0x00, 0x81, 0x00, 0xff}}},
{{{ 600, 0, 60}, 0, { 992, 0}, {0x00, 0x81, 0x00, 0xff}}},
{{{ 600, 0, 60}, 0, { 0, 0}, {0x7f, 0x00, 0x00, 0xff}}},
{{{ 600, 0, -60}, 0, { 992, 0}, {0x7f, 0x00, 0x00, 0xff}}},
{{{ 600, 1024, -60}, 0, { 992, 2016}, {0x7f, 0x00, 0x00, 0xff}}},
{{{ 600, 1024, 60}, 0, { 0, 2016}, {0x7f, 0x00, 0x00, 0xff}}},
{{{ -16, 1024, -60}, 0, { 0, 2016}, {0x81, 0x00, 0x00, 0xff}}},
};
// 0x03013A10
static const Vtx door_seg3_vertex_polished_wooden_door_near[] = {
{{{ 600, 0, -60}, 0, { 976, 1820}, {0x00, 0x00, 0x81, 0xff}}},
{{{ -16, 0, -60}, 0, { 0, 1820}, {0x00, 0x00, 0x81, 0xff}}},
{{{ -16, 1024, -60}, 0, { 0, 128}, {0x00, 0x00, 0x81, 0xff}}},
{{{ 600, 1024, -60}, 0, { 976, 128}, {0x00, 0x00, 0x81, 0xff}}},
{{{ -16, 0, 60}, 0, { 0, 1820}, {0x00, 0x00, 0x7f, 0xff}}},
{{{ 600, 0, 60}, 0, { 976, 1820}, {0x00, 0x00, 0x7f, 0xff}}},
{{{ 600, 1024, 60}, 0, { 976, 128}, {0x00, 0x00, 0x7f, 0xff}}},
{{{ -16, 1024, 60}, 0, { 0, 128}, {0x00, 0x00, 0x7f, 0xff}}},
};
// 0x03013A90
static const Vtx door_seg3_vertex_polished_wooden_door_handle_1[] = {
{{{ 512, 512, 104}, 0, { 0, 0}, {0xff, 0x7e, 0x01, 0xff}}},
{{{ 456, 432, 160}, 0, { 0, 0}, {0xa6, 0x1f, 0x53, 0xff}}},
{{{ 512, 488, 160}, 0, { 0, 0}, {0x16, 0x49, 0x65, 0xff}}},
{{{ 512, 372, 160}, 0, { 0, 0}, {0xe7, 0xba, 0x66, 0xff}}},
{{{ 572, 432, 160}, 0, { 0, 0}, {0x5a, 0xe3, 0x53, 0xff}}},
{{{ 596, 432, 104}, 0, { 0, 0}, {0x7e, 0x01, 0x01, 0xff}}},
{{{ 512, 348, 104}, 0, { 0, 0}, {0xff, 0x82, 0x01, 0xff}}},
{{{ 432, 432, 104}, 0, { 0, 0}, {0x82, 0x01, 0x01, 0xff}}},
{{{ 512, 488, 44}, 0, { 0, 0}, {0xda, 0x70, 0xd4, 0xff}}},
{{{ 456, 432, 44}, 0, { 0, 0}, {0x8f, 0xde, 0xd4, 0xff}}},
{{{ 512, 372, 44}, 0, { 0, 0}, {0x24, 0x90, 0xd3, 0xff}}},
{{{ 572, 432, 44}, 0, { 0, 0}, {0x6f, 0x28, 0xd3, 0xff}}},
};
// 0x03013B50
static const Vtx door_seg3_vertex_polished_wooden_door_handle_2[] = {
{{{ 512, 488, -156}, 0, { 0, 0}, {0xe8, 0x48, 0x9b, 0xff}}},
{{{ 512, 372, -156}, 0, { 0, 0}, {0x17, 0xb9, 0x9a, 0xff}}},
{{{ 456, 432, -156}, 0, { 0, 0}, {0xa5, 0xe4, 0xae, 0xff}}},
{{{ 432, 432, -100}, 0, { 0, 0}, {0x82, 0x01, 0xff, 0xff}}},
{{{ 512, 512, -100}, 0, { 0, 0}, {0xff, 0x7e, 0xff, 0xff}}},
{{{ 572, 432, -156}, 0, { 0, 0}, {0x59, 0x20, 0xac, 0xff}}},
{{{ 512, 348, -100}, 0, { 0, 0}, {0xff, 0x82, 0xff, 0xff}}},
{{{ 596, 432, -100}, 0, { 0, 0}, {0x7e, 0x01, 0xff, 0xff}}},
{{{ 572, 432, -40}, 0, { 0, 0}, {0x70, 0xdc, 0x2d, 0xff}}},
{{{ 512, 372, -40}, 0, { 0, 0}, {0xd8, 0x91, 0x2d, 0xff}}},
{{{ 456, 432, -40}, 0, { 0, 0}, {0x90, 0x26, 0x2c, 0xff}}},
{{{ 512, 488, -40}, 0, { 0, 0}, {0x22, 0x71, 0x2c, 0xff}}},
};
// 0x03013C10 - 0x03013CC8
const Gfx door_seg3_sub_dl_polished_wooden_door_near[] = {
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, door_seg3_texture_polished_wooden_door_sides),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPLightColor(LIGHT_1, 0xffffffff),
gsSPLightColor(LIGHT_2, 0x3f3f3fff),
gsSPVertex(door_seg3_vertex_polished_wooden_door_near_sides, 16, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0),
gsSP2Triangles( 7, 10, 8, 0x0, 11, 12, 13, 0x0),
gsSP2Triangles(11, 13, 14, 0x0, 0, 2, 15, 0x0),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, door_seg3_texture_polished_wooden_door),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPVertex(door_seg3_vertex_polished_wooden_door_near, 8, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0),
gsSPEndDisplayList(),
};
// 0x03013CC8 - 0x03013D78
const Gfx door_seg3_sub_dl_polished_wooden_door_handle_1[] = {
gsSPLightColor(LIGHT_1, 0xffff00ff),
gsSPLightColor(LIGHT_2, 0x3f3f00ff),
gsSPVertex(door_seg3_vertex_polished_wooden_door_handle_1, 12, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 4, 0x0),
gsSP2Triangles( 2, 1, 3, 0x0, 5, 2, 4, 0x0),
gsSP2Triangles( 5, 0, 2, 0x0, 6, 4, 3, 0x0),
gsSP2Triangles( 7, 6, 3, 0x0, 7, 3, 1, 0x0),
gsSP2Triangles( 6, 5, 4, 0x0, 0, 7, 1, 0x0),
gsSP2Triangles( 8, 9, 7, 0x0, 9, 6, 7, 0x0),
gsSP2Triangles( 8, 7, 0, 0x0, 9, 10, 6, 0x0),
gsSP2Triangles(10, 5, 6, 0x0, 10, 11, 5, 0x0),
gsSP2Triangles(11, 0, 5, 0x0, 11, 8, 0, 0x0),
gsSPEndDisplayList(),
};
// 0x03013D78 - 0x03013E28
const Gfx door_seg3_sub_dl_polished_wooden_door_handle_2[] = {
gsSPLightColor(LIGHT_1, 0xffff00ff),
gsSPLightColor(LIGHT_2, 0x3f3f00ff),
gsSPVertex(door_seg3_vertex_polished_wooden_door_handle_2, 12, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
gsSP2Triangles( 0, 3, 4, 0x0, 0, 5, 1, 0x0),
gsSP2Triangles( 5, 0, 4, 0x0, 2, 1, 6, 0x0),
gsSP2Triangles( 1, 7, 6, 0x0, 1, 5, 7, 0x0),
gsSP2Triangles( 2, 6, 3, 0x0, 5, 4, 7, 0x0),
gsSP2Triangles( 6, 8, 9, 0x0, 3, 6, 9, 0x0),
gsSP2Triangles( 6, 7, 8, 0x0, 4, 3, 10, 0x0),
gsSP2Triangles( 3, 9, 10, 0x0, 7, 4, 11, 0x0),
gsSP2Triangles( 7, 11, 8, 0x0, 4, 10, 11, 0x0),
gsSPEndDisplayList(),
};
// 0x03013E28 - 0x03013EA8
const Gfx door_seg3_dl_polished_wooden_door_near[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB),
gsSPClearGeometryMode(G_SHADING_SMOOTH),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
gsDPTileSync(),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC),
gsSPDisplayList(door_seg3_sub_dl_polished_wooden_door_near),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPSetGeometryMode(G_SHADING_SMOOTH),
gsSPDisplayList(door_seg3_sub_dl_polished_wooden_door_handle_1),
gsSPDisplayList(door_seg3_sub_dl_polished_wooden_door_handle_2),
gsSPEndDisplayList(),
};
// 0x03013EA8 - 0x03013F20
const Gfx door_seg3_dl_cabin_door_near[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB),
gsSPClearGeometryMode(G_SHADING_SMOOTH),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
gsDPTileSync(),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC),
gsSPDisplayList(door_seg3_sub_dl_polished_wooden_door_near),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPSetGeometryMode(G_SHADING_SMOOTH),
gsSPDisplayList(door_seg3_sub_dl_polished_wooden_door_handle_1),
gsSPEndDisplayList(),
};
// 0x03013F20
static const Vtx door_seg3_vertex_polished_wooden_door_far[] = {
{{{ 591, 0, -60}, 0, { 976, 1820}, {0x00, 0x00, 0x81, 0xff}}},
{{{ -8, 1010, -60}, 0, { 0, 128}, {0x00, 0x00, 0x81, 0xff}}},
{{{ 591, 1010, -60}, 0, { 976, 128}, {0x00, 0x00, 0x81, 0xff}}},
{{{ -8, 0, -60}, 0, { 0, 1820}, {0x00, 0x00, 0x81, 0xff}}},
{{{ -8, 0, 60}, 0, { 0, 1820}, {0x00, 0x00, 0x7f, 0xff}}},
{{{ 591, 1010, 60}, 0, { 976, 128}, {0x00, 0x00, 0x7f, 0xff}}},
{{{ -8, 1010, 60}, 0, { 0, 128}, {0x00, 0x00, 0x7f, 0xff}}},
{{{ 591, 0, 60}, 0, { 976, 1820}, {0x00, 0x00, 0x7f, 0xff}}},
};
// 0x03013FA0
static const Vtx door_seg3_vertex_polished_wooden_door_far_handle[] = {
{{{ 492, 468, -154}, 0, { 0, 0}, {0x00, 0x00, 0x81, 0xff}}},
{{{ 546, 412, -154}, 0, { 0, 0}, {0x00, 0x00, 0x81, 0xff}}},
{{{ 492, 357, -154}, 0, { 0, 0}, {0x00, 0x00, 0x81, 0xff}}},
{{{ 437, 412, -154}, 0, { 0, 0}, {0x00, 0x00, 0x81, 0xff}}},
{{{ 492, 468, 154}, 0, { 0, 0}, {0x00, 0x00, 0x7f, 0xff}}},
{{{ 492, 357, 154}, 0, { 0, 0}, {0x00, 0x00, 0x7f, 0xff}}},
{{{ 546, 412, 154}, 0, { 0, 0}, {0x00, 0x00, 0x7f, 0xff}}},
{{{ 437, 412, 154}, 0, { 0, 0}, {0x00, 0x00, 0x7f, 0xff}}},
};
// 0x03014020 - 0x03014100
const Gfx door_seg3_sub_dl_polished_wooden_door_far[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB),
gsSPClearGeometryMode(G_SHADING_SMOOTH),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
gsDPTileSync(),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, door_seg3_texture_polished_wooden_door),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPLightColor(LIGHT_1, 0xffffffff),
gsSPLightColor(LIGHT_2, 0x3f3f3fff),
gsSPVertex(door_seg3_vertex_polished_wooden_door_far, 8, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0),
gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPLightColor(LIGHT_1, 0xffff00ff),
gsSPLightColor(LIGHT_2, 0x3f3f00ff),
gsSPVertex(door_seg3_vertex_polished_wooden_door_far_handle, 8, 0),
gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0),
gsSPSetGeometryMode(G_SHADING_SMOOTH),
gsSPEndDisplayList(),
};
// 0x03014100 - 0x03014128
const Gfx door_seg3_dl_polished_wooden_door_far[] = {
gsSPDisplayList(door_seg3_sub_dl_polished_wooden_door_far),
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
gsSPSetGeometryMode(G_SHADING_SMOOTH),
gsSPEndDisplayList(),
};
// 0x03014128 - 0x03014140
const Gfx door_seg3_dl_cabin_door_far[] = {
gsSPDisplayList(door_seg3_sub_dl_polished_wooden_door_far),
gsSPSetGeometryMode(G_SHADING_SMOOTH),
gsSPEndDisplayList(),
};
// 0x03014140
static const Vtx door_seg3_vertex_star_sign_near[] = {
{{{ 441, 850, 64}, 0, { 992, 0}, {0x00, 0x00, 0x7f, 0xff}}},
{{{ 141, 850, 64}, 0, { 0, 0}, {0x00, 0x00, 0x7f, 0xff}}},
{{{ 141, 550, 64}, 0, { 0, 992}, {0x00, 0x00, 0x7f, 0xff}}},
{{{ 441, 550, 64}, 0, { 992, 992}, {0x00, 0x00, 0x7f, 0xff}}},
};
// 0x03014180
static const Vtx door_seg3_vertex_star_sign_far[] = {
{{{ 441, 850, 60}, 0, { 992, 0}, {0x00, 0x00, 0x7f, 0xff}}},
{{{ 141, 850, 60}, 0, { 0, 0}, {0x00, 0x00, 0x7f, 0xff}}},
{{{ 141, 550, 60}, 0, { 0, 992}, {0x00, 0x00, 0x7f, 0xff}}},
{{{ 441, 550, 60}, 0, { 992, 992}, {0x00, 0x00, 0x7f, 0xff}}},
};
// 0x030141C0 - 0x03014218
const Gfx door_seg3_vertex_star_sign_begin[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_SHADING_SMOOTH),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
gsDPTileSync(),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
gsSPLightColor(LIGHT_1, 0xffffffff),
gsSPLightColor(LIGHT_2, 0x3f3f3fff),
gsSPEndDisplayList(),
};
// 0x03014218 - 0x03014250
const Gfx door_seg3_vertex_star_sign_end[] = {
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPSetGeometryMode(G_SHADING_SMOOTH),
gsSPEndDisplayList(),
};
// 0x03014250 - 0x03014280
const Gfx door_seg3_dl_zero_star_near[] = {
gsSPDisplayList(door_seg3_vertex_star_sign_begin),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, door_seg3_texture_zero_star_door_sign),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPVertex(door_seg3_vertex_star_sign_near, 4, 0),
gsSPBranchList(door_seg3_vertex_star_sign_end),
};
// 0x03014280 - 0x030142B0
const Gfx door_seg3_dl_zero_star_far[] = {
gsSPDisplayList(door_seg3_vertex_star_sign_begin),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, door_seg3_texture_zero_star_door_sign),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPVertex(door_seg3_vertex_star_sign_far, 4, 0),
gsSPBranchList(door_seg3_vertex_star_sign_end),
};
// 0x030142B0 - 0x030142E0
const Gfx door_seg3_dl_one_star_near[] = {
gsSPDisplayList(door_seg3_vertex_star_sign_begin),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, door_seg3_texture_one_star_door_sign),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPVertex(door_seg3_vertex_star_sign_near, 4, 0),
gsSPBranchList(door_seg3_vertex_star_sign_end),
};
// 0x030142E0 - 0x03014310
const Gfx door_seg3_dl_one_star_far[] = {
gsSPDisplayList(door_seg3_vertex_star_sign_begin),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, door_seg3_texture_one_star_door_sign),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPVertex(door_seg3_vertex_star_sign_far, 4, 0),
gsSPBranchList(door_seg3_vertex_star_sign_end),
};
// 0x03014310 - 0x03014340
const Gfx door_seg3_dl_three_stars_near[] = {
gsSPDisplayList(door_seg3_vertex_star_sign_begin),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, door_seg3_texture_three_star_door_sign),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPVertex(door_seg3_vertex_star_sign_near, 4, 0),
gsSPBranchList(door_seg3_vertex_star_sign_end),
};
// 0x03014340 - 0x03014370
const Gfx door_seg3_dl_three_stars_far[] = {
gsSPDisplayList(door_seg3_vertex_star_sign_begin),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, door_seg3_texture_three_star_door_sign),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPVertex(door_seg3_vertex_star_sign_far, 4, 0),
gsSPBranchList(door_seg3_vertex_star_sign_end),
};
static const Vtx door_seg3_vertex_key_door_sides[] = {
{{{ -16, 1024, -60}, 0, { 0, 2016}, {0x81, 0x00, 0x00, 0xff}}},
{{{ -16, 0, -60}, 0, { 0, 0}, {0x81, 0x00, 0x00, 0xff}}},
{{{ -16, 0, 60}, 0, { 992, 0}, {0x81, 0x00, 0x00, 0xff}}},
{{{ -16, 1024, 60}, 0, { 992, 2016}, {0x81, 0x00, 0x00, 0xff}}},
{{{ -16, 1024, -60}, 0, { 992, 2016}, {0x00, 0x7f, 0x00, 0xff}}},
{{{ -16, 1024, 60}, 0, { 0, 2016}, {0x00, 0x7f, 0x00, 0xff}}},
{{{ 600, 1024, 60}, 0, { 0, 0}, {0x00, 0x7f, 0x00, 0xff}}},
{{{ 600, 1024, -60}, 0, { 992, 0}, {0x00, 0x7f, 0x00, 0xff}}},
{{{ 600, 0, -60}, 0, { 0, 0}, {0x00, 0x81, 0x00, 0xff}}},
{{{ -16, 0, 60}, 0, { 992, 2016}, {0x00, 0x81, 0x00, 0xff}}},
{{{ -16, 0, -60}, 0, { 0, 2016}, {0x00, 0x81, 0x00, 0xff}}},
{{{ 600, 0, 60}, 0, { 992, 0}, {0x00, 0x81, 0x00, 0xff}}},
{{{ 600, 0, 60}, 0, { 0, 0}, {0x7f, 0x00, 0x00, 0xff}}},
{{{ 600, 0, -60}, 0, { 992, 0}, {0x7f, 0x00, 0x00, 0xff}}},
{{{ 600, 1024, -60}, 0, { 992, 2016}, {0x7f, 0x00, 0x00, 0xff}}},
{{{ 600, 1024, 60}, 0, { 0, 2016}, {0x7f, 0x00, 0x00, 0xff}}},
};
const Gfx door_seg3_sub_dl_key_door_sides[] = {
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, door_seg3_texture_polished_wooden_door_sides),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPLightColor(LIGHT_1, 0xffffffff),
gsSPLightColor(LIGHT_2, 0x3f3f3fff),
gsSPVertex(door_seg3_vertex_key_door_sides, 16, 0),
gsSP2Triangles( 0, 1, 3, 0x0, 1, 2, 3, 0x0),
gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0),
gsSP2Triangles( 8, 9, 10, 0x0, 8, 11, 9, 0x0),
gsSP2Triangles(12, 13, 14, 0x0, 12, 14, 15, 0x0),
gsSPEndDisplayList(),
};
static const Vtx door_seg3_vertex_key_door[] = {
// right, lock on left
{{{ 600, 0, -60}, 0, { 976, 1820}, {0x00, 0x00, 0x81, 0xff}}},
{{{ -16, 0, -60}, 0, { 0, 1820}, {0x00, 0x00, 0x81, 0xff}}},
{{{ -16, 1024, -60}, 0, { 0, 128}, {0x00, 0x00, 0x81, 0xff}}},
{{{ 600, 1024, -60}, 0, { 976, 128}, {0x00, 0x00, 0x81, 0xff}}},
{{{ 600, 544, -60}, 0, { 976, 928}, {0x00, 0x00, 0x81, 0xff}}},
{{{ 400, 544, -60}, 0, { 624, 928}, {0x00, 0x00, 0x81, 0xff}}},
{{{ 400, 916, -60}, 0, { 624, 304}, {0x00, 0x00, 0x81, 0xff}}},
{{{ 600, 916, -60}, 0, { 976, 304}, {0x00, 0x00, 0x81, 0xff}}},
// left, lock on right
{{{ -16, 0, 60}, 0, { 0, 1820}, {0x00, 0x00, 0x7f, 0xff}}},
{{{ 600, 0, 60}, 0, { 976, 1820}, {0x00, 0x00, 0x7f, 0xff}}},
{{{ 600, 1024, 60}, 0, { 976, 128}, {0x00, 0x00, 0x7f, 0xff}}},
{{{ -16, 1024, 60}, 0, { 0, 128}, {0x00, 0x00, 0x7f, 0xff}}},
{{{ 600, 916, 60}, 0, { 976, 304}, {0x00, 0x00, 0x7f, 0xff}}},
{{{ 400, 544, 60}, 0, { 624, 928}, {0x00, 0x00, 0x7f, 0xff}}},
{{{ 600, 544, 60}, 0, { 976, 928}, {0x00, 0x00, 0x7f, 0xff}}},
{{{ 400, 916, 60}, 0, { 624, 304}, {0x00, 0x00, 0x7f, 0xff}}},
};
const Gfx door_seg3_sub_dl_key_door[] = {
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, door_seg3_texture_polished_wooden_door),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPVertex(door_seg3_vertex_key_door, 16, 0),
// right, lock on left
gsSP2Triangles( 0, 1, 5, 0x0, 0, 5, 4, 0x0),
gsSP2Triangles( 1, 2, 5, 0x0, 2, 3, 6, 0x0),
gsSP2Triangles( 2, 6, 5, 0x0, 3, 7, 6, 0x0),
// left, lock on right
gsSP2Triangles( 8, 9, 13, 0x0, 8, 13, 11, 0x0),
gsSP2Triangles( 9, 14, 13, 0x0, 10, 11, 15, 0x0),
gsSP2Triangles(10, 15, 12, 0x0, 11, 13, 15, 0x0),
gsSPEndDisplayList(),
};
// 0x03014370
static const Vtx door_seg3_vertex_lock[] = {
{{{ 600, 916, 60}, 0, { 480, 0}, {0x00, 0x00, 0x7f, 0xff}}},
{{{ 400, 544, 60}, 0, { 0, 992}, {0x00, 0x00, 0x7f, 0xff}}},
{{{ 600, 544, 60}, 0, { 480, 992}, {0x00, 0x00, 0x7f, 0xff}}},
{{{ 400, 916, 60}, 0, { 0, 0}, {0x00, 0x00, 0x7f, 0xff}}},
{{{ 600, 544, -60}, 0, { 480, 992}, {0x00, 0x00, 0x81, 0xff}}},
{{{ 400, 544, -60}, 0, { 0, 992}, {0x00, 0x00, 0x81, 0xff}}},
{{{ 400, 916, -60}, 0, { 0, 0}, {0x00, 0x00, 0x81, 0xff}}},
{{{ 600, 916, -60}, 0, { 480, 0}, {0x00, 0x00, 0x81, 0xff}}},
};
// 0x03014528 - 0x03014540
const Gfx door_seg3_sub_dl_lock[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB),
gsSPClearGeometryMode(G_SHADING_SMOOTH),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
gsDPTileSync(),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 4, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 4, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (16 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, door_seg3_texture_lock),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 16 * 32 - 1, CALC_DXT(16, G_IM_SIZ_16b_BYTES)),
gsSPLightColor(LIGHT_1, 0xffffffff),
gsSPLightColor(LIGHT_2, 0x3f3f3fff),
gsSPVertex(door_seg3_vertex_lock, 8, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0),
gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPSetGeometryMode(G_SHADING_SMOOTH),
gsSPEndDisplayList(),
};
// 0x03014528 - 0x03014540
const Gfx door_seg3_dl_key_door[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB),
gsSPClearGeometryMode(G_SHADING_SMOOTH),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
gsDPTileSync(),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC),
gsSPDisplayList(door_seg3_sub_dl_key_door_sides),
gsSPDisplayList(door_seg3_sub_dl_key_door),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPSetGeometryMode(G_SHADING_SMOOTH),
gsSPDisplayList(door_seg3_sub_dl_polished_wooden_door_handle_1),
gsSPDisplayList(door_seg3_sub_dl_polished_wooden_door_handle_2),
gsSPDisplayList(door_seg3_sub_dl_lock),
gsSPEndDisplayList(),
};
// 0x03014558
static const Vtx door_seg3_vertex_themed_door_sides[] = {
{{{ -8, 1000, -60}, 0, { 0, 70}, {0x81, 0x00, 0x00, 0xff}}},
{{{ -8, 0, -60}, 0, { 0, 936}, {0x81, 0x00, 0x00, 0xff}}},
{{{ -8, 0, 60}, 0, { 992, 936}, {0x81, 0x00, 0x00, 0xff}}},
{{{ -8, 0, -60}, 0, { 992, 114}, {0x00, 0x81, 0x00, 0xff}}},
{{{ 591, 0, -60}, 0, { 992, 856}, {0x00, 0x81, 0x00, 0xff}}},
{{{ 591, 0, 60}, 0, { 0, 856}, {0x00, 0x81, 0x00, 0xff}}},
{{{ -8, 0, 60}, 0, { 0, 114}, {0x00, 0x81, 0x00, 0xff}}},
{{{ -8, 1000, 60}, 0, { 0, 114}, {0x00, 0x7f, 0x00, 0xff}}},
{{{ 591, 1000, -60}, 0, { 992, 856}, {0x00, 0x7f, 0x00, 0xff}}},
{{{ -8, 1000, -60}, 0, { 992, 114}, {0x00, 0x7f, 0x00, 0xff}}},
{{{ 591, 1000, 60}, 0, { 0, 856}, {0x00, 0x7f, 0x00, 0xff}}},
{{{ 591, 1000, 60}, 0, { 992, 70}, {0x7f, 0x00, 0x00, 0xff}}},
{{{ 591, 0, 60}, 0, { 992, 936}, {0x7f, 0x00, 0x00, 0xff}}},
{{{ 591, 0, -60}, 0, { 0, 936}, {0x7f, 0x00, 0x00, 0xff}}},
{{{ 591, 1000, -60}, 0, { 0, 70}, {0x7f, 0x00, 0x00, 0xff}}},
{{{ -8, 1000, 60}, 0, { 992, 70}, {0x81, 0x00, 0x00, 0xff}}},
};
// 0x03014658
static const Vtx door_seg3_vertex_themed_door[] = {
{{{ -8, 0, 60}, 0, { 992, 2016}, {0x00, 0x00, 0x7f, 0xff}}},
{{{ 591, 1000, 60}, 0, { 0, 0}, {0x00, 0x00, 0x7f, 0xff}}},
{{{ -8, 1000, 60}, 0, { 992, 0}, {0x00, 0x00, 0x7f, 0xff}}},
{{{ 591, 0, 60}, 0, { 0, 2016}, {0x00, 0x00, 0x7f, 0xff}}},
{{{ 591, 0, -60}, 0, { 0, 2016}, {0x00, 0x00, 0x81, 0xff}}},
{{{ -8, 0, -60}, 0, { 992, 2016}, {0x00, 0x00, 0x81, 0xff}}},
{{{ -8, 1000, -60}, 0, { 992, 0}, {0x00, 0x00, 0x81, 0xff}}},
{{{ 591, 1000, -60}, 0, { 0, 0}, {0x00, 0x00, 0x81, 0xff}}},
};
// 0x030146D8
static const Vtx door_seg3_vertex_themed_handle_near_1[] = {
{{{ 492, 468, -154}, 0, { 0, 0}, {0xe8, 0x47, 0x9a, 0xff}}},
{{{ 414, 412, -100}, 0, { 0, 0}, {0x82, 0x00, 0x00, 0xff}}},
{{{ 492, 491, -100}, 0, { 0, 0}, {0x00, 0x7e, 0x00, 0xff}}},
{{{ 492, 468, 154}, 0, { 0, 0}, {0x18, 0x47, 0x66, 0xff}}},
{{{ 492, 357, 154}, 0, { 0, 0}, {0xe9, 0xb8, 0x65, 0xff}}},
{{{ 546, 412, 154}, 0, { 0, 0}, {0x5b, 0xe2, 0x53, 0xff}}},
{{{ 437, 412, 154}, 0, { 0, 0}, {0xa5, 0x1d, 0x53, 0xff}}},
{{{ 492, 491, 100}, 0, { 0, 0}, {0x00, 0x7e, 0x00, 0xff}}},
{{{ 569, 412, 100}, 0, { 0, 0}, {0x7e, 0x00, 0x00, 0xff}}},
{{{ 492, 334, 100}, 0, { 0, 0}, {0x00, 0x82, 0x00, 0xff}}},
{{{ 414, 412, 100}, 0, { 0, 0}, {0x82, 0x00, 0x00, 0xff}}},
{{{ 492, 468, 44}, 0, { 0, 0}, {0xdb, 0x6f, 0xd1, 0xff}}},
{{{ 437, 412, 44}, 0, { 0, 0}, {0x91, 0xdb, 0xd2, 0xff}}},
{{{ 492, 357, 44}, 0, { 0, 0}, {0x26, 0x91, 0xd2, 0xff}}},
{{{ 546, 412, 44}, 0, { 0, 0}, {0x70, 0x24, 0xd2, 0xff}}},
};
// 0x030147C8
static const Vtx door_seg3_vertex_themed_handle_near_2[] = {
{{{ 492, 491, -100}, 0, { 0, 0}, {0x00, 0x7e, 0x00, 0xff}}},
{{{ 437, 412, -44}, 0, { 0, 0}, {0x90, 0x24, 0x2e, 0xff}}},
{{{ 492, 468, -44}, 0, { 0, 0}, {0x26, 0x6f, 0x2f, 0xff}}},
{{{ 492, 468, -154}, 0, { 0, 0}, {0xe8, 0x47, 0x9a, 0xff}}},
{{{ 546, 412, -154}, 0, { 0, 0}, {0x5b, 0x1d, 0xae, 0xff}}},
{{{ 492, 357, -154}, 0, { 0, 0}, {0x18, 0xb9, 0x9b, 0xff}}},
{{{ 437, 412, -154}, 0, { 0, 0}, {0xa6, 0xe2, 0xad, 0xff}}},
{{{ 414, 412, -100}, 0, { 0, 0}, {0x82, 0x00, 0x00, 0xff}}},
{{{ 569, 412, -100}, 0, { 0, 0}, {0x7e, 0x00, 0x00, 0xff}}},
{{{ 492, 334, -100}, 0, { 0, 0}, {0x00, 0x82, 0x00, 0xff}}},
{{{ 492, 357, -44}, 0, { 0, 0}, {0xdb, 0x90, 0x2e, 0xff}}},
{{{ 546, 412, -44}, 0, { 0, 0}, {0x70, 0xdb, 0x2e, 0xff}}},
};
// 0x03014888 - 0x030149C0
const Gfx door_seg3_sub_dl_themed_handle_near[] = { // TODO: Combine vertices
gsSPVertex(door_seg3_vertex_themed_handle_near_1, 15, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
gsSP2Triangles( 3, 6, 4, 0x0, 7, 6, 3, 0x0),
gsSP2Triangles( 8, 3, 5, 0x0, 8, 7, 3, 0x0),
gsSP2Triangles( 9, 5, 4, 0x0, 10, 9, 4, 0x0),
gsSP2Triangles(10, 4, 6, 0x0, 9, 8, 5, 0x0),
gsSP2Triangles( 7, 10, 6, 0x0, 11, 12, 10, 0x0),
gsSP2Triangles(11, 10, 7, 0x0, 12, 9, 10, 0x0),
gsSP2Triangles(12, 13, 9, 0x0, 13, 8, 9, 0x0),
gsSP2Triangles(14, 7, 8, 0x0, 13, 14, 8, 0x0),
gsSP1Triangle(14, 11, 7, 0x0),
gsSPVertex(door_seg3_vertex_themed_handle_near_2, 12, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
gsSP2Triangles( 3, 6, 7, 0x0, 4, 3, 0, 0x0),
gsSP2Triangles( 5, 4, 8, 0x0, 6, 5, 9, 0x0),
gsSP2Triangles( 5, 8, 9, 0x0, 3, 5, 6, 0x0),
gsSP2Triangles( 6, 9, 7, 0x0, 4, 0, 8, 0x0),
gsSP2Triangles( 7, 9, 10, 0x0, 9, 11, 10, 0x0),
gsSP2Triangles( 9, 8, 11, 0x0, 0, 7, 1, 0x0),
gsSP2Triangles( 7, 10, 1, 0x0, 8, 0, 2, 0x0),
gsSP1Triangle( 8, 2, 11, 0x0),
gsSPEndDisplayList(),
};
// 0x030149C0 - 0x03014A20
const Gfx door_seg3_sub_dl_themed_door_sides[] = {
gsSPLightColor(LIGHT_1, 0xffffffff),
gsSPLightColor(LIGHT_2, 0x3f3f3fff),
gsSPVertex(door_seg3_vertex_themed_door_sides, 16, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0),
gsSP2Triangles( 7, 10, 8, 0x0, 11, 12, 13, 0x0),
gsSP2Triangles(11, 13, 14, 0x0, 0, 2, 15, 0x0),
gsSPEndDisplayList(),
};
// 0x03014A20 - 0x03014A50
const Gfx door_seg3_sub_dl_themed_door[] = {
gsSPVertex(door_seg3_vertex_themed_door, 8, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0),
gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0),
gsSPEndDisplayList(),
};
// 0x03014A50 - 0x03014A80
const Gfx door_seg3_sub_dl_themed_door_begin[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB),
gsSPClearGeometryMode(G_SHADING_SMOOTH),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
gsSPEndDisplayList(),
};
// 0x03014A80 - 0x03014B30
const Gfx door_seg3_dl_rough_wooden_door_near[] = {
gsSPDisplayList(door_seg3_sub_dl_themed_door_begin),
gsDPTileSync(),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, door_seg3_texture_rough_wooden_door_sides),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(door_seg3_sub_dl_themed_door_sides),
gsDPTileSync(),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, door_seg3_texture_rough_wooden_door),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(door_seg3_sub_dl_themed_door),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPSetGeometryMode(G_SHADING_SMOOTH),
gsSPLightColor(LIGHT_1, 0xffff00ff),
gsSPLightColor(LIGHT_2, 0x3f3f00ff),
gsSPBranchList(door_seg3_sub_dl_themed_handle_near),
};
// 0x03014B30 - 0x03014BE0
const Gfx door_seg3_dl_rough_wooden_door2_near[] = {
gsSPDisplayList(door_seg3_sub_dl_themed_door_begin),
gsDPTileSync(),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, door_seg3_texture_rough_wooden_door_sides),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(door_seg3_sub_dl_themed_door_sides),
gsDPTileSync(),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, door_seg3_texture_rough_wooden_door),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(door_seg3_sub_dl_themed_door),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPSetGeometryMode(G_SHADING_SMOOTH),
gsSPLightColor(LIGHT_1, 0xffff00ff),
gsSPLightColor(LIGHT_2, 0x3f3f00ff),
gsSPBranchList(door_seg3_sub_dl_themed_handle_near),
};
// 0x03014BE0 - 0x03014C90
const Gfx door_seg3_dl_metal_door_near[] = {
gsSPDisplayList(door_seg3_sub_dl_themed_door_begin),
gsDPTileSync(),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, door_seg3_texture_metal_door_sides),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(door_seg3_sub_dl_themed_door_sides),
gsDPTileSync(),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, door_seg3_texture_metal_door),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(door_seg3_sub_dl_themed_door),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPSetGeometryMode(G_SHADING_SMOOTH),
gsSPLightColor(LIGHT_1, 0xffff00ff),
gsSPLightColor(LIGHT_2, 0x3f3f00ff),
gsSPBranchList(door_seg3_sub_dl_themed_handle_near),
};
// 0x03014C90 - 0x03014D40
const Gfx door_seg3_dl_cave_door_near[] = {
gsSPDisplayList(door_seg3_sub_dl_themed_door_begin),
gsDPTileSync(),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, door_seg3_texture_cave_door_sides),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(door_seg3_sub_dl_themed_door_sides),
gsDPTileSync(),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, door_seg3_texture_cave_door),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(door_seg3_sub_dl_themed_door),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPSetGeometryMode(G_SHADING_SMOOTH),
gsSPLightColor(LIGHT_1, 0xffff00ff),
gsSPLightColor(LIGHT_2, 0x3f3f00ff),
gsSPBranchList(door_seg3_sub_dl_themed_handle_near),
};
// 0x03014D40 - 0x03014DF0
const Gfx door_seg3_dl_haunted_door_near[] = {
gsSPDisplayList(door_seg3_sub_dl_themed_door_begin),
gsDPTileSync(),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, door_seg3_texture_spooky_door_sides),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(door_seg3_sub_dl_themed_door_sides),
gsDPTileSync(),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, door_seg3_texture_spooky_door),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(door_seg3_sub_dl_themed_door),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPSetGeometryMode(G_SHADING_SMOOTH),
gsSPLightColor(LIGHT_1, 0xffff00ff),
gsSPLightColor(LIGHT_2, 0x3f3f00ff),
gsSPBranchList(door_seg3_sub_dl_themed_handle_near),
};
// 0x03014DF0
static const Vtx door_seg3_vertex_themed_door_far[] = {
{{{ 591, 0, -60}, 0, { 0, 2016}, {0x00, 0x00, 0x81, 0xff}}},
{{{ -8, 1000, -60}, 0, { 992, 0}, {0x00, 0x00, 0x81, 0xff}}},
{{{ 591, 1000, -60}, 0, { 0, 0}, {0x00, 0x00, 0x81, 0xff}}},
{{{ -8, 0, -60}, 0, { 992, 2016}, {0x00, 0x00, 0x81, 0xff}}},
{{{ -8, 0, 60}, 0, { 992, 2016}, {0x00, 0x00, 0x7f, 0xff}}},
{{{ 591, 1000, 60}, 0, { 0, 0}, {0x00, 0x00, 0x7f, 0xff}}},
{{{ -8, 1000, 60}, 0, { 992, 0}, {0x00, 0x00, 0x7f, 0xff}}},
{{{ 591, 0, 60}, 0, { 0, 2016}, {0x00, 0x00, 0x7f, 0xff}}},
};
// 0x03014E70
static const Vtx door_seg3_vertex_themed_handle_far[] = {
{{{ 492, 468, 154}, 0, { 0, 0}, {0x00, 0x00, 0x7f, 0xff}}},
{{{ 492, 357, 154}, 0, { 0, 0}, {0x00, 0x00, 0x7f, 0xff}}},
{{{ 546, 412, 154}, 0, { 0, 0}, {0x00, 0x00, 0x7f, 0xff}}},
{{{ 437, 412, 154}, 0, { 0, 0}, {0x00, 0x00, 0x7f, 0xff}}},
{{{ 492, 468, -154}, 0, { 0, 0}, {0x00, 0x00, 0x81, 0xff}}},
{{{ 546, 412, -154}, 0, { 0, 0}, {0x00, 0x00, 0x81, 0xff}}},
{{{ 492, 357, -154}, 0, { 0, 0}, {0x00, 0x00, 0x81, 0xff}}},
{{{ 437, 412, -154}, 0, { 0, 0}, {0x00, 0x00, 0x81, 0xff}}},
};
// 0x03014EF0 - 0x03014F30
const Gfx door_seg3_sub_dl_themed_door_far[] = {
gsSPLightColor(LIGHT_1, 0xffffffff),
gsSPLightColor(LIGHT_2, 0x3f3f3fff),
gsSPVertex(door_seg3_vertex_themed_door_far, 8, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0),
gsSP2Triangles( 4, 5, 6, 0x0, 4, 7, 5, 0x0),
gsSPEndDisplayList(),
};
// 0x03014F30 - 0x03014F68
const Gfx door_seg3_sub_dl_themed_handle_far[] = {
gsSPVertex(door_seg3_vertex_themed_handle_far, 8, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0),
gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0),
gsSPSetGeometryMode(G_SHADING_SMOOTH),
gsSPEndDisplayList(),
};
// 0x03014F68 - 0x03014F98
const Gfx door_seg3_sub_dl_themed_door_far_begin[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB),
gsSPClearGeometryMode(G_SHADING_SMOOTH),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
gsSPEndDisplayList(),
};
// 0x03014F98 - 0x03015008
const Gfx door_seg3_dl_rough_wooden_door_far[] = {
gsSPDisplayList(door_seg3_sub_dl_themed_door_far_begin),
gsDPTileSync(),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, door_seg3_texture_rough_wooden_door),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(door_seg3_sub_dl_themed_door_far),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPLightColor(LIGHT_1, 0xffff00ff),
gsSPLightColor(LIGHT_2, 0x3f3f00ff),
gsSPBranchList(door_seg3_sub_dl_themed_handle_far),
};
// 0x03015008 - 0x03015078
const Gfx door_seg3_dl_rough_wooden_door2_far[] = {
gsSPDisplayList(door_seg3_sub_dl_themed_door_far_begin),
gsDPTileSync(),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, door_seg3_texture_rough_wooden_door),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(door_seg3_sub_dl_themed_door_far),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPLightColor(LIGHT_1, 0xffff00ff),
gsSPLightColor(LIGHT_2, 0x3f3f00ff),
gsSPBranchList(door_seg3_sub_dl_themed_handle_far),
};
// 0x03015078 - 0x030150E8
const Gfx door_seg3_dl_metal_door_far[] = {
gsSPDisplayList(door_seg3_sub_dl_themed_door_far_begin),
gsDPTileSync(),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, door_seg3_texture_metal_door),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(door_seg3_sub_dl_themed_door_far),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPLightColor(LIGHT_1, 0xffff00ff),
gsSPLightColor(LIGHT_2, 0x3f3f00ff),
gsSPBranchList(door_seg3_sub_dl_themed_handle_far),
};
// 0x030150E8 - 0x03015158
const Gfx door_seg3_dl_cave_door_far[] = {
gsSPDisplayList(door_seg3_sub_dl_themed_door_far_begin),
gsDPTileSync(),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, door_seg3_texture_cave_door),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(door_seg3_sub_dl_themed_door_far),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPLightColor(LIGHT_1, 0xffff00ff),
gsSPLightColor(LIGHT_2, 0x3f3f00ff),
gsSPBranchList(door_seg3_sub_dl_themed_handle_far),
};
// 0x03015158 - 0x030151C8
const Gfx door_seg3_dl_haunted_door_far[] = {
gsSPDisplayList(door_seg3_sub_dl_themed_door_far_begin),
gsDPTileSync(),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, door_seg3_texture_spooky_door),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(door_seg3_sub_dl_themed_door_far),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPLightColor(LIGHT_1, 0xffff00ff),
gsSPLightColor(LIGHT_2, 0x3f3f00ff),
gsSPBranchList(door_seg3_sub_dl_themed_handle_far),
};