Files
Microtransactions64/actors/koopa_shell/model.inc.c
thecozies f3e61a31aa HackerSM64 v2.0.0
* buffers: refresh 15 and revert to base decomp

* behavior script

* color helper functions

* extended bounds

* egeo_layout

* fixed model ids

* camera conf improved

* message panel ucode small

* graph node

* level script

* mathutil updates

* mathutil updates (allow unused funcs)

* behaviors a - beta_fish

* Add librtc and fix some data declarations

* Move GRUCODE define to proper location in makefile

* Refresh 15

* extra

* Make ROM name smaller and change messages printed on build a bit

* Fix console (lol)

* Update UNF to latest master

* Make ucode load from .o's (and also fix Super3D)

* Fix crash with rumble + custom mario model

* graph node and mathutil

* removed behaviors

* Ldtob documentation

* _Putfld labeling

* area

* behavior actions

* camera

* debug updates

* bubbles

* envfx snow

* farcall helpers

* game init

* geo misc

* hud

* only check if VC on render init

* ingame menu

* revert goddard to base decomp

* insn disasm

* interaction documentation

* level geo

* level update defines

* macro special objects formatting changes

* main.h documentation

* map parser documentation & formatting

* airborne documentation

* mario actions automatic documentation

* mario actions cutscene documentation

* mario actions moving documentation and options

* mario actions object documentation and options

* mario stationary documentation

* mario submerged documentation

* mario misc documentation

* mario step: ledge grab fixes and documentation

* mario documentation

* memory.h documentation

* moving textures

* object behaviors

* object collision

* fix flamethrower bug

* object helpers

* object list processor documentation

* paintings

* platform displacement

* print / printf

* puppycam absf

* puppyprint updates and formatting changes

* rendering graph node performance optimizations

* rumble opt and doc

* hqvm back to ultrasm64

* save file documentation and unlock defines

* s2d engine

* reset various files to ultrasm64

* file select

* intro geo documentation

* screen transition documentation

* segment2.h

* shadow overhaul

* skybox refactor

* sound init: clean up define usage + documentation

* spawn object optimizations and documentation

* spawn sound cleanup

* sram to ultrasm64

* star select cleanup

* title screen cleanup

* dialogs / text

* rename stomp smoke

* stomp smoke -> small water splash

* updated README

* compilation flags

* optimized file positions + support function/data sections

* surface collision performance improvements

* surface load optimizations

* camera conf documentation

* Allow easier command for opening puppyprint debug

* Rearranged framebuffers & fixed puppyprint console printing

* Fix shadow scaling and shifting

* Fix SILHOUETTE, OBJECTS_REJ, and ucode loading, also clean up render phase system a bit.

* Fixed build with BETTER_HANGING off

* Clean up OBJECTS_REJ ifdefs

* Fix duplicate comment & graph render layers/flags bitmask

* Fixed build with BETTER_HANGING off

* Fix Fast64 importing by reverting sSegmentTable change

* Readded missing functions that caused build errors with Mario head enabled

* Fixed clang compilation issues

* Add INTER mode for geo_update_layer_transparency

* Fix build warnings

* bugfix: miscalculation in obj_turn_toward_object

* Some puppytech fixes

* Further Puppycamera fixes

* Fix BUGFIX_DIALOG_TIME_STOP

Fixes #136

* Fix sliding platform bparams

* Add LEGACY_SHADOW_IDS define for Fast64 compatibility

* Apply suggested changes

* Better find_in_bounds_yaw_wdw_bob_thi ifdef

* Fix build warnings for unused functions

* Fixed stale reference bug from obj_mark_for_deletion change

* Fixed incorrect digit for 100s #145

* Change groundpound-fix define and functionality to just disable bonking

* Fixed puppyroll #134

* Adjust height value for terrain angle to kick in

* fixed hi score flashing

* Remove menudata backup (#131)

Not considered important enough to keep

* Fix fread() build warning

* Add COURSE_NUM_TO_INDEX to save_file_get_star_flags check in bhv_unagi_init

* Fix approach_s16 return value

* Use boolean defines for oCapDoScaleVertically

* Make the door lock a part of the key door model to eliminate z-fighting, also reduce z fighting on numbered doors with AUTO_LOD enabled.

* Move flames to LAYER_TRANSPARENT_INTER

* Resolved some compiler warnings and added FALL_THROUGH define (#168)

* Address some more compiler warnings with different define toggles

* Remove unnecessary fallthrough attribute

* fixed geo_process_billboard floating point exception

* Allow water to face any direction

* Initialize focOffset so that BBH doesn't crash

* Removed superfluous RDP commands when switching microcodes which would override scissor

* Set OBJ_FLAG_DONT_CALC_COLL_DIST on bhvUkikiCage

* Fix rumble build

* Fixed UNLOCK_FPS strobing

* Update src/game/object_helpers.c

Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com>

* Update src/game/object_helpers.c

Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com>

* Fix LEGACY_SHADOW_IDS id conflict

* Use the vanilla default value for rotating fire bars if bparam2 is 0

* START_LEVEL safeguard

* Fix some drawing distance issues caused by AUTO_COLLISION_DISTANCE

* Fix rumble build

* Fixed spline poll code using the wrong values for keyframes

* Update readme with better credits

Better credits for individual contributors

* add arthur

* added falco and moose

* add fazana

* le funny typo

* added S2DEX engine to credits

* silhouette + axo + ratio

* remove specific callouts + add auto col distance

* Update data/behavior_data.c

Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com>

* Update data/behavior_data.c

Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com>

* Update data/behavior_data.c

Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com>

* Revert formatting changes to match vanilla decomp

* Re-implement Y buffer for find_ceil

* Re-implement POWER_STARS_HEAL for normal Power Stars

* Start level comment & exit course comment/collapse

* utilize reonucam technique for FAST_VERTICAL_CAMERA_MOVEMENT

* Fix "MAX_REFERENCED_WALLS" typo

* Allow stop_and_set_height_to_floor to work at any height if Mario is teleporting (#213)

* Revert stop_and_set_height_to_floor to vanilla

Fixes #208

* Fixed sAudioEnabled so that it disables audio CPU processing as well

* Fixed puppyprint debug RDP us calculations

* Renamed sAudioEnabled to gAudioEnabled

* Replaced mtxf_to_mtx_asm with an equivalent implementation that supports WORLD_SCALE

* Moved extended bounds and world scale configuration to a new config_world.h file

* Default all objects to non-rej (#227)

Fixes #221 (Default all objects to non-rej)

* Fix #221

* Fix VISUAL_DEBUG breaking/crashing when OBJECTS_REJ is disabled (#211)

* Fix VISUAL_DEBUG breaking/crashing when OBJECTS_REJ is disabled

* Change vtl decrement in visual_surface_display from 6 to 3

Fixes #207

* Make area in SL igloo wider to prevent a softlock (#233)

Fixes #210

* Fix coin formation coins being deleted if they spawn in the middle of a floor, also fix TTM slide coin position (#232)

Fixes #201

* Make UNLOCK_ALL apply to more things

* Fix wrong ifdef/ifndef in bhv_invisible_objects_under_bridge_init

* Change chain chomp load/unload distances depending on number of segments (#237)

Fixes #192

* added WATER_PLUNGE_UPWARP define

* Add reonucam patch (#239)

* added reonucam patch
Fixes #218

* Fix how shadows handle water/transparency/height (#228)

* Fix how shadows handle water/transparency/height

* Change shadow check for flying carpets from a level specific check to a oPlatformOnTrackType check

Fixes #179

* added reonucam credit

* delete unnecesary patches

* Apply suggested changes

* murdered more patches

* UNLOCK_ALL unlocks the cap boxes

* UNLOCK_ALL unlocks cap boxes (slightly more epic edition)

* revert ceil buffer

* Renamed HD_INTRO_TEXTURES define, separated intro floombas

* prevent double definition of floombas

* actually prevent floomba redefinition

* Develop/refactor  default defines (#242)

* Changed default config options

* Added build dir to includePaths for pngs

* disable NO_SLEEP by default

* Disable puppyprint by default

Sorry fazana 😔

* fix typos

* add comment about BETTER_REVERB console perf

* disable blue coin switch retry by default

* Update config_audio.h

Co-authored-by: Reonu <danileon95@gmail.com>
Co-authored-by: Mr-Wiseguy <68165316+Mr-Wiseguy@users.noreply.github.com>

* revert air step line to vanilla to fix bitfs scaling platform issue (#247)

Fixes #200

* Fix stuttering on thin slopes (#248)

* Fix stuttering on thin slopes

* Revert vec3f_find_ceil calls to vanilla

* Rename vec3f_find_ceil to find_mario_ceil

* Update src/engine/surface_collision.h

Fixes #249

* Swap static and dynamic surface checks back to vanilla order (#253)

* Swap static and dynamic surface checks back to vanilla order

* re-enable DISABLE_ALL config

Fixes #251 #252

* Fixed save and quitting while in widescreen (#257)

* Fixed save and quitting while in widescreen

* use define for the level

* all my homies hate ifdefs

* skip wall offsets < 0 (#255)

Fixes #255

* #264: Document non-stop stars' issues (#267)

* #264: Document non-stop stars' issues

* Update include/config/config_game.h

* nonstop vanilla comment

* derive margin_radius from radius after capping at 200 (#266)

Fixes #259

* Config cleanup/refactor (#269)

* Moved puppyprint define to graphics / rearranged some debug defines for ease of access

* Moved compatibility safeguards to config_safeguards.h

* spacing and comment formatting

* #272 Move GFX_POOL_SIZE to config_graphics.h

* disable EASIER_DIALOG_TRIGGER by default

* prevent redefining warnings

* small ifdef typo

* changed ifndef to undefs

Fixes #262
Fixes #272

* Improved movement config documentation related to turning around (#271)

Fixes #270

* rename CUSTOM_DEBUG, add comments (#275)

* Update README.md (#277)

* v2.0.0

Co-authored-by: CrashOveride95 <crashoveride953@gmail.com>
Co-authored-by: Arceveti <73617174+Arceveti@users.noreply.github.com>
Co-authored-by: n64 <n64>
Co-authored-by: Fazana <52551480+FazanaJ@users.noreply.github.com>
Co-authored-by: Mr-Wiseguy <mrwiseguyromhacking@gmail.com>
Co-authored-by: aglab2 <aglab3@gmail.com>
Co-authored-by: gheskett <gheskett@gmail.com>
Co-authored-by: Reonu <danileon95@gmail.com>
Co-authored-by: Axollyon <20480418+Axollyon@users.noreply.github.com>
Co-authored-by: Mr-Wiseguy <68165316+Mr-Wiseguy@users.noreply.github.com>
2021-12-30 16:57:51 +00:00

595 lines
33 KiB
C

// Koopa Shell
// 0x08026388
static const Lights1 koopa_shell_seg8_lights_08026388 = gdSPDefLights1(
0x11, 0x33, 0x06,
0x45, 0xcd, 0x1a, 0x28, 0x28, 0x28
);
// 0x080263A0
static const Lights1 koopa_shell_seg8_lights_080263A0 = gdSPDefLights1(
0x39, 0x0a, 0x07,
0xe4, 0x29, 0x1d, 0x28, 0x28, 0x28
);
// 0x080263B8
static const Lights1 koopa_shell_seg8_lights_080263B8 = gdSPDefLights1(
0x21, 0x30, 0x39,
0x84, 0xc3, 0xe5, 0x28, 0x28, 0x28
);
// 0x080263D0
static const Lights1 koopa_shell_seg8_lights_080263D0 = gdSPDefLights1(
0x3e, 0x3f, 0x3e,
0xfa, 0xff, 0xf8, 0x28, 0x28, 0x28
);
// 0x080263E8
static const Vtx koopa_shell_seg8_vertex_080263E8[] = {
{{{ 101, 53, 57}, 0, { 0, 0}, {0x53, 0x5e, 0x14, 0xff}}},
{{{ 40, 149, 46}, 0, { 0, 0}, {0x40, 0x6a, 0x1e, 0xff}}},
{{{ 0, 78, 118}, 0, { 0, 0}, {0x00, 0x6d, 0x42, 0xff}}},
{{{ 101, 53, 57}, 0, { 0, 0}, {0x53, 0x5e, 0x14, 0xff}}},
{{{ 90, 51, -81}, 0, { 0, 0}, {0x42, 0x69, 0xe3, 0xff}}},
{{{ 40, 149, 46}, 0, { 0, 0}, {0x40, 0x6a, 0x1e, 0xff}}},
{{{ 0, 65, -111}, 0, { 0, 0}, {0x00, 0x6f, 0xc2, 0xff}}},
{{{ 0, 138, -67}, 0, { 0, 0}, {0x00, 0x69, 0xb8, 0xff}}},
{{{ 90, 51, -81}, 0, { 0, 0}, {0x42, 0x69, 0xe3, 0xff}}},
{{{ 90, 51, -81}, 0, { 0, 0}, {0x42, 0x69, 0xe3, 0xff}}},
{{{ 0, 138, -67}, 0, { 0, 0}, {0x00, 0x69, 0xb8, 0xff}}},
{{{ 40, 149, 46}, 0, { 0, 0}, {0x40, 0x6a, 0x1e, 0xff}}},
{{{ -40, 149, 46}, 0, { 0, 0}, {0xc0, 0x6a, 0x1e, 0xff}}},
{{{ 0, 78, 118}, 0, { 0, 0}, {0x00, 0x6d, 0x42, 0xff}}},
{{{ 40, 149, 46}, 0, { 0, 0}, {0x40, 0x6a, 0x1e, 0xff}}},
};
// 0x080264D8
static const Vtx koopa_shell_seg8_vertex_080264D8[] = {
{{{ 0, 138, -67}, 0, { 0, 0}, {0x00, 0x69, 0xb8, 0xff}}},
{{{ -40, 149, 46}, 0, { 0, 0}, {0xc0, 0x6a, 0x1e, 0xff}}},
{{{ 40, 149, 46}, 0, { 0, 0}, {0x40, 0x6a, 0x1e, 0xff}}},
{{{ -40, 149, 46}, 0, { 0, 0}, {0xc0, 0x6a, 0x1e, 0xff}}},
{{{ 0, 138, -67}, 0, { 0, 0}, {0x00, 0x69, 0xb8, 0xff}}},
{{{ -90, 51, -81}, 0, { 0, 0}, {0xbe, 0x69, 0xe3, 0xff}}},
{{{ -90, 51, -81}, 0, { 0, 0}, {0xbe, 0x69, 0xe3, 0xff}}},
{{{ 0, 138, -67}, 0, { 0, 0}, {0x00, 0x69, 0xb8, 0xff}}},
{{{ 0, 65, -111}, 0, { 0, 0}, {0x00, 0x6f, 0xc2, 0xff}}},
{{{ -40, 149, 46}, 0, { 0, 0}, {0xc0, 0x6a, 0x1e, 0xff}}},
{{{ -90, 51, -81}, 0, { 0, 0}, {0xbe, 0x69, 0xe3, 0xff}}},
{{{ -101, 53, 57}, 0, { 0, 0}, {0xad, 0x5e, 0x14, 0xff}}},
{{{ 0, 78, 118}, 0, { 0, 0}, {0x00, 0x6d, 0x42, 0xff}}},
{{{ -40, 149, 46}, 0, { 0, 0}, {0xc0, 0x6a, 0x1e, 0xff}}},
{{{ -101, 53, 57}, 0, { 0, 0}, {0xad, 0x5e, 0x14, 0xff}}},
};
// 0x080265C8
static const Vtx koopa_shell_seg8_vertex_080265C8[] = {
{{{ 0, 17, 108}, 0, { 0, 0}, {0x00, 0xab, 0x5f, 0xff}}},
{{{ 46, 0, 60}, 0, { 0, 0}, {0x23, 0x8c, 0x25, 0xff}}},
{{{ 25, 51, 118}, 0, { 0, 0}, {0x14, 0xba, 0x68, 0xff}}},
{{{ 70, 27, -99}, 0, { 0, 0}, {0x33, 0xa5, 0xb8, 0xff}}},
{{{ 46, 0, -68}, 0, { 0, 0}, {0x2a, 0x8a, 0xe9, 0xff}}},
{{{ 0, 14, -99}, 0, { 0, 0}, {0x00, 0xa6, 0xa6, 0xff}}},
{{{ 46, 0, -68}, 0, { 0, 0}, {0x2a, 0x8a, 0xe9, 0xff}}},
{{{ 46, 0, 60}, 0, { 0, 0}, {0x23, 0x8c, 0x25, 0xff}}},
{{{ 0, 0, -5}, 0, { 0, 0}, {0x00, 0x80, 0x00, 0xff}}},
{{{ -46, 0, 59}, 0, { 0, 0}, {0xdd, 0x8c, 0x25, 0xff}}},
{{{ 0, 0, -5}, 0, { 0, 0}, {0x00, 0x80, 0x00, 0xff}}},
{{{ 46, 0, 60}, 0, { 0, 0}, {0x23, 0x8c, 0x25, 0xff}}},
{{{ 0, 14, -99}, 0, { 0, 0}, {0x00, 0xa6, 0xa6, 0xff}}},
{{{ 0, 39, -112}, 0, { 0, 0}, {0x00, 0xc4, 0x90, 0xff}}},
{{{ 70, 27, -99}, 0, { 0, 0}, {0x33, 0xa5, 0xb8, 0xff}}},
};
// 0x080266B8
static const Vtx koopa_shell_seg8_vertex_080266B8[] = {
{{{ 46, 0, -68}, 0, { 0, 0}, {0x2a, 0x8a, 0xe9, 0xff}}},
{{{ 70, 17, 41}, 0, { 0, 0}, {0x49, 0x98, 0x07, 0xff}}},
{{{ 46, 0, 60}, 0, { 0, 0}, {0x23, 0x8c, 0x25, 0xff}}},
{{{ 46, 0, 60}, 0, { 0, 0}, {0x23, 0x8c, 0x25, 0xff}}},
{{{ 70, 28, 88}, 0, { 0, 0}, {0x37, 0xa0, 0x3f, 0xff}}},
{{{ 25, 51, 118}, 0, { 0, 0}, {0x14, 0xba, 0x68, 0xff}}},
{{{ 0, 0, -5}, 0, { 0, 0}, {0x00, 0x80, 0x00, 0xff}}},
{{{ -45, 0, -69}, 0, { 0, 0}, {0xd7, 0x8a, 0xe9, 0xff}}},
{{{ 46, 0, -68}, 0, { 0, 0}, {0x2a, 0x8a, 0xe9, 0xff}}},
{{{ 0, 0, -5}, 0, { 0, 0}, {0x00, 0x80, 0x00, 0xff}}},
{{{ -46, 0, 59}, 0, { 0, 0}, {0xdd, 0x8c, 0x25, 0xff}}},
{{{ -45, 0, -69}, 0, { 0, 0}, {0xd7, 0x8a, 0xe9, 0xff}}},
{{{ -45, 0, -69}, 0, { 0, 0}, {0xd7, 0x8a, 0xe9, 0xff}}},
{{{ -46, 0, 59}, 0, { 0, 0}, {0xdd, 0x8c, 0x25, 0xff}}},
{{{ -70, 17, 41}, 0, { 0, 0}, {0xb8, 0x98, 0x07, 0xff}}},
};
// 0x080267A8
static const Vtx koopa_shell_seg8_vertex_080267A8[] = {
{{{ -25, 51, 118}, 0, { 0, 0}, {0xf0, 0xbb, 0x6a, 0xff}}},
{{{ -70, 28, 88}, 0, { 0, 0}, {0xc9, 0xa0, 0x3f, 0xff}}},
{{{ -46, 0, 59}, 0, { 0, 0}, {0xdd, 0x8c, 0x25, 0xff}}},
{{{ -70, 27, -99}, 0, { 0, 0}, {0xcd, 0xa5, 0xb7, 0xff}}},
{{{ 0, 39, -112}, 0, { 0, 0}, {0x00, 0xc4, 0x90, 0xff}}},
{{{ 0, 14, -99}, 0, { 0, 0}, {0x00, 0xa6, 0xa6, 0xff}}},
{{{ 0, 14, -99}, 0, { 0, 0}, {0x00, 0xa6, 0xa6, 0xff}}},
{{{ -45, 0, -69}, 0, { 0, 0}, {0xd7, 0x8a, 0xe9, 0xff}}},
{{{ -70, 27, -99}, 0, { 0, 0}, {0xcd, 0xa5, 0xb7, 0xff}}},
{{{ -25, 51, 118}, 0, { 0, 0}, {0xf0, 0xbb, 0x6a, 0xff}}},
{{{ -46, 0, 59}, 0, { 0, 0}, {0xdd, 0x8c, 0x25, 0xff}}},
{{{ 0, 17, 108}, 0, { 0, 0}, {0x00, 0xab, 0x5f, 0xff}}},
{{{ -46, 0, 59}, 0, { 0, 0}, {0xdd, 0x8c, 0x25, 0xff}}},
{{{ -70, 28, 88}, 0, { 0, 0}, {0xc9, 0xa0, 0x3f, 0xff}}},
{{{ -70, 17, 41}, 0, { 0, 0}, {0xb8, 0x98, 0x07, 0xff}}},
};
// 0x08026898
static const Vtx koopa_shell_seg8_vertex_08026898[] = {
{{{ -70, 21, -50}, 0, { 0, 0}, {0xbd, 0x94, 0xf7, 0xff}}},
{{{ -70, 27, -99}, 0, { 0, 0}, {0xcd, 0xa5, 0xb7, 0xff}}},
{{{ -45, 0, -69}, 0, { 0, 0}, {0xd7, 0x8a, 0xe9, 0xff}}},
{{{ 70, 17, 41}, 0, { 0, 0}, {0x49, 0x98, 0x07, 0xff}}},
{{{ 70, 28, 88}, 0, { 0, 0}, {0x37, 0xa0, 0x3f, 0xff}}},
{{{ 46, 0, 60}, 0, { 0, 0}, {0x23, 0x8c, 0x25, 0xff}}},
{{{ 46, 0, -68}, 0, { 0, 0}, {0x2a, 0x8a, 0xe9, 0xff}}},
{{{ 70, 27, -99}, 0, { 0, 0}, {0x33, 0xa5, 0xb8, 0xff}}},
{{{ 70, 21, -50}, 0, { 0, 0}, {0x44, 0x95, 0xf7, 0xff}}},
{{{ -70, 17, 41}, 0, { 0, 0}, {0xb8, 0x98, 0x07, 0xff}}},
{{{ -70, 21, -50}, 0, { 0, 0}, {0xbd, 0x94, 0xf7, 0xff}}},
{{{ -45, 0, -69}, 0, { 0, 0}, {0xd7, 0x8a, 0xe9, 0xff}}},
{{{ 46, 0, -68}, 0, { 0, 0}, {0x2a, 0x8a, 0xe9, 0xff}}},
{{{ 70, 21, -50}, 0, { 0, 0}, {0x44, 0x95, 0xf7, 0xff}}},
{{{ 70, 17, 41}, 0, { 0, 0}, {0x49, 0x98, 0x07, 0xff}}},
};
// 0x08026988
static const Vtx koopa_shell_seg8_vertex_08026988[] = {
{{{ 46, 0, 60}, 0, { 0, 0}, {0x23, 0x8c, 0x25, 0xff}}},
{{{ 0, 17, 108}, 0, { 0, 0}, {0x00, 0xab, 0x5f, 0xff}}},
{{{ -46, 0, 59}, 0, { 0, 0}, {0xdd, 0x8c, 0x25, 0xff}}},
{{{ -45, 0, -69}, 0, { 0, 0}, {0xd7, 0x8a, 0xe9, 0xff}}},
{{{ 0, 14, -99}, 0, { 0, 0}, {0x00, 0xa6, 0xa6, 0xff}}},
{{{ 46, 0, -68}, 0, { 0, 0}, {0x2a, 0x8a, 0xe9, 0xff}}},
{{{ -25, 51, 118}, 0, { 0, 0}, {0xf0, 0xbb, 0x6a, 0xff}}},
{{{ 0, 17, 108}, 0, { 0, 0}, {0x00, 0xab, 0x5f, 0xff}}},
{{{ 25, 51, 118}, 0, { 0, 0}, {0x14, 0xba, 0x68, 0xff}}},
};
// 0x08026A18
static const Vtx koopa_shell_seg8_vertex_08026A18[] = {
{{{ 0, 39, -112}, 0, { 0, 0}, {0x00, 0xc4, 0x90, 0xff}}},
{{{ 36, 58, -129}, 0, { 0, 0}, {0x22, 0x44, 0x9a, 0xff}}},
{{{ 103, 44, -89}, 0, { 0, 0}, {0x52, 0x0e, 0x9f, 0xff}}},
{{{ 70, 27, -99}, 0, { 0, 0}, {0x33, 0xa5, 0xb8, 0xff}}},
{{{ 0, 39, -112}, 0, { 0, 0}, {0x00, 0xc4, 0x90, 0xff}}},
{{{ 103, 44, -89}, 0, { 0, 0}, {0x52, 0x0e, 0x9f, 0xff}}},
{{{ 70, 28, 88}, 0, { 0, 0}, {0x37, 0xa0, 0x3f, 0xff}}},
{{{ 103, 44, 80}, 0, { 0, 0}, {0x6f, 0xfe, 0x3e, 0xff}}},
{{{ 38, 70, 129}, 0, { 0, 0}, {0x27, 0x11, 0x78, 0xff}}},
{{{ 38, 70, 129}, 0, { 0, 0}, {0x27, 0x11, 0x78, 0xff}}},
{{{ 25, 51, 118}, 0, { 0, 0}, {0x14, 0xba, 0x68, 0xff}}},
{{{ 70, 28, 88}, 0, { 0, 0}, {0x37, 0xa0, 0x3f, 0xff}}},
{{{ 70, 17, 41}, 0, { 0, 0}, {0x49, 0x98, 0x07, 0xff}}},
{{{ 117, 36, -19}, 0, { 0, 0}, {0x70, 0xc4, 0x00, 0xff}}},
{{{ 70, 28, 88}, 0, { 0, 0}, {0x37, 0xa0, 0x3f, 0xff}}},
};
// 0x08026B08
static const Vtx koopa_shell_seg8_vertex_08026B08[] = {
{{{ 70, 17, 41}, 0, { 0, 0}, {0x49, 0x98, 0x07, 0xff}}},
{{{ 70, 21, -50}, 0, { 0, 0}, {0x44, 0x95, 0xf7, 0xff}}},
{{{ 117, 36, -19}, 0, { 0, 0}, {0x70, 0xc4, 0x00, 0xff}}},
{{{ 70, 21, -50}, 0, { 0, 0}, {0x44, 0x95, 0xf7, 0xff}}},
{{{ 70, 27, -99}, 0, { 0, 0}, {0x33, 0xa5, 0xb8, 0xff}}},
{{{ 117, 36, -19}, 0, { 0, 0}, {0x70, 0xc4, 0x00, 0xff}}},
{{{ 36, 58, -129}, 0, { 0, 0}, {0x22, 0x44, 0x9a, 0xff}}},
{{{ 0, 65, -111}, 0, { 0, 0}, {0x00, 0x6f, 0xc2, 0xff}}},
{{{ 90, 51, -81}, 0, { 0, 0}, {0x42, 0x69, 0xe3, 0xff}}},
{{{ 117, 36, -19}, 0, { 0, 0}, {0x70, 0xc4, 0x00, 0xff}}},
{{{ 103, 44, -89}, 0, { 0, 0}, {0x52, 0x0e, 0x9f, 0xff}}},
{{{ 90, 51, -81}, 0, { 0, 0}, {0x42, 0x69, 0xe3, 0xff}}},
{{{ 103, 44, 80}, 0, { 0, 0}, {0x6f, 0xfe, 0x3e, 0xff}}},
{{{ 117, 36, -19}, 0, { 0, 0}, {0x70, 0xc4, 0x00, 0xff}}},
{{{ 101, 53, 57}, 0, { 0, 0}, {0x53, 0x5e, 0x14, 0xff}}},
};
// 0x08026BF8
static const Vtx koopa_shell_seg8_vertex_08026BF8[] = {
{{{ 38, 70, 129}, 0, { 0, 0}, {0x27, 0x11, 0x78, 0xff}}},
{{{ 103, 44, 80}, 0, { 0, 0}, {0x6f, 0xfe, 0x3e, 0xff}}},
{{{ 101, 53, 57}, 0, { 0, 0}, {0x53, 0x5e, 0x14, 0xff}}},
{{{ 101, 53, 57}, 0, { 0, 0}, {0x53, 0x5e, 0x14, 0xff}}},
{{{ 0, 78, 118}, 0, { 0, 0}, {0x00, 0x6d, 0x42, 0xff}}},
{{{ 38, 70, 129}, 0, { 0, 0}, {0x27, 0x11, 0x78, 0xff}}},
{{{ 90, 51, -81}, 0, { 0, 0}, {0x42, 0x69, 0xe3, 0xff}}},
{{{ 101, 53, 57}, 0, { 0, 0}, {0x53, 0x5e, 0x14, 0xff}}},
{{{ 117, 36, -19}, 0, { 0, 0}, {0x70, 0xc4, 0x00, 0xff}}},
{{{ 90, 51, -81}, 0, { 0, 0}, {0x42, 0x69, 0xe3, 0xff}}},
{{{ 103, 44, -89}, 0, { 0, 0}, {0x52, 0x0e, 0x9f, 0xff}}},
{{{ 36, 58, -129}, 0, { 0, 0}, {0x22, 0x44, 0x9a, 0xff}}},
{{{ 117, 36, -19}, 0, { 0, 0}, {0x70, 0xc4, 0x00, 0xff}}},
{{{ 103, 44, 80}, 0, { 0, 0}, {0x6f, 0xfe, 0x3e, 0xff}}},
{{{ 70, 28, 88}, 0, { 0, 0}, {0x37, 0xa0, 0x3f, 0xff}}},
};
// 0x08026CE8
static const Vtx koopa_shell_seg8_vertex_08026CE8[] = {
{{{ 70, 27, -99}, 0, { 0, 0}, {0x33, 0xa5, 0xb8, 0xff}}},
{{{ 103, 44, -89}, 0, { 0, 0}, {0x52, 0x0e, 0x9f, 0xff}}},
{{{ 117, 36, -19}, 0, { 0, 0}, {0x70, 0xc4, 0x00, 0xff}}},
{{{ -36, 58, -129}, 0, { 0, 0}, {0xde, 0x44, 0x9a, 0xff}}},
{{{ 0, 65, -111}, 0, { 0, 0}, {0x00, 0x6f, 0xc2, 0xff}}},
{{{ 36, 58, -129}, 0, { 0, 0}, {0x22, 0x44, 0x9a, 0xff}}},
{{{ 0, 78, 118}, 0, { 0, 0}, {0x00, 0x6d, 0x42, 0xff}}},
{{{ -38, 70, 129}, 0, { 0, 0}, {0xd1, 0x25, 0x70, 0xff}}},
{{{ 38, 70, 129}, 0, { 0, 0}, {0x27, 0x11, 0x78, 0xff}}},
{{{ 0, 39, -112}, 0, { 0, 0}, {0x00, 0xc4, 0x90, 0xff}}},
{{{ -36, 58, -129}, 0, { 0, 0}, {0xde, 0x44, 0x9a, 0xff}}},
{{{ 36, 58, -129}, 0, { 0, 0}, {0x22, 0x44, 0x9a, 0xff}}},
{{{ -117, 36, -19}, 0, { 0, 0}, {0x90, 0xc4, 0x00, 0xff}}},
{{{ -103, 44, -89}, 0, { 0, 0}, {0xae, 0x0e, 0x9f, 0xff}}},
{{{ -70, 27, -99}, 0, { 0, 0}, {0xcd, 0xa5, 0xb7, 0xff}}},
};
// 0x08026DD8
static const Vtx koopa_shell_seg8_vertex_08026DD8[] = {
{{{ -70, 28, 88}, 0, { 0, 0}, {0xc9, 0xa0, 0x3f, 0xff}}},
{{{ -103, 44, 80}, 0, { 0, 0}, {0x91, 0xfe, 0x3e, 0xff}}},
{{{ -117, 36, -19}, 0, { 0, 0}, {0x90, 0xc4, 0x00, 0xff}}},
{{{ -36, 58, -129}, 0, { 0, 0}, {0xde, 0x44, 0x9a, 0xff}}},
{{{ -103, 44, -89}, 0, { 0, 0}, {0xae, 0x0e, 0x9f, 0xff}}},
{{{ -90, 51, -81}, 0, { 0, 0}, {0xbe, 0x69, 0xe3, 0xff}}},
{{{ -117, 36, -19}, 0, { 0, 0}, {0x90, 0xc4, 0x00, 0xff}}},
{{{ -101, 53, 57}, 0, { 0, 0}, {0xad, 0x5e, 0x14, 0xff}}},
{{{ -90, 51, -81}, 0, { 0, 0}, {0xbe, 0x69, 0xe3, 0xff}}},
{{{ -38, 70, 129}, 0, { 0, 0}, {0xd1, 0x25, 0x70, 0xff}}},
{{{ 0, 78, 118}, 0, { 0, 0}, {0x00, 0x6d, 0x42, 0xff}}},
{{{ -101, 53, 57}, 0, { 0, 0}, {0xad, 0x5e, 0x14, 0xff}}},
{{{ -101, 53, 57}, 0, { 0, 0}, {0xad, 0x5e, 0x14, 0xff}}},
{{{ -103, 44, 80}, 0, { 0, 0}, {0x91, 0xfe, 0x3e, 0xff}}},
{{{ -38, 70, 129}, 0, { 0, 0}, {0xd1, 0x25, 0x70, 0xff}}},
};
// 0x08026EC8
static const Vtx koopa_shell_seg8_vertex_08026EC8[] = {
{{{ -101, 53, 57}, 0, { 0, 0}, {0xad, 0x5e, 0x14, 0xff}}},
{{{ -117, 36, -19}, 0, { 0, 0}, {0x90, 0xc4, 0x00, 0xff}}},
{{{ -103, 44, 80}, 0, { 0, 0}, {0x91, 0xfe, 0x3e, 0xff}}},
{{{ -90, 51, -81}, 0, { 0, 0}, {0xbe, 0x69, 0xe3, 0xff}}},
{{{ -103, 44, -89}, 0, { 0, 0}, {0xae, 0x0e, 0x9f, 0xff}}},
{{{ -117, 36, -19}, 0, { 0, 0}, {0x90, 0xc4, 0x00, 0xff}}},
{{{ -90, 51, -81}, 0, { 0, 0}, {0xbe, 0x69, 0xe3, 0xff}}},
{{{ 0, 65, -111}, 0, { 0, 0}, {0x00, 0x6f, 0xc2, 0xff}}},
{{{ -36, 58, -129}, 0, { 0, 0}, {0xde, 0x44, 0x9a, 0xff}}},
{{{ -117, 36, -19}, 0, { 0, 0}, {0x90, 0xc4, 0x00, 0xff}}},
{{{ -70, 27, -99}, 0, { 0, 0}, {0xcd, 0xa5, 0xb7, 0xff}}},
{{{ -70, 21, -50}, 0, { 0, 0}, {0xbd, 0x94, 0xf7, 0xff}}},
{{{ -117, 36, -19}, 0, { 0, 0}, {0x90, 0xc4, 0x00, 0xff}}},
{{{ -70, 21, -50}, 0, { 0, 0}, {0xbd, 0x94, 0xf7, 0xff}}},
{{{ -70, 17, 41}, 0, { 0, 0}, {0xb8, 0x98, 0x07, 0xff}}},
};
// 0x08026FB8
static const Vtx koopa_shell_seg8_vertex_08026FB8[] = {
{{{ -70, 28, 88}, 0, { 0, 0}, {0xc9, 0xa0, 0x3f, 0xff}}},
{{{ -117, 36, -19}, 0, { 0, 0}, {0x90, 0xc4, 0x00, 0xff}}},
{{{ -70, 17, 41}, 0, { 0, 0}, {0xb8, 0x98, 0x07, 0xff}}},
{{{ -70, 28, 88}, 0, { 0, 0}, {0xc9, 0xa0, 0x3f, 0xff}}},
{{{ -25, 51, 118}, 0, { 0, 0}, {0xf0, 0xbb, 0x6a, 0xff}}},
{{{ -38, 70, 129}, 0, { 0, 0}, {0xd1, 0x25, 0x70, 0xff}}},
{{{ -38, 70, 129}, 0, { 0, 0}, {0xd1, 0x25, 0x70, 0xff}}},
{{{ -103, 44, 80}, 0, { 0, 0}, {0x91, 0xfe, 0x3e, 0xff}}},
{{{ -70, 28, 88}, 0, { 0, 0}, {0xc9, 0xa0, 0x3f, 0xff}}},
{{{ -103, 44, -89}, 0, { 0, 0}, {0xae, 0x0e, 0x9f, 0xff}}},
{{{ 0, 39, -112}, 0, { 0, 0}, {0x00, 0xc4, 0x90, 0xff}}},
{{{ -70, 27, -99}, 0, { 0, 0}, {0xcd, 0xa5, 0xb7, 0xff}}},
{{{ -103, 44, -89}, 0, { 0, 0}, {0xae, 0x0e, 0x9f, 0xff}}},
{{{ -36, 58, -129}, 0, { 0, 0}, {0xde, 0x44, 0x9a, 0xff}}},
{{{ 0, 39, -112}, 0, { 0, 0}, {0x00, 0xc4, 0x90, 0xff}}},
};
// 0x080270A8
static const Vtx koopa_shell_seg8_vertex_080270A8[] = {
{{{ -25, 51, 118}, 0, { 0, 0}, {0xf0, 0xbb, 0x6a, 0xff}}},
{{{ 25, 51, 118}, 0, { 0, 0}, {0x14, 0xba, 0x68, 0xff}}},
{{{ 38, 70, 129}, 0, { 0, 0}, {0x27, 0x11, 0x78, 0xff}}},
{{{ 38, 70, 129}, 0, { 0, 0}, {0x27, 0x11, 0x78, 0xff}}},
{{{ -38, 70, 129}, 0, { 0, 0}, {0xd1, 0x25, 0x70, 0xff}}},
{{{ -25, 51, 118}, 0, { 0, 0}, {0xf0, 0xbb, 0x6a, 0xff}}},
};
// 0x08027108 - 0x08027170
const Gfx koopa_shell_seg8_dl_08027108[] = {
gsSPVertex(koopa_shell_seg8_vertex_080263E8, 15, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0),
gsSP1Triangle(12, 13, 14, 0x0),
gsSPVertex(koopa_shell_seg8_vertex_080264D8, 15, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0),
gsSP1Triangle(12, 13, 14, 0x0),
gsSPEndDisplayList(),
};
// 0x08027170 - 0x08027258
const Gfx koopa_shell_seg8_dl_08027170[] = {
gsSPVertex(koopa_shell_seg8_vertex_080265C8, 15, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0),
gsSP1Triangle(12, 13, 14, 0x0),
gsSPVertex(koopa_shell_seg8_vertex_080266B8, 15, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0),
gsSP1Triangle(12, 13, 14, 0x0),
gsSPVertex(koopa_shell_seg8_vertex_080267A8, 15, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0),
gsSP1Triangle(12, 13, 14, 0x0),
gsSPVertex(koopa_shell_seg8_vertex_08026898, 15, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0),
gsSP1Triangle(12, 13, 14, 0x0),
gsSPVertex(koopa_shell_seg8_vertex_08026988, 9, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
gsSP1Triangle( 6, 7, 8, 0x0),
gsSPEndDisplayList(),
};
// 0x08027258 - 0x080273C8
const Gfx koopa_shell_seg8_dl_08027258[] = {
gsSPVertex(koopa_shell_seg8_vertex_08026A18, 15, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0),
gsSP1Triangle(12, 13, 14, 0x0),
gsSPVertex(koopa_shell_seg8_vertex_08026B08, 15, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0),
gsSP1Triangle(12, 13, 14, 0x0),
gsSPVertex(koopa_shell_seg8_vertex_08026BF8, 15, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0),
gsSP1Triangle(12, 13, 14, 0x0),
gsSPVertex(koopa_shell_seg8_vertex_08026CE8, 15, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0),
gsSP1Triangle(12, 13, 14, 0x0),
gsSPVertex(koopa_shell_seg8_vertex_08026DD8, 15, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0),
gsSP1Triangle(12, 13, 14, 0x0),
gsSPVertex(koopa_shell_seg8_vertex_08026EC8, 15, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0),
gsSP1Triangle(12, 13, 14, 0x0),
gsSPVertex(koopa_shell_seg8_vertex_08026FB8, 15, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
gsSP2Triangles( 6, 7, 8, 0x0, 9, 10, 11, 0x0),
gsSP1Triangle(12, 13, 14, 0x0),
gsSPVertex(koopa_shell_seg8_vertex_080270A8, 6, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
gsSPEndDisplayList(),
};
// 0x080273C8 - 0x08027420
const Gfx koopa_shell_seg8_dl_080273C8[] = {
gsDPPipeSync(),
gsSPNumLights(NUMLIGHTS_1),
gsSPLight(&koopa_shell_seg8_lights_08026388.l, 1),
gsSPLight(&koopa_shell_seg8_lights_08026388.a, 2),
gsSPDisplayList(koopa_shell_seg8_dl_08027108),
gsSPLight(&koopa_shell_seg8_lights_080263B8.l, 1),
gsSPLight(&koopa_shell_seg8_lights_080263B8.a, 2),
gsSPDisplayList(koopa_shell_seg8_dl_08027170),
gsSPLight(&koopa_shell_seg8_lights_080263D0.l, 1),
gsSPLight(&koopa_shell_seg8_lights_080263D0.a, 2),
gsSPBranchList(koopa_shell_seg8_dl_08027258),
};
// 0x08027420 - 0x08027470
const Gfx koopa_shell_seg8_dl_08027420[] = {
gsDPPipeSync(),
gsSPLight(&koopa_shell_seg8_lights_080263A0.l, 1),
gsSPLight(&koopa_shell_seg8_lights_080263A0.a, 2),
gsSPDisplayList(koopa_shell_seg8_dl_08027108),
gsSPLight(&koopa_shell_seg8_lights_080263B8.l, 1),
gsSPLight(&koopa_shell_seg8_lights_080263B8.a, 2),
gsSPDisplayList(koopa_shell_seg8_dl_08027170),
gsSPLight(&koopa_shell_seg8_lights_080263D0.l, 1),
gsSPLight(&koopa_shell_seg8_lights_080263D0.a, 2),
gsSPBranchList(koopa_shell_seg8_dl_08027258),
};
// 0x08027470
static const Lights1 koopa_shell_seg8_lights_08027470 = gdSPDefLights1(
0x3f, 0x3f, 0x3f,
0xff, 0xff, 0xff, 0x28, 0x28, 0x28
);
// 0x08027488
static const Lights1 koopa_shell_seg8_lights_08027488 = gdSPDefLights1(
0x38, 0x2b, 0x00,
0xe0, 0xae, 0x00, 0x28, 0x28, 0x28
);
// 0x080274A0
ALIGNED8 static const Texture koopa_shell_seg8_texture_080274A0[] = {
#include "actors/koopa_shell/koopa_shell_front.rgba16.inc.c"
};
// 0x08027CA0
ALIGNED8 static const Texture koopa_shell_seg8_texture_08027CA0[] = {
#include "actors/koopa_shell/koopa_shell_back.rgba16.inc.c"
};
// 0x080284A0
static const Vtx koopa_shell_seg8_vertex_080284A0[] = {
{{{ -15, 47, -16}, 0, { 774, 814}, {0xe1, 0x74, 0xdb, 0xff}}},
{{{ 0, 29, -44}, 0, { 468, 1346}, {0x00, 0x67, 0xb6, 0xff}}},
{{{ -34, 23, -31}, 0, { 1132, 1060}, {0xba, 0x63, 0xdc, 0xff}}},
{{{ -15, 49, 15}, 0, { 770, 152}, {0xca, 0x71, 0x12, 0xff}}},
{{{ 16, 47, -16}, 0, { 158, 814}, {0x27, 0x6f, 0xd3, 0xff}}},
{{{ 16, 49, 15}, 0, { 156, 152}, {0x2c, 0x75, 0x0e, 0xff}}},
{{{ 35, 23, -31}, 0, { -196, 1060}, {0x46, 0x63, 0xdc, 0xff}}},
{{{ -36, 29, 26}, 0, { 1164, -156}, {0xb1, 0x60, 0x16, 0xff}}},
{{{ 0, 40, 40}, 0, { 462, -438}, {0x00, 0x75, 0x2f, 0xff}}},
{{{ 37, 29, 26}, 0, { -236, -154}, {0x4f, 0x60, 0x16, 0xff}}},
};
// 0x08028540
static const Vtx koopa_shell_seg8_vertex_08028540[] = {
{{{ 19, 0, 25}, 0, { 826, 98}, {0x15, 0x86, 0x18, 0xff}}},
{{{ 0, 6, 45}, 0, { 524, -122}, {0x00, 0xa7, 0x5a, 0xff}}},
{{{ -18, 0, 25}, 0, { 212, 100}, {0xe6, 0x88, 0x1d, 0xff}}},
{{{ -18, 0, -27}, 0, { 196, 712}, {0xe8, 0x88, 0xe0, 0xff}}},
{{{ 19, 0, -27}, 0, { 810, 710}, {0x21, 0x89, 0xe5, 0xff}}},
{{{ 29, 10, 37}, 0, { 990, -24}, {0x2f, 0xa7, 0x4c, 0xff}}},
{{{ 37, 6, 18}, 0, { 1120, 194}, {0x39, 0x91, 0x10, 0xff}}},
{{{ -36, 6, 18}, 0, { -88, 190}, {0xc7, 0x91, 0x10, 0xff}}},
{{{ -28, 10, 37}, 0, { 52, -26}, {0xd0, 0xa8, 0x4c, 0xff}}},
{{{ 27, 10, -39}, 0, { 932, 864}, {0x22, 0xa1, 0xb5, 0xff}}},
{{{ -26, 10, -39}, 0, { 58, 862}, {0xd7, 0xa2, 0xb7, 0xff}}},
{{{ -36, 8, -19}, 0, { -98, 628}, {0xc0, 0x97, 0xe6, 0xff}}},
{{{ 0, 15, -45}, 0, { 492, 932}, {0x00, 0xb2, 0x9d, 0xff}}},
{{{ 37, 8, -19}, 0, { 1104, 632}, {0x40, 0x97, 0xe6, 0xff}}},
};
// 0x08028620
static const Vtx koopa_shell_seg8_vertex_08028620[] = {
{{{ -14, 33, 54}, 0, { 0, 0}, {0xcd, 0x27, 0x6d, 0xff}}},
{{{ -28, 10, 37}, 0, { 0, 0}, {0xd0, 0xa8, 0x4c, 0xff}}},
{{{ 0, 6, 45}, 0, { 0, 0}, {0x00, 0xa7, 0x5a, 0xff}}},
{{{ 15, 33, 54}, 0, { 0, 0}, {0x32, 0x27, 0x6d, 0xff}}},
{{{ 29, 10, 37}, 0, { 0, 0}, {0x2f, 0xa7, 0x4c, 0xff}}},
};
// 0x08028670
static const Vtx koopa_shell_seg8_vertex_08028670[] = {
{{{ -34, 23, -31}, 0, { 0, 0}, {0xba, 0x63, 0xdc, 0xff}}},
{{{ -40, 17, -38}, 0, { 0, 0}, {0xb5, 0xf3, 0x9b, 0xff}}},
{{{ -50, 14, -6}, 0, { 0, 0}, {0x86, 0xe2, 0xee, 0xff}}},
{{{ 0, 22, -56}, 0, { 0, 0}, {0x00, 0x3d, 0x92, 0xff}}},
{{{ 0, 15, -45}, 0, { 0, 0}, {0x00, 0xb2, 0x9d, 0xff}}},
{{{ -26, 10, -39}, 0, { 0, 0}, {0xd7, 0xa2, 0xb7, 0xff}}},
{{{ 41, 17, -38}, 0, { 0, 0}, {0x4a, 0xf3, 0x9b, 0xff}}},
{{{ 27, 10, -39}, 0, { 0, 0}, {0x22, 0xa1, 0xb5, 0xff}}},
{{{ -36, 8, -19}, 0, { 0, 0}, {0xc0, 0x97, 0xe6, 0xff}}},
{{{ -36, 29, 26}, 0, { 0, 0}, {0xb1, 0x60, 0x16, 0xff}}},
{{{ -44, 16, 32}, 0, { 0, 0}, {0x97, 0xe5, 0x41, 0xff}}},
{{{ -14, 33, 54}, 0, { 0, 0}, {0xcd, 0x27, 0x6d, 0xff}}},
{{{ 0, 40, 40}, 0, { 0, 0}, {0x00, 0x75, 0x2f, 0xff}}},
{{{ 15, 33, 54}, 0, { 0, 0}, {0x32, 0x27, 0x6d, 0xff}}},
{{{ -28, 10, 37}, 0, { 0, 0}, {0xd0, 0xa8, 0x4c, 0xff}}},
};
// 0x08028760
static const Vtx koopa_shell_seg8_vertex_08028760[] = {
{{{ 0, 22, -56}, 0, { 0, 0}, {0x00, 0x3d, 0x92, 0xff}}},
{{{ 0, 29, -44}, 0, { 0, 0}, {0x00, 0x67, 0xb6, 0xff}}},
{{{ 35, 23, -31}, 0, { 0, 0}, {0x46, 0x63, 0xdc, 0xff}}},
{{{ -36, 6, 18}, 0, { 0, 0}, {0xc7, 0x91, 0x10, 0xff}}},
{{{ -28, 10, 37}, 0, { 0, 0}, {0xd0, 0xa8, 0x4c, 0xff}}},
{{{ -44, 16, 32}, 0, { 0, 0}, {0x97, 0xe5, 0x41, 0xff}}},
{{{ -50, 14, -6}, 0, { 0, 0}, {0x86, 0xe2, 0xee, 0xff}}},
{{{ -36, 8, -19}, 0, { 0, 0}, {0xc0, 0x97, 0xe6, 0xff}}},
{{{ -34, 23, -31}, 0, { 0, 0}, {0xba, 0x63, 0xdc, 0xff}}},
{{{ 37, 29, 26}, 0, { 0, 0}, {0x4f, 0x60, 0x16, 0xff}}},
{{{ 0, 40, 40}, 0, { 0, 0}, {0x00, 0x75, 0x2f, 0xff}}},
{{{ 15, 33, 54}, 0, { 0, 0}, {0x32, 0x27, 0x6d, 0xff}}},
{{{ 41, 17, -38}, 0, { 0, 0}, {0x4a, 0xf3, 0x9b, 0xff}}},
{{{ 29, 10, 37}, 0, { 0, 0}, {0x2f, 0xa7, 0x4c, 0xff}}},
{{{ 45, 16, 32}, 0, { 0, 0}, {0x69, 0xe5, 0x41, 0xff}}},
};
// 0x08028850
static const Vtx koopa_shell_seg8_vertex_08028850[] = {
{{{ 27, 10, -39}, 0, { 0, 0}, {0x22, 0xa1, 0xb5, 0xff}}},
{{{ 41, 17, -38}, 0, { 0, 0}, {0x4a, 0xf3, 0x9b, 0xff}}},
{{{ 51, 14, -6}, 0, { 0, 0}, {0x7a, 0xe2, 0xee, 0xff}}},
{{{ 37, 8, -19}, 0, { 0, 0}, {0x40, 0x97, 0xe6, 0xff}}},
{{{ 35, 23, -31}, 0, { 0, 0}, {0x46, 0x63, 0xdc, 0xff}}},
{{{ 37, 29, 26}, 0, { 0, 0}, {0x4f, 0x60, 0x16, 0xff}}},
{{{ 37, 6, 18}, 0, { 0, 0}, {0x39, 0x91, 0x10, 0xff}}},
{{{ 45, 16, 32}, 0, { 0, 0}, {0x69, 0xe5, 0x41, 0xff}}},
{{{ 29, 10, 37}, 0, { 0, 0}, {0x2f, 0xa7, 0x4c, 0xff}}},
};
// 0x080288E0 - 0x08028978
const Gfx koopa_shell_seg8_dl_080288E0[] = {
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, koopa_shell_seg8_texture_08027CA0),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPLight(&koopa_shell_seg8_lights_08027470.l, 1),
gsSPLight(&koopa_shell_seg8_lights_08027470.a, 2),
gsSPVertex(koopa_shell_seg8_vertex_080284A0, 10, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0),
gsSP2Triangles( 0, 4, 1, 0x0, 0, 5, 4, 0x0),
gsSP2Triangles( 0, 3, 5, 0x0, 1, 4, 6, 0x0),
gsSP2Triangles( 6, 4, 5, 0x0, 3, 2, 7, 0x0),
gsSP2Triangles( 3, 8, 5, 0x0, 8, 3, 7, 0x0),
gsSP2Triangles( 9, 5, 8, 0x0, 9, 6, 5, 0x0),
gsSPEndDisplayList(),
};
// 0x08028978 - 0x08028A20
const Gfx koopa_shell_seg8_dl_08028978[] = {
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, koopa_shell_seg8_texture_080274A0),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPVertex(koopa_shell_seg8_vertex_08028540, 14, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 0, 0x0),
gsSP2Triangles( 0, 2, 3, 0x0, 1, 0, 5, 0x0),
gsSP2Triangles( 4, 6, 0, 0x0, 6, 5, 0, 0x0),
gsSP2Triangles( 3, 2, 7, 0x0, 8, 2, 1, 0x0),
gsSP2Triangles( 2, 8, 7, 0x0, 9, 4, 3, 0x0),
gsSP2Triangles( 3, 10, 9, 0x0, 7, 11, 3, 0x0),
gsSP2Triangles(11, 10, 3, 0x0, 10, 12, 9, 0x0),
gsSP2Triangles( 4, 9, 13, 0x0, 4, 13, 6, 0x0),
gsSPEndDisplayList(),
};
// 0x08028A20 - 0x08028B78
const Gfx koopa_shell_seg8_dl_08028A20[] = {
gsSPLight(&koopa_shell_seg8_lights_08027488.l, 1),
gsSPLight(&koopa_shell_seg8_lights_08027488.a, 2),
gsSPVertex(koopa_shell_seg8_vertex_08028620, 5, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0),
gsSP1Triangle( 2, 4, 3, 0x0),
gsSPLight(&koopa_shell_seg8_lights_08027470.l, 1),
gsSPLight(&koopa_shell_seg8_lights_08027470.a, 2),
gsSPVertex(koopa_shell_seg8_vertex_08028670, 15, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 1, 0, 0x0),
gsSP2Triangles( 4, 1, 3, 0x0, 2, 1, 5, 0x0),
gsSP2Triangles( 1, 4, 5, 0x0, 4, 3, 6, 0x0),
gsSP2Triangles( 7, 4, 6, 0x0, 2, 5, 8, 0x0),
gsSP2Triangles( 9, 10, 11, 0x0, 11, 12, 9, 0x0),
gsSP2Triangles(12, 11, 13, 0x0, 11, 10, 14, 0x0),
gsSP2Triangles( 9, 2, 10, 0x0, 2, 9, 0, 0x0),
gsSPVertex(koopa_shell_seg8_vertex_08028760, 15, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
gsSP2Triangles( 5, 6, 3, 0x0, 6, 7, 3, 0x0),
gsSP2Triangles( 0, 8, 1, 0x0, 9, 10, 11, 0x0),
gsSP2Triangles( 2, 12, 0, 0x0, 13, 14, 11, 0x0),
gsSP1Triangle(11, 14, 9, 0x0),
gsSPVertex(koopa_shell_seg8_vertex_08028850, 9, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 2, 0x0),
gsSP2Triangles( 2, 1, 4, 0x0, 4, 5, 2, 0x0),
gsSP2Triangles( 6, 2, 7, 0x0, 6, 3, 2, 0x0),
gsSP2Triangles( 7, 2, 5, 0x0, 6, 7, 8, 0x0),
gsSPEndDisplayList(),
};
// 0x08028B78 - 0x08028BE8
const Gfx koopa_shell_seg8_dl_08028B78[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_MODULATERGBFADE, G_CC_MODULATERGBFADE),
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, 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),
gsSPDisplayList(koopa_shell_seg8_dl_080288E0),
gsSPDisplayList(koopa_shell_seg8_dl_08028978),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
gsSPDisplayList(koopa_shell_seg8_dl_08028A20),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPEndDisplayList(),
};