mirror of
https://github.com/zeldaret/oot.git
synced 2025-07-03 14:34:32 +00:00
Merge branch 'master' into doc_pause_menu
This commit is contained in:
commit
b4d3d1d6d2
182 changed files with 5231 additions and 1600 deletions
|
@ -1,24 +1,24 @@
|
|||
<Root>
|
||||
<File Name="icon_item_24_static" Segment="9">
|
||||
<Texture Name="gForestMedallionIconTex" OutName="forest_medallion_icon" Format="rgba32" Width="24" Height="24" Offset="0x0"/>
|
||||
<Texture Name="gFireMedallionIconTex" OutName="fire_medallion_icon" Format="rgba32" Width="24" Height="24" Offset="0x900"/>
|
||||
<Texture Name="gWaterMedallionIconTex" OutName="water_medallion_icon" Format="rgba32" Width="24" Height="24" Offset="0x1200"/>
|
||||
<Texture Name="gSpiritMedallionIconTex" OutName="spirit_medallion_icon" Format="rgba32" Width="24" Height="24" Offset="0x1B00"/>
|
||||
<Texture Name="gShadowMedallionIconTex" OutName="shadow_medallion_icon" Format="rgba32" Width="24" Height="24" Offset="0x2400"/>
|
||||
<Texture Name="gLightMedallionIconTex" OutName="light_medallion_icon" Format="rgba32" Width="24" Height="24" Offset="0x2D00"/>
|
||||
<Texture Name="gKokiriEmeraldIconTex" OutName="kokiri_emerald_icon" Format="rgba32" Width="24" Height="24" Offset="0x3600"/>
|
||||
<Texture Name="gGoronRubyIconTex" OutName="goron_ruby_icon" Format="rgba32" Width="24" Height="24" Offset="0x3F00"/>
|
||||
<Texture Name="gZoraSapphireIconTex" OutName="zora_sapphire_icon" Format="rgba32" Width="24" Height="24" Offset="0x4800"/>
|
||||
<Texture Name="gStoneOfAgonyIconTex" OutName="stone_of_agony_icon" Format="rgba32" Width="24" Height="24" Offset="0x5100"/>
|
||||
<Texture Name="gGerudosCardIconTex" OutName="gerudos_card_icon" Format="rgba32" Width="24" Height="24" Offset="0x5A00"/>
|
||||
<Texture Name="gGoldSkulltulaIconTex" OutName="gold_skulltula_icon" Format="rgba32" Width="24" Height="24" Offset="0x6300"/>
|
||||
<Texture Name="gHeartContainerIconTex" OutName="heart_container_icon" Format="rgba32" Width="24" Height="24" Offset="0x6C00"/>
|
||||
<Texture Name="gUnusedPieceOfHeartIconTex" OutName="unsed_piece_of_heart_icon" Format="rgba32" Width="24" Height="24" Offset="0x7500"/>
|
||||
<Texture Name="gBossKeyIconTex" OutName="boss_key_icon" Format="rgba32" Width="24" Height="24" Offset="0x7E00"/>
|
||||
<Texture Name="gCompassIconTex" OutName="compass_icon" Format="rgba32" Width="24" Height="24" Offset="0x8700"/>
|
||||
<Texture Name="gDungeonMapIconTex" OutName="dungeon_map_icon" Format="rgba32" Width="24" Height="24" Offset="0x9000"/>
|
||||
<Texture Name="gSmallKeyIconTex" OutName="small_key_icon" Format="rgba32" Width="24" Height="24" Offset="0x9900"/>
|
||||
<Texture Name="gSmallMagicJarIconTex" OutName="small_magic_jar_icon" Format="rgba32" Width="24" Height="24" Offset="0xA200"/>
|
||||
<Texture Name="gBigMagicJarIconTex" OutName="big_magic_jar_icon" Format="rgba32" Width="24" Height="24" Offset="0xAB00"/>
|
||||
<Texture Name="gQuestIconMedallionForestTex" OutName="forest_medallion_icon" Format="rgba32" Width="24" Height="24" Offset="0x0"/>
|
||||
<Texture Name="gQuestIconMedallionFireTex" OutName="fire_medallion_icon" Format="rgba32" Width="24" Height="24" Offset="0x900"/>
|
||||
<Texture Name="gQuestIconMedallionWaterTex" OutName="water_medallion_icon" Format="rgba32" Width="24" Height="24" Offset="0x1200"/>
|
||||
<Texture Name="gQuestIconMedallionSpiritTex" OutName="spirit_medallion_icon" Format="rgba32" Width="24" Height="24" Offset="0x1B00"/>
|
||||
<Texture Name="gQuestIconMedallionShadowTex" OutName="shadow_medallion_icon" Format="rgba32" Width="24" Height="24" Offset="0x2400"/>
|
||||
<Texture Name="gQuestIconMedallionLightTex" OutName="light_medallion_icon" Format="rgba32" Width="24" Height="24" Offset="0x2D00"/>
|
||||
<Texture Name="gQuestIconKokiriEmeraldTex" OutName="kokiri_emerald_icon" Format="rgba32" Width="24" Height="24" Offset="0x3600"/>
|
||||
<Texture Name="gQuestIconGoronRubyTex" OutName="goron_ruby_icon" Format="rgba32" Width="24" Height="24" Offset="0x3F00"/>
|
||||
<Texture Name="gQuestIconZoraSapphireTex" OutName="zora_sapphire_icon" Format="rgba32" Width="24" Height="24" Offset="0x4800"/>
|
||||
<Texture Name="gQuestIconStoneOfAgonyTex" OutName="stone_of_agony_icon" Format="rgba32" Width="24" Height="24" Offset="0x5100"/>
|
||||
<Texture Name="gQuestIconGerudosCardTex" OutName="gerudos_card_icon" Format="rgba32" Width="24" Height="24" Offset="0x5A00"/>
|
||||
<Texture Name="gQuestIconGoldSkulltulaTex" OutName="gold_skulltula_icon" Format="rgba32" Width="24" Height="24" Offset="0x6300"/>
|
||||
<Texture Name="gQuestIconHeartContainerTex" OutName="heart_container_icon" Format="rgba32" Width="24" Height="24" Offset="0x6C00"/>
|
||||
<Texture Name="gQuestIconHeartPieceTex" OutName="heart_piece_icon" Format="rgba32" Width="24" Height="24" Offset="0x7500"/>
|
||||
<Texture Name="gQuestIconDungeonBossKeyTex" OutName="boss_key_icon" Format="rgba32" Width="24" Height="24" Offset="0x7E00"/>
|
||||
<Texture Name="gQuestIconDungeonCompassTex" OutName="compass_icon" Format="rgba32" Width="24" Height="24" Offset="0x8700"/>
|
||||
<Texture Name="gQuestIconDungeonMapTex" OutName="dungeon_map_icon" Format="rgba32" Width="24" Height="24" Offset="0x9000"/>
|
||||
<Texture Name="gQuestIconSmallKeyTex" OutName="small_key_icon" Format="rgba32" Width="24" Height="24" Offset="0x9900"/>
|
||||
<Texture Name="gQuestIconMagicJarSmallTex" OutName="small_magic_jar_icon" Format="rgba32" Width="24" Height="24" Offset="0xA200"/>
|
||||
<Texture Name="gQuestIconMagicJarBigTex" OutName="big_magic_jar_icon" Format="rgba32" Width="24" Height="24" Offset="0xAB00"/>
|
||||
</File>
|
||||
</Root>
|
||||
|
|
|
@ -1,95 +1,95 @@
|
|||
<Root>
|
||||
<File Name="icon_item_static" Segment="8">
|
||||
<Texture Name="gDekuStickIconTex" OutName="deku_stick_icon" Format="rgba32" Width="32" Height="32" Offset="0x0"/>
|
||||
<Texture Name="gDekuNutIconTex" OutName="deku_nut_icon" Format="rgba32" Width="32" Height="32" Offset="0x1000"/>
|
||||
<Texture Name="gBombIconTex" OutName="bomb_icon" Format="rgba32" Width="32" Height="32" Offset="0x2000"/>
|
||||
<Texture Name="gFairyBowIconTex" OutName="fairy_bow_icon" Format="rgba32" Width="32" Height="32" Offset="0x3000"/>
|
||||
<Texture Name="gFireArrowIconTex" OutName="fire_arrow_icon" Format="rgba32" Width="32" Height="32" Offset="0x4000"/>
|
||||
<Texture Name="gDinsFireIconTex" OutName="dins_fire_icon" Format="rgba32" Width="32" Height="32" Offset="0x5000"/>
|
||||
<Texture Name="gFairySlingshotIconTex" OutName="fairy_slingshot_icon" Format="rgba32" Width="32" Height="32" Offset="0x6000"/>
|
||||
<Texture Name="gFairyOcarinaIconTex" OutName="fairy_ocarina_icon" Format="rgba32" Width="32" Height="32" Offset="0x7000"/>
|
||||
<Texture Name="gOcarinaofTimeIconTex" OutName="ocarina_of_time_icon" Format="rgba32" Width="32" Height="32" Offset="0x8000"/>
|
||||
<Texture Name="gBombchuIconTex" OutName="bombchu_icon" Format="rgba32" Width="32" Height="32" Offset="0x9000"/>
|
||||
<Texture Name="gHookshotIconTex" OutName="hookshot_icon" Format="rgba32" Width="32" Height="32" Offset="0xA000"/>
|
||||
<Texture Name="gLongshotIconTex" OutName="longshot_icon" Format="rgba32" Width="32" Height="32" Offset="0xB000"/>
|
||||
<Texture Name="gIceArrowIconTex" OutName="ice_arrow_icon" Format="rgba32" Width="32" Height="32" Offset="0xC000"/>
|
||||
<Texture Name="gFaroresWindIconTex" OutName="farores_wind_icon" Format="rgba32" Width="32" Height="32" Offset="0xD000"/>
|
||||
<Texture Name="gBoomerangIconTex" OutName="boomerang_icon" Format="rgba32" Width="32" Height="32" Offset="0xE000"/>
|
||||
<Texture Name="gLensofTruthIconTex" OutName="lens_of_truth_icon" Format="rgba32" Width="32" Height="32" Offset="0xF000"/>
|
||||
<Texture Name="gMagicBeansIconTex" OutName="magic_beans_icon" Format="rgba32" Width="32" Height="32" Offset="0x10000"/>
|
||||
<Texture Name="gMegatonHammerIconTex" OutName="megaton_hammer_icon" Format="rgba32" Width="32" Height="32" Offset="0x11000"/>
|
||||
<Texture Name="gLightArrowIconTex" OutName="light_arrow_icon" Format="rgba32" Width="32" Height="32" Offset="0x12000"/>
|
||||
<Texture Name="gNayrusLoveIconTex" OutName="nayrus_love_icon" Format="rgba32" Width="32" Height="32" Offset="0x13000"/>
|
||||
<Texture Name="gEmptyBottleIconTex" OutName="empty_bottle_icon" Format="rgba32" Width="32" Height="32" Offset="0x14000"/>
|
||||
<Texture Name="gRedPotionIconTex" OutName="red_potion_icon" Format="rgba32" Width="32" Height="32" Offset="0x15000"/>
|
||||
<Texture Name="gGreenPotionIconTex" OutName="green_potion_icon" Format="rgba32" Width="32" Height="32" Offset="0x16000"/>
|
||||
<Texture Name="gBluePotionIconTex" OutName="blue_potion_icon" Format="rgba32" Width="32" Height="32" Offset="0x17000"/>
|
||||
<Texture Name="gBottledFairyIconTex" OutName="bottled_fairy_icon" Format="rgba32" Width="32" Height="32" Offset="0x18000"/>
|
||||
<Texture Name="gFishIconTex" OutName="fish_icon" Format="rgba32" Width="32" Height="32" Offset="0x19000"/>
|
||||
<Texture Name="gMilkFullIconTex" OutName="milk_full_icon" Format="rgba32" Width="32" Height="32" Offset="0x1A000"/>
|
||||
<Texture Name="gRutosLetterIconTex" OutName="rutos_letter_icon" Format="rgba32" Width="32" Height="32" Offset="0x1B000"/>
|
||||
<Texture Name="gBlueFireIconTex" OutName="blue_fire_icon" Format="rgba32" Width="32" Height="32" Offset="0x1C000"/>
|
||||
<Texture Name="gBugIconTex" OutName="bug_icon" Format="rgba32" Width="32" Height="32" Offset="0x1D000"/>
|
||||
<Texture Name="gBigPoeIconTex" OutName="big_poe_icon" Format="rgba32" Width="32" Height="32" Offset="0x1E000"/>
|
||||
<Texture Name="gMilkhalfIconTex" OutName="milk_half_icon" Format="rgba32" Width="32" Height="32" Offset="0x1F000"/>
|
||||
<Texture Name="gPoeIconTex" OutName="poe_icon" Format="rgba32" Width="32" Height="32" Offset="0x20000"/>
|
||||
<Texture Name="gWeirdEggIconTex" OutName="weird_egg_icon" Format="rgba32" Width="32" Height="32" Offset="0x21000"/>
|
||||
<Texture Name="gCuccoIconTex" OutName="cucco_icon" Format="rgba32" Width="32" Height="32" Offset="0x22000"/>
|
||||
<Texture Name="gZeldasLetterIconTex" OutName="zeldas_letter_icon" Format="rgba32" Width="32" Height="32" Offset="0x23000"/>
|
||||
<Texture Name="gKeatonMaskIconTex" OutName="keaton_mask_icon" Format="rgba32" Width="32" Height="32" Offset="0x24000"/>
|
||||
<Texture Name="gSkullMaskIconTex" OutName="skull_mask_icon" Format="rgba32" Width="32" Height="32" Offset="0x25000"/>
|
||||
<Texture Name="gSpookyMaskIconTex" OutName="spooky_mask_icon" Format="rgba32" Width="32" Height="32" Offset="0x26000"/>
|
||||
<Texture Name="gBunnyHoodIconTex" OutName="bunny_hood_icon" Format="rgba32" Width="32" Height="32" Offset="0x27000"/>
|
||||
<Texture Name="gGoronMaskIconTex" OutName="goron_mask_icon" Format="rgba32" Width="32" Height="32" Offset="0x28000"/>
|
||||
<Texture Name="gZoraMaskIconTex" OutName="zoras_mask_icon" Format="rgba32" Width="32" Height="32" Offset="0x29000"/>
|
||||
<Texture Name="gGerudoMaskIconTex" OutName="gerudos_mask_icon" Format="rgba32" Width="32" Height="32" Offset="0x2A000"/>
|
||||
<Texture Name="gMaskofTruthIconTex" OutName="mask_of_truth_icon" Format="rgba32" Width="32" Height="32" Offset="0x2B000"/>
|
||||
<Texture Name="gSoldOutIconTex" OutName="sold_out_icon" Format="rgba32" Width="32" Height="32" Offset="0x2C000"/>
|
||||
<Texture Name="gPocketEggIconTex" OutName="pocket_egg" Format="rgba32" Width="32" Height="32" Offset="0x2D000"/>
|
||||
<Texture Name="gPocketCuccoIconTex" OutName="pocket_cucco_icon" Format="rgba32" Width="32" Height="32" Offset="0x2E000"/>
|
||||
<Texture Name="gCojiroIconTex" OutName="cojiro_icon" Format="rgba32" Width="32" Height="32" Offset="0x2F000"/>
|
||||
<Texture Name="gOddMushroomIconTex" OutName="odd_mushroom_icon" Format="rgba32" Width="32" Height="32" Offset="0x30000"/>
|
||||
<Texture Name="gOddPotionIconTex" OutName="odd_potion_icon" Format="rgba32" Width="32" Height="32" Offset="0x31000"/>
|
||||
<Texture Name="gPoachersSawIconTex" OutName="poachers_saw_icon" Format="rgba32" Width="32" Height="32" Offset="0x32000"/>
|
||||
<Texture Name="gBrokenBiggoronSwordIconTex" OutName="broken_biggoron_sword_icon" Format="rgba32" Width="32" Height="32" Offset="0x33000"/>
|
||||
<Texture Name="gPrescriptionIconTex" OutName="prescription_icon" Format="rgba32" Width="32" Height="32" Offset="0x34000"/>
|
||||
<Texture Name="gEyeBallFrogIconTex" OutName="eyeball_frog_icon" Format="rgba32" Width="32" Height="32" Offset="0x35000"/>
|
||||
<Texture Name="gEyeDropsIconTex" OutName="eye_drops_icon" Format="rgba32" Width="32" Height="32" Offset="0x36000"/>
|
||||
<Texture Name="gClaimCheckIconTex" OutName="claim_check_icon" Format="rgba32" Width="32" Height="32" Offset="0x37000"/>
|
||||
<Texture Name="gFairyBowFireIconTex" OutName="fairy_bow_fire_icon" Format="rgba32" Width="32" Height="32" Offset="0x38000"/>
|
||||
<Texture Name="gFairyBowIceIconTex" OutName="fairy_bow_ice_icon" Format="rgba32" Width="32" Height="32" Offset="0x39000"/>
|
||||
<Texture Name="gFairyBowLightIconTex" OutName="fairy_bow_light_icon" Format="rgba32" Width="32" Height="32" Offset="0x3A000"/>
|
||||
<Texture Name="gKokiriSwordIconTex" OutName="kokiri_sword_icon" Format="rgba32" Width="32" Height="32" Offset="0x3B000"/>
|
||||
<Texture Name="gMasterSwordIconTex" OutName="master_sword_icon" Format="rgba32" Width="32" Height="32" Offset="0x3C000"/>
|
||||
<Texture Name="gBiggoronSwordIconTex" OutName="biggoron_sword_icon" Format="rgba32" Width="32" Height="32" Offset="0x3D000"/>
|
||||
<Texture Name="gDekuShieldIconTex" OutName="deku_shield_icon" Format="rgba32" Width="32" Height="32" Offset="0x3E000"/>
|
||||
<Texture Name="gHylianShieldIconTex" OutName="hylian_shield_icon" Format="rgba32" Width="32" Height="32" Offset="0x3F000"/>
|
||||
<Texture Name="gMirrorShieldIconTex" OutName="mirror_shield_icon" Format="rgba32" Width="32" Height="32" Offset="0x40000"/>
|
||||
<Texture Name="gKokiriTunicIconTex" OutName="kokiri_tunic_icon" Format="rgba32" Width="32" Height="32" Offset="0x41000"/>
|
||||
<Texture Name="gGoronTunicIconTex" OutName="goron_tunic_icon" Format="rgba32" Width="32" Height="32" Offset="0x42000"/>
|
||||
<Texture Name="gZoraTunicIconTex" OutName="zora_tunic_icon" Format="rgba32" Width="32" Height="32" Offset="0x43000"/>
|
||||
<Texture Name="gKokiriBootsIconTex" OutName="kokiri_boots_icon" Format="rgba32" Width="32" Height="32" Offset="0x44000"/>
|
||||
<Texture Name="gIronBootsIconTex" OutName="iron_boots_icon" Format="rgba32" Width="32" Height="32" Offset="0x45000"/>
|
||||
<Texture Name="gHoverBootsIconTex" OutName="hover_boots_icon" Format="rgba32" Width="32" Height="32" Offset="0x46000"/>
|
||||
<Texture Name="gBulletBag30IconTex" OutName="bullet_bag_30_icon" Format="rgba32" Width="32" Height="32" Offset="0x47000"/>
|
||||
<Texture Name="gBulletBag40IconTex" OutName="bullet_bag_40_icon" Format="rgba32" Width="32" Height="32" Offset="0x48000"/>
|
||||
<Texture Name="gBulletBag50IconTex" OutName="bullet_bag_50_icon" Format="rgba32" Width="32" Height="32" Offset="0x49000"/>
|
||||
<Texture Name="gQuiver30IconTex" OutName="quiver_30_icon" Format="rgba32" Width="32" Height="32" Offset="0x4A000"/>
|
||||
<Texture Name="gQuiver40IconTex" OutName="quiver_40_icon" Format="rgba32" Width="32" Height="32" Offset="0x4B000"/>
|
||||
<Texture Name="gQuiver50IconTex" OutName="quiver_50_icon" Format="rgba32" Width="32" Height="32" Offset="0x4C000"/>
|
||||
<Texture Name="gBombBag20IconTex" OutName="bomb_bag_20_icon" Format="rgba32" Width="32" Height="32" Offset="0x4D000"/>
|
||||
<Texture Name="gBombBag30IconTex" OutName="bomb_bag_30_icon" Format="rgba32" Width="32" Height="32" Offset="0x4E000"/>
|
||||
<Texture Name="gBombBag40IconTex" OutName="bomb_bag_40_icon" Format="rgba32" Width="32" Height="32" Offset="0x4F000"/>
|
||||
<Texture Name="gGoronsBraceletIconTex" OutName="gorons_bracelet_icon" Format="rgba32" Width="32" Height="32" Offset="0x50000"/>
|
||||
<Texture Name="gSilverGauntletsIconTex" OutName="silver_gauntlets_icon" Format="rgba32" Width="32" Height="32" Offset="0x51000"/>
|
||||
<Texture Name="gGoldenGauntletsIconTex" OutName="golden_gauntlets_icon" Format="rgba32" Width="32" Height="32" Offset="0x52000"/>
|
||||
<Texture Name="gSilverScaleIconTex" OutName="silver_scale_icon" Format="rgba32" Width="32" Height="32" Offset="0x53000"/>
|
||||
<Texture Name="gGoldenScaleIconTex" OutName="golden_scale_icon" Format="rgba32" Width="32" Height="32" Offset="0x54000"/>
|
||||
<Texture Name="gBrokenGiantsKnifeIconTex" OutName="broken_giants_knife_icon" Format="rgba32" Width="32" Height="32" Offset="0x55000"/>
|
||||
<Texture Name="gAdultsWalletIconTex" OutName="adults_wallet_icon" Format="rgba32" Width="32" Height="32" Offset="0x56000"/>
|
||||
<Texture Name="gGiantsWalletIconTex" OutName="giants_wallet_icon" Format="rgba32" Width="32" Height="32" Offset="0x57000"/>
|
||||
<Texture Name="gDekuSeedsIconTex" OutName="deku_seeds_icon" Format="rgba32" Width="32" Height="32" Offset="0x58000"/>
|
||||
<Texture Name="gFishingPoleIconTex" OutName="fishing_pole_icon" Format="rgba32" Width="32" Height="32" Offset="0x59000"/>
|
||||
<Texture Name="gItemIconDekuStickTex" OutName="deku_stick_icon" Format="rgba32" Width="32" Height="32" Offset="0x0"/>
|
||||
<Texture Name="gItemIconDekuNutTex" OutName="deku_nut_icon" Format="rgba32" Width="32" Height="32" Offset="0x1000"/>
|
||||
<Texture Name="gItemIconBombTex" OutName="bomb_icon" Format="rgba32" Width="32" Height="32" Offset="0x2000"/>
|
||||
<Texture Name="gItemIconBowTex" OutName="bow_icon" Format="rgba32" Width="32" Height="32" Offset="0x3000"/>
|
||||
<Texture Name="gItemIconArrowFireTex" OutName="fire_arrow_icon" Format="rgba32" Width="32" Height="32" Offset="0x4000"/>
|
||||
<Texture Name="gItemIconDinsFireTex" OutName="dins_fire_icon" Format="rgba32" Width="32" Height="32" Offset="0x5000"/>
|
||||
<Texture Name="gItemIconSlingshotTex" OutName="slingshot_icon" Format="rgba32" Width="32" Height="32" Offset="0x6000"/>
|
||||
<Texture Name="gItemIconOcarinaFairyTex" OutName="fairy_ocarina_icon" Format="rgba32" Width="32" Height="32" Offset="0x7000"/>
|
||||
<Texture Name="gItemIconOcarinaOfTimeTex" OutName="ocarina_of_time_icon" Format="rgba32" Width="32" Height="32" Offset="0x8000"/>
|
||||
<Texture Name="gItemIconBombchuTex" OutName="bombchu_icon" Format="rgba32" Width="32" Height="32" Offset="0x9000"/>
|
||||
<Texture Name="gItemIconHookshotTex" OutName="hookshot_icon" Format="rgba32" Width="32" Height="32" Offset="0xA000"/>
|
||||
<Texture Name="gItemIconLongshotTex" OutName="longshot_icon" Format="rgba32" Width="32" Height="32" Offset="0xB000"/>
|
||||
<Texture Name="gItemIconArrowIceTex" OutName="ice_arrow_icon" Format="rgba32" Width="32" Height="32" Offset="0xC000"/>
|
||||
<Texture Name="gItemIconFaroresWindTex" OutName="farores_wind_icon" Format="rgba32" Width="32" Height="32" Offset="0xD000"/>
|
||||
<Texture Name="gItemIconBoomerangTex" OutName="boomerang_icon" Format="rgba32" Width="32" Height="32" Offset="0xE000"/>
|
||||
<Texture Name="gItemIconLensOfTruthTex" OutName="lens_of_truth_icon" Format="rgba32" Width="32" Height="32" Offset="0xF000"/>
|
||||
<Texture Name="gItemIconMagicBeanTex" OutName="magic_bean_icon" Format="rgba32" Width="32" Height="32" Offset="0x10000"/>
|
||||
<Texture Name="gItemIconHammerTex" OutName="hammer_icon" Format="rgba32" Width="32" Height="32" Offset="0x11000"/>
|
||||
<Texture Name="gItemIconArrowLightTex" OutName="light_arrow_icon" Format="rgba32" Width="32" Height="32" Offset="0x12000"/>
|
||||
<Texture Name="gItemIconNayrusLoveTex" OutName="nayrus_love_icon" Format="rgba32" Width="32" Height="32" Offset="0x13000"/>
|
||||
<Texture Name="gItemIconBottleEmptyTex" OutName="empty_bottle_icon" Format="rgba32" Width="32" Height="32" Offset="0x14000"/>
|
||||
<Texture Name="gItemIconBottlePotionRedTex" OutName="red_potion_icon" Format="rgba32" Width="32" Height="32" Offset="0x15000"/>
|
||||
<Texture Name="gItemIconBottlePotionGreenTex" OutName="green_potion_icon" Format="rgba32" Width="32" Height="32" Offset="0x16000"/>
|
||||
<Texture Name="gItemIconBottlePotionBlueTex" OutName="blue_potion_icon" Format="rgba32" Width="32" Height="32" Offset="0x17000"/>
|
||||
<Texture Name="gItemIconBottleFairyTex" OutName="bottled_fairy_icon" Format="rgba32" Width="32" Height="32" Offset="0x18000"/>
|
||||
<Texture Name="gItemIconBottleFishTex" OutName="bottled_fish_icon" Format="rgba32" Width="32" Height="32" Offset="0x19000"/>
|
||||
<Texture Name="gItemIconBottleMilkFullTex" OutName="bottled_milk_full_icon" Format="rgba32" Width="32" Height="32" Offset="0x1A000"/>
|
||||
<Texture Name="gItemIconBottleRutosLetterTex" OutName="bottled_rutos_letter_icon" Format="rgba32" Width="32" Height="32" Offset="0x1B000"/>
|
||||
<Texture Name="gItemIconBottleBlueFireTex" OutName="bottled_blue_fire_icon" Format="rgba32" Width="32" Height="32" Offset="0x1C000"/>
|
||||
<Texture Name="gItemIconBottleBugTex" OutName="bottled_bug_icon" Format="rgba32" Width="32" Height="32" Offset="0x1D000"/>
|
||||
<Texture Name="gItemIconBottleBigPoeTex" OutName="bottled_big_poe_icon" Format="rgba32" Width="32" Height="32" Offset="0x1E000"/>
|
||||
<Texture Name="gItemIconBottleMilkHalfTex" OutName="bottled_milk_half_icon" Format="rgba32" Width="32" Height="32" Offset="0x1F000"/>
|
||||
<Texture Name="gItemIconBottlePoeTex" OutName="bottled_poe_icon" Format="rgba32" Width="32" Height="32" Offset="0x20000"/>
|
||||
<Texture Name="gItemIconWeirdEggTex" OutName="weird_egg_icon" Format="rgba32" Width="32" Height="32" Offset="0x21000"/>
|
||||
<Texture Name="gItemIconChickenTex" OutName="chicken_icon" Format="rgba32" Width="32" Height="32" Offset="0x22000"/>
|
||||
<Texture Name="gItemIconZeldasLetterTex" OutName="zeldas_letter_icon" Format="rgba32" Width="32" Height="32" Offset="0x23000"/>
|
||||
<Texture Name="gItemIconMaskKeatonTex" OutName="keaton_mask_icon" Format="rgba32" Width="32" Height="32" Offset="0x24000"/>
|
||||
<Texture Name="gItemIconMaskSkullTex" OutName="skull_mask_icon" Format="rgba32" Width="32" Height="32" Offset="0x25000"/>
|
||||
<Texture Name="gItemIconMaskSpookyTex" OutName="spooky_mask_icon" Format="rgba32" Width="32" Height="32" Offset="0x26000"/>
|
||||
<Texture Name="gItemIconMaskBunnyHoodTex" OutName="bunny_hood_icon" Format="rgba32" Width="32" Height="32" Offset="0x27000"/>
|
||||
<Texture Name="gItemIconMaskGoronTex" OutName="goron_mask_icon" Format="rgba32" Width="32" Height="32" Offset="0x28000"/>
|
||||
<Texture Name="gItemIconMaskZoraTex" OutName="zora_mask_icon" Format="rgba32" Width="32" Height="32" Offset="0x29000"/>
|
||||
<Texture Name="gItemIconMaskGerudoTex" OutName="gerudo_mask_icon" Format="rgba32" Width="32" Height="32" Offset="0x2A000"/>
|
||||
<Texture Name="gItemIconMaskTruthTex" OutName="mask_of_truth_icon" Format="rgba32" Width="32" Height="32" Offset="0x2B000"/>
|
||||
<Texture Name="gItemIconSoldOutTex" OutName="sold_out_icon" Format="rgba32" Width="32" Height="32" Offset="0x2C000"/>
|
||||
<Texture Name="gItemIconPocketEggTex" OutName="pocket_egg_icon" Format="rgba32" Width="32" Height="32" Offset="0x2D000"/>
|
||||
<Texture Name="gItemIconPocketCuccoTex" OutName="pocket_cucco_icon" Format="rgba32" Width="32" Height="32" Offset="0x2E000"/>
|
||||
<Texture Name="gItemIconCojiroTex" OutName="cojiro_icon" Format="rgba32" Width="32" Height="32" Offset="0x2F000"/>
|
||||
<Texture Name="gItemIconOddMushroomTex" OutName="odd_mushroom_icon" Format="rgba32" Width="32" Height="32" Offset="0x30000"/>
|
||||
<Texture Name="gItemIconOddPotionTex" OutName="odd_potion_icon" Format="rgba32" Width="32" Height="32" Offset="0x31000"/>
|
||||
<Texture Name="gItemIconPoachersSawTex" OutName="poachers_saw_icon" Format="rgba32" Width="32" Height="32" Offset="0x32000"/>
|
||||
<Texture Name="gItemIconBrokenGoronsSwordTex" OutName="broken_gorons_sword_icon" Format="rgba32" Width="32" Height="32" Offset="0x33000"/>
|
||||
<Texture Name="gItemIconPrescriptionTex" OutName="prescription_icon" Format="rgba32" Width="32" Height="32" Offset="0x34000"/>
|
||||
<Texture Name="gItemIconEyeballFrogTex" OutName="eyeball_frog_icon" Format="rgba32" Width="32" Height="32" Offset="0x35000"/>
|
||||
<Texture Name="gItemIconEyeDropsTex" OutName="eye_drops_icon" Format="rgba32" Width="32" Height="32" Offset="0x36000"/>
|
||||
<Texture Name="gItemIconClaimCheckTex" OutName="claim_check_icon" Format="rgba32" Width="32" Height="32" Offset="0x37000"/>
|
||||
<Texture Name="gItemIconBowFireTex" OutName="bow_fire_icon" Format="rgba32" Width="32" Height="32" Offset="0x38000"/>
|
||||
<Texture Name="gItemIconBowIceTex" OutName="bow_ice_icon" Format="rgba32" Width="32" Height="32" Offset="0x39000"/>
|
||||
<Texture Name="gItemIconBowLightTex" OutName="bow_light_icon" Format="rgba32" Width="32" Height="32" Offset="0x3A000"/>
|
||||
<Texture Name="gItemIconSwordKokiriTex" OutName="kokiri_sword_icon" Format="rgba32" Width="32" Height="32" Offset="0x3B000"/>
|
||||
<Texture Name="gItemIconSwordMasterTex" OutName="master_sword_icon" Format="rgba32" Width="32" Height="32" Offset="0x3C000"/>
|
||||
<Texture Name="gItemIconSwordBiggoronTex" OutName="biggoron_sword_icon" Format="rgba32" Width="32" Height="32" Offset="0x3D000"/>
|
||||
<Texture Name="gItemIconShieldDekuTex" OutName="deku_shield_icon" Format="rgba32" Width="32" Height="32" Offset="0x3E000"/>
|
||||
<Texture Name="gItemIconShieldHylianTex" OutName="hylian_shield_icon" Format="rgba32" Width="32" Height="32" Offset="0x3F000"/>
|
||||
<Texture Name="gItemIconShieldMirrorTex" OutName="mirror_shield_icon" Format="rgba32" Width="32" Height="32" Offset="0x40000"/>
|
||||
<Texture Name="gItemIconTunicKokiriTex" OutName="kokiri_tunic_icon" Format="rgba32" Width="32" Height="32" Offset="0x41000"/>
|
||||
<Texture Name="gItemIconTunicGoronTex" OutName="goron_tunic_icon" Format="rgba32" Width="32" Height="32" Offset="0x42000"/>
|
||||
<Texture Name="gItemIconTunicZoraTex" OutName="zora_tunic_icon" Format="rgba32" Width="32" Height="32" Offset="0x43000"/>
|
||||
<Texture Name="gItemIconBootsKokiriTex" OutName="kokiri_boots_icon" Format="rgba32" Width="32" Height="32" Offset="0x44000"/>
|
||||
<Texture Name="gItemIconBootsIronTex" OutName="iron_boots_icon" Format="rgba32" Width="32" Height="32" Offset="0x45000"/>
|
||||
<Texture Name="gItemIconBootsHoverTex" OutName="hover_boots_icon" Format="rgba32" Width="32" Height="32" Offset="0x46000"/>
|
||||
<Texture Name="gItemIconBulletBag30Tex" OutName="bullet_bag_30_icon" Format="rgba32" Width="32" Height="32" Offset="0x47000"/>
|
||||
<Texture Name="gItemIconBulletBag40Tex" OutName="bullet_bag_40_icon" Format="rgba32" Width="32" Height="32" Offset="0x48000"/>
|
||||
<Texture Name="gItemIconBulletBag50Tex" OutName="bullet_bag_50_icon" Format="rgba32" Width="32" Height="32" Offset="0x49000"/>
|
||||
<Texture Name="gItemIconQuiver30Tex" OutName="quiver_30_icon" Format="rgba32" Width="32" Height="32" Offset="0x4A000"/>
|
||||
<Texture Name="gItemIconQuiver40Tex" OutName="quiver_40_icon" Format="rgba32" Width="32" Height="32" Offset="0x4B000"/>
|
||||
<Texture Name="gItemIconQuiver50Tex" OutName="quiver_50_icon" Format="rgba32" Width="32" Height="32" Offset="0x4C000"/>
|
||||
<Texture Name="gItemIconBombBag20Tex" OutName="bomb_bag_20_icon" Format="rgba32" Width="32" Height="32" Offset="0x4D000"/>
|
||||
<Texture Name="gItemIconBombBag30Tex" OutName="bomb_bag_30_icon" Format="rgba32" Width="32" Height="32" Offset="0x4E000"/>
|
||||
<Texture Name="gItemIconBombBag40Tex" OutName="bomb_bag_40_icon" Format="rgba32" Width="32" Height="32" Offset="0x4F000"/>
|
||||
<Texture Name="gItemIconGoronsBraceletTex" OutName="gorons_bracelet_icon" Format="rgba32" Width="32" Height="32" Offset="0x50000"/>
|
||||
<Texture Name="gItemIconSilverGauntletsTex" OutName="silver_gauntlets_icon" Format="rgba32" Width="32" Height="32" Offset="0x51000"/>
|
||||
<Texture Name="gItemIconGoldenGauntletsTex" OutName="golden_gauntlets_icon" Format="rgba32" Width="32" Height="32" Offset="0x52000"/>
|
||||
<Texture Name="gItemIconScaleSilverTex" OutName="silver_scale_icon" Format="rgba32" Width="32" Height="32" Offset="0x53000"/>
|
||||
<Texture Name="gItemIconScaleGoldenTex" OutName="golden_scale_icon" Format="rgba32" Width="32" Height="32" Offset="0x54000"/>
|
||||
<Texture Name="gItemIconBrokenGiantsKnifeTex" OutName="broken_giants_knife_icon" Format="rgba32" Width="32" Height="32" Offset="0x55000"/>
|
||||
<Texture Name="gItemIconAdultsWalletTex" OutName="adults_wallet_icon" Format="rgba32" Width="32" Height="32" Offset="0x56000"/>
|
||||
<Texture Name="gItemIconGiantsWalletTex" OutName="giants_wallet_icon" Format="rgba32" Width="32" Height="32" Offset="0x57000"/>
|
||||
<Texture Name="gItemIconDekuSeedsTex" OutName="deku_seeds_icon" Format="rgba32" Width="32" Height="32" Offset="0x58000"/>
|
||||
<Texture Name="gItemIconFishingPoleTex" OutName="fishing_pole_icon" Format="rgba32" Width="32" Height="32" Offset="0x59000"/>
|
||||
<Texture Name="gHeartPieceIcon1Tex" OutName="heart_piece_icon_1" Format="ia8" Width="48" Height="48" Offset="0x5A000"/>
|
||||
<Texture Name="gHeartPieceIcon2Tex" OutName="heart_piece_icon_2" Format="ia8" Width="48" Height="48" Offset="0x5A900"/>
|
||||
<Texture Name="gHeartPieceIcon3Tex" OutName="heart_piece_icon_3" Format="ia8" Width="48" Height="48" Offset="0x5B200"/>
|
||||
|
|
|
@ -23,11 +23,11 @@
|
|||
<Texture Name="gMapChestIconTex" OutName="map_chest_icon" Format="rgba16" Width="8" Height="8" Offset="0x2580"/>
|
||||
<Texture Name="gArcheryScoreIconTex" OutName="archery_score_icon" Format="rgba16" Width="24" Height="16" Offset="0x2600"/>
|
||||
<Texture Name="gMapBossIconTex" OutName="map_boss_icon" Format="ia8" Width="8" Height="8" Offset="0x2900"/>
|
||||
<Texture Name="gOcarinaATex" OutName="ocarina_a" Format="ia8" Width="16" Height="16" Offset="0x2940"/>
|
||||
<Texture Name="gOcarinaCDownTex" OutName="ocarina_c_down" Format="ia8" Width="16" Height="16" Offset="0x2A40"/>
|
||||
<Texture Name="gOcarinaCRightTex" OutName="ocarina_c_right" Format="ia8" Width="16" Height="16" Offset="0x2B40"/>
|
||||
<Texture Name="gOcarinaCLeftTex" OutName="ocarina_c_left" Format="ia8" Width="16" Height="16" Offset="0x2C40"/>
|
||||
<Texture Name="gOcarinaCUpTex" OutName="ocarina_c_up" Format="ia8" Width="16" Height="16" Offset="0x2D40"/>
|
||||
<Texture Name="gOcarinaBtnIconATex" OutName="ocarina_a" Format="ia8" Width="16" Height="16" Offset="0x2940"/>
|
||||
<Texture Name="gOcarinaBtnIconCDownTex" OutName="ocarina_c_down" Format="ia8" Width="16" Height="16" Offset="0x2A40"/>
|
||||
<Texture Name="gOcarinaBtnIconCRightTex" OutName="ocarina_c_right" Format="ia8" Width="16" Height="16" Offset="0x2B40"/>
|
||||
<Texture Name="gOcarinaBtnIconCLeftTex" OutName="ocarina_c_left" Format="ia8" Width="16" Height="16" Offset="0x2C40"/>
|
||||
<Texture Name="gOcarinaBtnIconCUpTex" OutName="ocarina_c_up" Format="ia8" Width="16" Height="16" Offset="0x2D40"/>
|
||||
<Texture Name="gOcarinaTrebleClefTex" OutName="ocarina_treble_clef" Format="i4" Width="16" Height="32" Offset="0x2E40"/>
|
||||
<Texture Name="gNaviCUpJPTex" OutName="navi_c_up_jp" Format="ia4" Width="32" Height="8" Offset="0x2F40"/>
|
||||
<Texture Name="gNaviCUpENGTex" OutName="navi_c_up_eng" Format="ia4" Width="32" Height="8" Offset="0x2FC0"/>
|
||||
|
|
|
@ -414,12 +414,12 @@ u32 Actor_TextboxIsClosing(Actor* actor, PlayState* play);
|
|||
s8 func_8002F368(PlayState* play);
|
||||
void Actor_GetScreenPos(PlayState* play, Actor* actor, s16* x, s16* y);
|
||||
u32 Actor_HasParent(Actor* actor, PlayState* play);
|
||||
s32 func_8002F434(Actor* actor, PlayState* play, s32 getItemId, f32 xzRange, f32 yRange);
|
||||
void func_8002F554(Actor* actor, PlayState* play, s32 getItemId);
|
||||
void func_8002F580(Actor* actor, PlayState* play);
|
||||
s32 Actor_OfferGetItem(Actor* actor, PlayState* play, s32 getItemId, f32 xzRange, f32 yRange);
|
||||
s32 Actor_OfferGetItemNearby(Actor* actor, PlayState* play, s32 getItemId);
|
||||
s32 Actor_OfferCarry(Actor* actor, PlayState* play);
|
||||
u32 Actor_HasNoParent(Actor* actor, PlayState* play);
|
||||
void func_8002F5C4(Actor* actorA, Actor* actorB, PlayState* play);
|
||||
void func_8002F5F0(Actor* actor, PlayState* play);
|
||||
void Actor_SetClosestSecretDistance(Actor* actor, PlayState* play);
|
||||
s32 Actor_IsMounted(PlayState* play, Actor* horse);
|
||||
u32 Actor_SetRideActor(PlayState* play, Actor* horse, s32 mountSide);
|
||||
s32 Actor_NotMounted(PlayState* play, Actor* horse);
|
||||
|
@ -442,7 +442,7 @@ void Actor_InitContext(PlayState* play, ActorContext* actorCtx, ActorEntry* play
|
|||
void Actor_UpdateAll(PlayState* play, ActorContext* actorCtx);
|
||||
s32 func_800314D4(PlayState* play, Actor* actor, Vec3f* arg2, f32 arg3);
|
||||
void func_800315AC(PlayState* play, ActorContext* actorCtx);
|
||||
void func_80031A28(PlayState* play, ActorContext* actorCtx);
|
||||
void Actor_KillAllWithMissingObject(PlayState* play, ActorContext* actorCtx);
|
||||
void func_80031B14(PlayState* play, ActorContext* actorCtx);
|
||||
void func_80031C3C(ActorContext* actorCtx, PlayState* play);
|
||||
Actor* Actor_Spawn(ActorContext* actorCtx, PlayState* play, s16 actorId, f32 posX, f32 posY, f32 posZ,
|
||||
|
@ -481,7 +481,7 @@ f32 Rand_ZeroFloat(f32 f);
|
|||
f32 Rand_CenteredFloat(f32 f);
|
||||
void Actor_DrawDoorLock(PlayState* play, s32 frame, s32 type);
|
||||
void func_8003424C(PlayState* play, Vec3f* arg1);
|
||||
void Actor_SetColorFilter(Actor* actor, s16 colorFlag, s16 colorIntensityMax, s16 xluFlag, s16 duration);
|
||||
void Actor_SetColorFilter(Actor* actor, s16 colorFlag, s16 colorIntensityMax, s16 bufFlag, s16 duration);
|
||||
Hilite* func_800342EC(Vec3f* object, PlayState* play);
|
||||
Hilite* func_8003435C(Vec3f* object, PlayState* play);
|
||||
s32 Npc_UpdateTalking(PlayState* play, Actor* actor, s16* talkState, f32 interactRange,
|
||||
|
|
|
@ -100,7 +100,7 @@
|
|||
#define R_TEXTBOX_HEIGHT YREG(23)
|
||||
#define R_TEXTBOX_ICON_XPOS YREG(71)
|
||||
#define R_TEXTBOX_ICON_YPOS YREG(72)
|
||||
#define R_TEXTBOX_ICON_SIZE YREG(75)
|
||||
#define R_TEXTBOX_ICON_DIMENSION YREG(75)
|
||||
#define R_MESSAGE_DEBUGGER_SELECT YREG(78)
|
||||
#define R_MESSAGE_DEBUGGER_TEXTID YREG(79)
|
||||
#define R_C_UP_ICON_X YREG(88)
|
||||
|
|
|
@ -1236,7 +1236,7 @@ typedef struct PlayState {
|
|||
/* 0x11D44 */ s32 (*isPlayerDroppingFish)(struct PlayState* play);
|
||||
/* 0x11D48 */ s32 (*startPlayerFishing)(struct PlayState* play);
|
||||
/* 0x11D4C */ s32 (*grabPlayer)(struct PlayState* play, Player* player);
|
||||
/* 0x11D50 */ s32 (*startPlayerCutscene)(struct PlayState* play, Actor* actor, s32 mode);
|
||||
/* 0x11D50 */ s32 (*startPlayerCutscene)(struct PlayState* play, Actor* actor, s32 csMode);
|
||||
/* 0x11D54 */ void (*func_11D54)(Player* player, struct PlayState* play);
|
||||
/* 0x11D58 */ s32 (*damagePlayer)(struct PlayState* play, s32 damage);
|
||||
/* 0x11D5C */ void (*talkWithPlayer)(struct PlayState* play, Actor* actor);
|
||||
|
|
|
@ -169,6 +169,18 @@ typedef struct {
|
|||
#define ACTOR_FLAG_27 (1 << 27)
|
||||
#define ACTOR_FLAG_28 (1 << 28)
|
||||
|
||||
#define COLORFILTER_GET_COLORINTENSITY(colorFilterParams) (((colorFilterParams) & 0x1F00) >> 5)
|
||||
#define COLORFILTER_GET_DURATION(colorFilterParams) ((colorFilterParams) & 0xFF)
|
||||
|
||||
#define COLORFILTER_COLORFLAG_GRAY 0x8000
|
||||
#define COLORFILTER_COLORFLAG_RED 0x4000
|
||||
#define COLORFILTER_COLORFLAG_BLUE 0x0000
|
||||
|
||||
#define COLORFILTER_INTENSITY_FLAG 0x8000
|
||||
|
||||
#define COLORFILTER_BUFFLAG_XLU 0x2000
|
||||
#define COLORFILTER_BUFFLAG_OPA 0x0000
|
||||
|
||||
#define BGCHECKFLAG_GROUND (1 << 0) // Standing on the ground
|
||||
#define BGCHECKFLAG_GROUND_TOUCH (1 << 1) // Has touched the ground (only active for 1 frame)
|
||||
#define BGCHECKFLAG_GROUND_LEAVE (1 << 2) // Has left the ground (only active for 1 frame)
|
||||
|
|
|
@ -3,10 +3,11 @@
|
|||
|
||||
#include "ultra64.h"
|
||||
#include "z64cutscene.h"
|
||||
#include "z64math.h"
|
||||
#include "z64save.h"
|
||||
|
||||
// these two angle conversion macros are slightly inaccurate
|
||||
#define CAM_DEG_TO_BINANG(degrees) (s16)((degrees) * 182.04167f + .5f)
|
||||
#define CAM_DEG_TO_BINANG(degrees) (s16)TRUNCF_BINANG((degrees) * 182.04167f + .5f)
|
||||
#define CAM_BINANG_TO_DEG(binang) ((f32)(binang) * (360.0001525f / 65535.0f))
|
||||
|
||||
#define CAM_STAT_CUT 0
|
||||
|
@ -1221,6 +1222,33 @@ typedef struct {
|
|||
{ fov, CAM_DATA_FOV }, \
|
||||
{ interfaceField, CAM_DATA_INTERFACE_FIELD }
|
||||
|
||||
typedef enum {
|
||||
/* 0x1 */ ONEPOINT_CS_ACTION_ID_1 = 1,
|
||||
/* 0x2 */ ONEPOINT_CS_ACTION_ID_2,
|
||||
/* 0x3 */ ONEPOINT_CS_ACTION_ID_3,
|
||||
/* 0x4 */ ONEPOINT_CS_ACTION_ID_4,
|
||||
/* 0x9 */ ONEPOINT_CS_ACTION_ID_9 = 9,
|
||||
/* 0xA */ ONEPOINT_CS_ACTION_ID_10,
|
||||
/* 0xB */ ONEPOINT_CS_ACTION_ID_11,
|
||||
/* 0xC */ ONEPOINT_CS_ACTION_ID_12,
|
||||
/* 0xD */ ONEPOINT_CS_ACTION_ID_13,
|
||||
/* 0xF */ ONEPOINT_CS_ACTION_ID_15 = 15,
|
||||
/* 0x10 */ ONEPOINT_CS_ACTION_ID_16,
|
||||
/* 0x11 */ ONEPOINT_CS_ACTION_ID_17,
|
||||
/* 0x12 */ ONEPOINT_CS_ACTION_ID_18,
|
||||
/* 0x13 */ ONEPOINT_CS_ACTION_ID_19,
|
||||
/* 0x15 */ ONEPOINT_CS_ACTION_ID_21 = 21,
|
||||
/* 0x18 */ ONEPOINT_CS_ACTION_ID_24 = 24
|
||||
} OnePointCsAction;
|
||||
|
||||
#define ONEPOINT_CS_ACTION_FLAG_40 0x40
|
||||
#define ONEPOINT_CS_ACTION_FLAG_BGCHECK 0x80
|
||||
|
||||
#define ONEPOINT_CS_ACTION(action, isBit40, checkBg) \
|
||||
(((action) & 0x1F) | ((isBit40) ? ONEPOINT_CS_ACTION_FLAG_40 : 0) | ((checkBg) ? ONEPOINT_CS_ACTION_FLAG_BGCHECK : 0))
|
||||
|
||||
#define ONEPOINT_CS_GET_ACTION(onePointCsFull) ((onePointCsFull)->actionFlags & 0x1F)
|
||||
|
||||
/** initFlags
|
||||
* & 0x00FF = atInitFlags
|
||||
* & 0xFF00 = eyeInitFlags
|
||||
|
|
|
@ -1,6 +1,34 @@
|
|||
#ifndef Z64INTERFACE_H
|
||||
#define Z64INTERFACE_H
|
||||
|
||||
extern u8 _icon_item_staticSegmentRomStart[];
|
||||
extern u8 _icon_item_24_staticSegmentRomStart[];
|
||||
|
||||
// An "item icon" (gItemIcon*Tex) is 32x32 rgba32
|
||||
#define ITEM_ICON_WIDTH 32
|
||||
#define ITEM_ICON_HEIGHT 32
|
||||
#define ITEM_ICON_SIZE (ITEM_ICON_WIDTH * ITEM_ICON_HEIGHT * 4) // The size in bytes of an item icon
|
||||
|
||||
/**
|
||||
* Get the VROM address of the item icon for the specified item.
|
||||
*
|
||||
* @param itemId An ItemId value in the range `ITEM_DEKU_STICK`..`ITEM_FISHING_POLE`
|
||||
*/
|
||||
#define GET_ITEM_ICON_VROM(itemId) ((uintptr_t)_icon_item_staticSegmentRomStart + ((itemId)*ITEM_ICON_SIZE))
|
||||
|
||||
// A "quest icon" (gQuestIcon*Tex) is 24x24 rgba32
|
||||
#define QUEST_ICON_WIDTH 24
|
||||
#define QUEST_ICON_HEIGHT 24
|
||||
#define QUEST_ICON_SIZE (QUEST_ICON_WIDTH * QUEST_ICON_HEIGHT * 4) // The size in bytes of a quest icon
|
||||
|
||||
/**
|
||||
* Get the VROM address of the quest icon for the specified item.
|
||||
*
|
||||
* @param itemId An ItemId value in the range `ITEM_MEDALLION_FOREST`..`ITEM_MAGIC_JAR_BIG`
|
||||
*/
|
||||
#define GET_QUEST_ICON_VROM(itemId) \
|
||||
((uintptr_t)_icon_item_24_staticSegmentRomStart + (((itemId)-ITEM_MEDALLION_FOREST) * QUEST_ICON_SIZE))
|
||||
|
||||
/**
|
||||
* Button HUD Positions (Upper Left)
|
||||
*/
|
||||
|
|
|
@ -1,14 +1,6 @@
|
|||
#ifndef Z64ITEM_H
|
||||
#define Z64ITEM_H
|
||||
|
||||
#define ICON_ITEM_TEX_WIDTH 32
|
||||
#define ICON_ITEM_TEX_HEIGHT 32
|
||||
#define ICON_ITEM_TEX_SIZE ((ICON_ITEM_TEX_WIDTH * ICON_ITEM_TEX_HEIGHT) * 4) // 32x32 RGBA32 texture
|
||||
|
||||
#define ICON_ITEM_24_TEX_WIDTH 24
|
||||
#define ICON_ITEM_24_TEX_HEIGHT 24
|
||||
#define ICON_ITEM_24_TEX_SIZE ((ICON_ITEM_24_TEX_WIDTH * ICON_ITEM_24_TEX_HEIGHT) * 4) // 24x24 RGBA32 texture
|
||||
|
||||
// Note that z_kaleido_scope_PAL.c assumes that the dimensions and texture format here also matches the dimensions and
|
||||
// texture format for MAP_NAME_TEX1_*
|
||||
#define ITEM_NAME_TEX_WIDTH 128
|
||||
|
|
|
@ -100,9 +100,15 @@ typedef VecSphGeo VecGeo;
|
|||
|
||||
#define IS_ZERO(f) (fabsf(f) < 0.008f)
|
||||
|
||||
// Casting a float to an integer, when the float value is larger than what the integer type can hold,
|
||||
// leads to undefined behavior. For example (f32)0x8000 doesn't fit in a s16, so it cannot be cast to s16.
|
||||
// This isn't an issue with IDO, but is one with for example GCC.
|
||||
// A partial workaround is to cast to s32 then s16, hoping all binang values used will fit a s32.
|
||||
#define TRUNCF_BINANG(f) (s16)(s32)(f)
|
||||
|
||||
// Angle conversion macros
|
||||
#define DEG_TO_BINANG(degrees) (s16)((degrees) * (0x8000 / 180.0f))
|
||||
#define RAD_TO_BINANG(radians) (s16)((radians) * (0x8000 / M_PI))
|
||||
#define DEG_TO_BINANG(degrees) (s16)TRUNCF_BINANG((degrees) * (0x8000 / 180.0f))
|
||||
#define RAD_TO_BINANG(radians) (s16)TRUNCF_BINANG((radians) * (0x8000 / M_PI))
|
||||
#define RAD_TO_DEG(radians) ((radians) * (180.0f / M_PI))
|
||||
#define DEG_TO_RAD(degrees) ((degrees) * (M_PI / 180.0f))
|
||||
#define BINANG_TO_DEG(binang) ((f32)(binang) * (180.0f / 0x8000))
|
||||
|
|
|
@ -352,6 +352,113 @@ typedef enum {
|
|||
#define LIMB_BUF_COUNT(limbCount) ((ALIGN16((limbCount) * sizeof(Vec3s)) + sizeof(Vec3s) - 1) / sizeof(Vec3s))
|
||||
#define PLAYER_LIMB_BUF_COUNT LIMB_BUF_COUNT(PLAYER_LIMB_MAX)
|
||||
|
||||
typedef enum {
|
||||
/* 0x00 */ PLAYER_CSMODE_NONE,
|
||||
/* 0x01 */ PLAYER_CSMODE_1,
|
||||
/* 0x02 */ PLAYER_CSMODE_2,
|
||||
/* 0x03 */ PLAYER_CSMODE_3,
|
||||
/* 0x04 */ PLAYER_CSMODE_4,
|
||||
/* 0x05 */ PLAYER_CSMODE_5,
|
||||
/* 0x06 */ PLAYER_CSMODE_6,
|
||||
/* 0x07 */ PLAYER_CSMODE_7,
|
||||
/* 0x08 */ PLAYER_CSMODE_8,
|
||||
/* 0x09 */ PLAYER_CSMODE_9,
|
||||
/* 0x0A */ PLAYER_CSMODE_10,
|
||||
/* 0x0B */ PLAYER_CSMODE_11,
|
||||
/* 0x0C */ PLAYER_CSMODE_12,
|
||||
/* 0x0D */ PLAYER_CSMODE_13,
|
||||
/* 0x0E */ PLAYER_CSMODE_14,
|
||||
/* 0x0F */ PLAYER_CSMODE_15,
|
||||
/* 0x10 */ PLAYER_CSMODE_16,
|
||||
/* 0x11 */ PLAYER_CSMODE_17,
|
||||
/* 0x12 */ PLAYER_CSMODE_18,
|
||||
/* 0x13 */ PLAYER_CSMODE_19,
|
||||
/* 0x14 */ PLAYER_CSMODE_20,
|
||||
/* 0x15 */ PLAYER_CSMODE_21,
|
||||
/* 0x16 */ PLAYER_CSMODE_22,
|
||||
/* 0x17 */ PLAYER_CSMODE_23,
|
||||
/* 0x18 */ PLAYER_CSMODE_24,
|
||||
/* 0x19 */ PLAYER_CSMODE_25,
|
||||
/* 0x1A */ PLAYER_CSMODE_26,
|
||||
/* 0x1B */ PLAYER_CSMODE_27,
|
||||
/* 0x1C */ PLAYER_CSMODE_28,
|
||||
/* 0x1D */ PLAYER_CSMODE_29,
|
||||
/* 0x1E */ PLAYER_CSMODE_30,
|
||||
/* 0x1F */ PLAYER_CSMODE_31,
|
||||
/* 0x20 */ PLAYER_CSMODE_32,
|
||||
/* 0x21 */ PLAYER_CSMODE_33,
|
||||
/* 0x22 */ PLAYER_CSMODE_34,
|
||||
/* 0x23 */ PLAYER_CSMODE_35,
|
||||
/* 0x24 */ PLAYER_CSMODE_36,
|
||||
/* 0x25 */ PLAYER_CSMODE_37,
|
||||
/* 0x26 */ PLAYER_CSMODE_38,
|
||||
/* 0x27 */ PLAYER_CSMODE_39,
|
||||
/* 0x28 */ PLAYER_CSMODE_40,
|
||||
/* 0x29 */ PLAYER_CSMODE_41,
|
||||
/* 0x2A */ PLAYER_CSMODE_42,
|
||||
/* 0x2B */ PLAYER_CSMODE_43,
|
||||
/* 0x2C */ PLAYER_CSMODE_44,
|
||||
/* 0x2D */ PLAYER_CSMODE_45,
|
||||
/* 0x2E */ PLAYER_CSMODE_46,
|
||||
/* 0x2F */ PLAYER_CSMODE_47,
|
||||
/* 0x30 */ PLAYER_CSMODE_48,
|
||||
/* 0x31 */ PLAYER_CSMODE_49,
|
||||
/* 0x32 */ PLAYER_CSMODE_50,
|
||||
/* 0x33 */ PLAYER_CSMODE_51,
|
||||
/* 0x34 */ PLAYER_CSMODE_52,
|
||||
/* 0x35 */ PLAYER_CSMODE_53,
|
||||
/* 0x36 */ PLAYER_CSMODE_54,
|
||||
/* 0x37 */ PLAYER_CSMODE_55,
|
||||
/* 0x38 */ PLAYER_CSMODE_56,
|
||||
/* 0x39 */ PLAYER_CSMODE_57,
|
||||
/* 0x3A */ PLAYER_CSMODE_58,
|
||||
/* 0x3B */ PLAYER_CSMODE_59,
|
||||
/* 0x3C */ PLAYER_CSMODE_60,
|
||||
/* 0x3D */ PLAYER_CSMODE_61,
|
||||
/* 0x3E */ PLAYER_CSMODE_62,
|
||||
/* 0x3F */ PLAYER_CSMODE_63,
|
||||
/* 0x40 */ PLAYER_CSMODE_64,
|
||||
/* 0x41 */ PLAYER_CSMODE_65,
|
||||
/* 0x42 */ PLAYER_CSMODE_66,
|
||||
/* 0x43 */ PLAYER_CSMODE_67,
|
||||
/* 0x44 */ PLAYER_CSMODE_68,
|
||||
/* 0x45 */ PLAYER_CSMODE_69,
|
||||
/* 0x46 */ PLAYER_CSMODE_70,
|
||||
/* 0x47 */ PLAYER_CSMODE_71,
|
||||
/* 0x48 */ PLAYER_CSMODE_72,
|
||||
/* 0x49 */ PLAYER_CSMODE_73,
|
||||
/* 0x4A */ PLAYER_CSMODE_74,
|
||||
/* 0x4B */ PLAYER_CSMODE_75,
|
||||
/* 0x4C */ PLAYER_CSMODE_76,
|
||||
/* 0x4D */ PLAYER_CSMODE_77,
|
||||
/* 0x4E */ PLAYER_CSMODE_78,
|
||||
/* 0x4F */ PLAYER_CSMODE_79,
|
||||
/* 0x50 */ PLAYER_CSMODE_80,
|
||||
/* 0x51 */ PLAYER_CSMODE_81,
|
||||
/* 0x52 */ PLAYER_CSMODE_82,
|
||||
/* 0x53 */ PLAYER_CSMODE_83,
|
||||
/* 0x54 */ PLAYER_CSMODE_84,
|
||||
/* 0x55 */ PLAYER_CSMODE_85,
|
||||
/* 0x56 */ PLAYER_CSMODE_86,
|
||||
/* 0x57 */ PLAYER_CSMODE_87,
|
||||
/* 0x58 */ PLAYER_CSMODE_88,
|
||||
/* 0x59 */ PLAYER_CSMODE_89,
|
||||
/* 0x5A */ PLAYER_CSMODE_90,
|
||||
/* 0x5B */ PLAYER_CSMODE_91,
|
||||
/* 0x5C */ PLAYER_CSMODE_92,
|
||||
/* 0x5D */ PLAYER_CSMODE_93,
|
||||
/* 0x5E */ PLAYER_CSMODE_94,
|
||||
/* 0x5F */ PLAYER_CSMODE_95,
|
||||
/* 0x60 */ PLAYER_CSMODE_96,
|
||||
/* 0x61 */ PLAYER_CSMODE_97,
|
||||
/* 0x62 */ PLAYER_CSMODE_98,
|
||||
/* 0x63 */ PLAYER_CSMODE_99,
|
||||
/* 0x64 */ PLAYER_CSMODE_100,
|
||||
/* 0x65 */ PLAYER_CSMODE_101,
|
||||
/* 0x66 */ PLAYER_CSMODE_102,
|
||||
/* 0x67 */ PLAYER_CSMODE_MAX
|
||||
} PlayerCutsceneMode;
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ f32 unk_00;
|
||||
/* 0x04 */ f32 unk_04;
|
||||
|
@ -556,7 +663,7 @@ typedef struct Player {
|
|||
/* 0x0698 */ f32 targetActorDistance;
|
||||
/* 0x069C */ char unk_69C[0x004];
|
||||
/* 0x06A0 */ f32 unk_6A0;
|
||||
/* 0x06A4 */ f32 unk_6A4;
|
||||
/* 0x06A4 */ f32 closestSecretDistSq;
|
||||
/* 0x06A8 */ Actor* unk_6A8;
|
||||
/* 0x06AC */ s8 unk_6AC;
|
||||
/* 0x06AD */ u8 unk_6AD;
|
||||
|
|
2
spec
2
spec
|
@ -36,7 +36,7 @@ beginseg
|
|||
include "build/src/libultra/os/initialize.o"
|
||||
include "build/src/libultra/libc/ll.o"
|
||||
include "build/src/libultra/os/exceptasm.o"
|
||||
include "build/src/libultra/os/dequeuethread.o"
|
||||
include "build/src/libultra/os/thread.o"
|
||||
include "build/src/libultra/os/destroythread.o"
|
||||
include "build/src/libultra/libc/bzero.o"
|
||||
include "build/src/libultra/os/parameters.o"
|
||||
|
|
|
@ -78,136 +78,141 @@ u32 gGsFlagsMasks[] = { 0x000000FF, 0x0000FF00, 0x00FF0000, 0xFF000000 };
|
|||
u32 gGsFlagsShifts[] = { 0, 8, 16, 24 };
|
||||
|
||||
void* gItemIcons[] = {
|
||||
gDekuStickIconTex,
|
||||
gDekuNutIconTex,
|
||||
gBombIconTex,
|
||||
gFairyBowIconTex,
|
||||
gFireArrowIconTex,
|
||||
gDinsFireIconTex,
|
||||
gFairySlingshotIconTex,
|
||||
gFairyOcarinaIconTex,
|
||||
gOcarinaofTimeIconTex,
|
||||
gBombchuIconTex,
|
||||
gHookshotIconTex,
|
||||
gLongshotIconTex,
|
||||
gIceArrowIconTex,
|
||||
gFaroresWindIconTex,
|
||||
gBoomerangIconTex,
|
||||
gLensofTruthIconTex,
|
||||
gMagicBeansIconTex,
|
||||
gMegatonHammerIconTex,
|
||||
gLightArrowIconTex,
|
||||
gNayrusLoveIconTex,
|
||||
gEmptyBottleIconTex,
|
||||
gRedPotionIconTex,
|
||||
gGreenPotionIconTex,
|
||||
gBluePotionIconTex,
|
||||
gBottledFairyIconTex,
|
||||
gFishIconTex,
|
||||
gMilkFullIconTex,
|
||||
gRutosLetterIconTex,
|
||||
gBlueFireIconTex,
|
||||
gBugIconTex,
|
||||
gBigPoeIconTex,
|
||||
gMilkhalfIconTex,
|
||||
gPoeIconTex,
|
||||
gWeirdEggIconTex,
|
||||
gCuccoIconTex,
|
||||
gZeldasLetterIconTex,
|
||||
gKeatonMaskIconTex,
|
||||
gSkullMaskIconTex,
|
||||
gSpookyMaskIconTex,
|
||||
gBunnyHoodIconTex,
|
||||
gGoronMaskIconTex,
|
||||
gZoraMaskIconTex,
|
||||
gGerudoMaskIconTex,
|
||||
gMaskofTruthIconTex,
|
||||
gSoldOutIconTex,
|
||||
gPocketEggIconTex,
|
||||
gPocketCuccoIconTex,
|
||||
gCojiroIconTex,
|
||||
gOddMushroomIconTex,
|
||||
gOddPotionIconTex,
|
||||
gPoachersSawIconTex,
|
||||
gBrokenBiggoronSwordIconTex,
|
||||
gPrescriptionIconTex,
|
||||
gEyeBallFrogIconTex,
|
||||
gEyeDropsIconTex,
|
||||
gClaimCheckIconTex,
|
||||
gFairyBowFireIconTex,
|
||||
gFairyBowIceIconTex,
|
||||
gFairyBowLightIconTex,
|
||||
gKokiriSwordIconTex,
|
||||
gMasterSwordIconTex,
|
||||
gBiggoronSwordIconTex,
|
||||
gDekuShieldIconTex,
|
||||
gHylianShieldIconTex,
|
||||
gMirrorShieldIconTex,
|
||||
gKokiriTunicIconTex,
|
||||
gGoronTunicIconTex,
|
||||
gZoraTunicIconTex,
|
||||
gKokiriBootsIconTex,
|
||||
gIronBootsIconTex,
|
||||
gHoverBootsIconTex,
|
||||
gBulletBag30IconTex,
|
||||
gBulletBag40IconTex,
|
||||
gBulletBag50IconTex,
|
||||
gQuiver30IconTex,
|
||||
gQuiver40IconTex,
|
||||
gQuiver50IconTex,
|
||||
gBombBag20IconTex,
|
||||
gBombBag30IconTex,
|
||||
gBombBag40IconTex,
|
||||
gGoronsBraceletIconTex,
|
||||
gSilverGauntletsIconTex,
|
||||
gGoldenGauntletsIconTex,
|
||||
gSilverScaleIconTex,
|
||||
gGoldenScaleIconTex,
|
||||
gBrokenGiantsKnifeIconTex,
|
||||
gAdultsWalletIconTex,
|
||||
gGiantsWalletIconTex,
|
||||
gDekuSeedsIconTex,
|
||||
gFishingPoleIconTex,
|
||||
gSongNoteTex,
|
||||
gSongNoteTex,
|
||||
gSongNoteTex,
|
||||
gSongNoteTex,
|
||||
gSongNoteTex,
|
||||
gSongNoteTex,
|
||||
gSongNoteTex,
|
||||
gSongNoteTex,
|
||||
gSongNoteTex,
|
||||
gSongNoteTex,
|
||||
gSongNoteTex,
|
||||
gSongNoteTex,
|
||||
gForestMedallionIconTex,
|
||||
gFireMedallionIconTex,
|
||||
gWaterMedallionIconTex,
|
||||
gSpiritMedallionIconTex,
|
||||
gShadowMedallionIconTex,
|
||||
gLightMedallionIconTex,
|
||||
gKokiriEmeraldIconTex,
|
||||
gGoronRubyIconTex,
|
||||
gZoraSapphireIconTex,
|
||||
gStoneOfAgonyIconTex,
|
||||
gGerudosCardIconTex,
|
||||
gGoldSkulltulaIconTex,
|
||||
gHeartContainerIconTex,
|
||||
gUnusedPieceOfHeartIconTex,
|
||||
gBossKeyIconTex,
|
||||
gDungeonMapIconTex,
|
||||
gCompassIconTex,
|
||||
gBossKeyIconTex,
|
||||
gSmallMagicJarIconTex,
|
||||
gBigMagicJarIconTex,
|
||||
gHeartPieceIcon1Tex,
|
||||
gHeartPieceIcon2Tex,
|
||||
gHeartPieceIcon3Tex,
|
||||
gOcarinaCUpTex,
|
||||
gOcarinaCDownTex,
|
||||
gOcarinaCLeftTex,
|
||||
gOcarinaCRightTex,
|
||||
gOcarinaATex,
|
||||
// icon_item_static 32x32 rgba32
|
||||
gItemIconDekuStickTex, // ITEM_DEKU_STICK
|
||||
gItemIconDekuNutTex, // ITEM_DEKU_NUT
|
||||
gItemIconBombTex, // ITEM_BOMB
|
||||
gItemIconBowTex, // ITEM_BOW
|
||||
gItemIconArrowFireTex, // ITEM_ARROW_FIRE
|
||||
gItemIconDinsFireTex, // ITEM_DINS_FIRE
|
||||
gItemIconSlingshotTex, // ITEM_SLINGSHOT
|
||||
gItemIconOcarinaFairyTex, // ITEM_OCARINA_FAIRY
|
||||
gItemIconOcarinaOfTimeTex, // ITEM_OCARINA_OF_TIME
|
||||
gItemIconBombchuTex, // ITEM_BOMBCHU
|
||||
gItemIconHookshotTex, // ITEM_HOOKSHOT
|
||||
gItemIconLongshotTex, // ITEM_LONGSHOT
|
||||
gItemIconArrowIceTex, // ITEM_ARROW_ICE
|
||||
gItemIconFaroresWindTex, // ITEM_FARORES_WIND
|
||||
gItemIconBoomerangTex, // ITEM_BOOMERANG
|
||||
gItemIconLensOfTruthTex, // ITEM_LENS_OF_TRUTH
|
||||
gItemIconMagicBeanTex, // ITEM_MAGIC_BEAN
|
||||
gItemIconHammerTex, // ITEM_HAMMER
|
||||
gItemIconArrowLightTex, // ITEM_ARROW_LIGHT
|
||||
gItemIconNayrusLoveTex, // ITEM_NAYRUS_LOVE
|
||||
gItemIconBottleEmptyTex, // ITEM_BOTTLE_EMPTY
|
||||
gItemIconBottlePotionRedTex, // ITEM_BOTTLE_POTION_RED
|
||||
gItemIconBottlePotionGreenTex, // ITEM_BOTTLE_POTION_GREEN
|
||||
gItemIconBottlePotionBlueTex, // ITEM_BOTTLE_POTION_BLUE
|
||||
gItemIconBottleFairyTex, // ITEM_BOTTLE_FAIRY
|
||||
gItemIconBottleFishTex, // ITEM_BOTTLE_FISH
|
||||
gItemIconBottleMilkFullTex, // ITEM_BOTTLE_MILK_FULL
|
||||
gItemIconBottleRutosLetterTex, // ITEM_BOTTLE_RUTOS_LETTER
|
||||
gItemIconBottleBlueFireTex, // ITEM_BOTTLE_BLUE_FIRE
|
||||
gItemIconBottleBugTex, // ITEM_BOTTLE_BUG
|
||||
gItemIconBottleBigPoeTex, // ITEM_BOTTLE_BIG_POE
|
||||
gItemIconBottleMilkHalfTex, // ITEM_BOTTLE_MILK_HALF
|
||||
gItemIconBottlePoeTex, // ITEM_BOTTLE_POE
|
||||
gItemIconWeirdEggTex, // ITEM_WEIRD_EGG
|
||||
gItemIconChickenTex, // ITEM_CHICKEN
|
||||
gItemIconZeldasLetterTex, // ITEM_ZELDAS_LETTER
|
||||
gItemIconMaskKeatonTex, // ITEM_MASK_KEATON
|
||||
gItemIconMaskSkullTex, // ITEM_MASK_SKULL
|
||||
gItemIconMaskSpookyTex, // ITEM_MASK_SPOOKY
|
||||
gItemIconMaskBunnyHoodTex, // ITEM_MASK_BUNNY_HOOD
|
||||
gItemIconMaskGoronTex, // ITEM_MASK_GORON
|
||||
gItemIconMaskZoraTex, // ITEM_MASK_ZORA
|
||||
gItemIconMaskGerudoTex, // ITEM_MASK_GERUDO
|
||||
gItemIconMaskTruthTex, // ITEM_MASK_TRUTH
|
||||
gItemIconSoldOutTex, // ITEM_SOLD_OUT
|
||||
gItemIconPocketEggTex, // ITEM_POCKET_EGG
|
||||
gItemIconPocketCuccoTex, // ITEM_POCKET_CUCCO
|
||||
gItemIconCojiroTex, // ITEM_COJIRO
|
||||
gItemIconOddMushroomTex, // ITEM_ODD_MUSHROOM
|
||||
gItemIconOddPotionTex, // ITEM_ODD_POTION
|
||||
gItemIconPoachersSawTex, // ITEM_POACHERS_SAW
|
||||
gItemIconBrokenGoronsSwordTex, // ITEM_BROKEN_GORONS_SWORD
|
||||
gItemIconPrescriptionTex, // ITEM_PRESCRIPTION
|
||||
gItemIconEyeballFrogTex, // ITEM_EYEBALL_FROG
|
||||
gItemIconEyeDropsTex, // ITEM_EYE_DROPS
|
||||
gItemIconClaimCheckTex, // ITEM_CLAIM_CHECK
|
||||
gItemIconBowFireTex, // ITEM_BOW_FIRE
|
||||
gItemIconBowIceTex, // ITEM_BOW_ICE
|
||||
gItemIconBowLightTex, // ITEM_BOW_LIGHT
|
||||
gItemIconSwordKokiriTex, // ITEM_SWORD_KOKIRI
|
||||
gItemIconSwordMasterTex, // ITEM_SWORD_MASTER
|
||||
gItemIconSwordBiggoronTex, // ITEM_SWORD_BIGGORON
|
||||
gItemIconShieldDekuTex, // ITEM_SHIELD_DEKU
|
||||
gItemIconShieldHylianTex, // ITEM_SHIELD_HYLIAN
|
||||
gItemIconShieldMirrorTex, // ITEM_SHIELD_MIRROR
|
||||
gItemIconTunicKokiriTex, // ITEM_TUNIC_KOKIRI
|
||||
gItemIconTunicGoronTex, // ITEM_TUNIC_GORON
|
||||
gItemIconTunicZoraTex, // ITEM_TUNIC_ZORA
|
||||
gItemIconBootsKokiriTex, // ITEM_BOOTS_KOKIRI
|
||||
gItemIconBootsIronTex, // ITEM_BOOTS_IRON
|
||||
gItemIconBootsHoverTex, // ITEM_BOOTS_HOVER
|
||||
gItemIconBulletBag30Tex, // ITEM_BULLET_BAG_30
|
||||
gItemIconBulletBag40Tex, // ITEM_BULLET_BAG_40
|
||||
gItemIconBulletBag50Tex, // ITEM_BULLET_BAG_50
|
||||
gItemIconQuiver30Tex, // ITEM_QUIVER_30
|
||||
gItemIconQuiver40Tex, // ITEM_QUIVER_40
|
||||
gItemIconQuiver50Tex, // ITEM_QUIVER_50
|
||||
gItemIconBombBag20Tex, // ITEM_BOMB_BAG_20
|
||||
gItemIconBombBag30Tex, // ITEM_BOMB_BAG_30
|
||||
gItemIconBombBag40Tex, // ITEM_BOMB_BAG_40
|
||||
gItemIconGoronsBraceletTex, // ITEM_STRENGTH_GORONS_BRACELET
|
||||
gItemIconSilverGauntletsTex, // ITEM_STRENGTH_SILVER_GAUNTLETS
|
||||
gItemIconGoldenGauntletsTex, // ITEM_STRENGTH_GOLD_GAUNTLETS
|
||||
gItemIconScaleSilverTex, // ITEM_SCALE_SILVER
|
||||
gItemIconScaleGoldenTex, // ITEM_SCALE_GOLDEN
|
||||
gItemIconBrokenGiantsKnifeTex, // ITEM_GIANTS_KNIFE
|
||||
gItemIconAdultsWalletTex, // ITEM_ADULTS_WALLET
|
||||
gItemIconGiantsWalletTex, // ITEM_GIANTS_WALLET
|
||||
gItemIconDekuSeedsTex, // ITEM_DEKU_SEEDS
|
||||
gItemIconFishingPoleTex, // ITEM_FISHING_POLE
|
||||
// icon_item_static 16x24 ia8
|
||||
gSongNoteTex, // ITEM_SONG_MINUET
|
||||
gSongNoteTex, // ITEM_SONG_BOLERO
|
||||
gSongNoteTex, // ITEM_SONG_SERENADE
|
||||
gSongNoteTex, // ITEM_SONG_REQUIEM
|
||||
gSongNoteTex, // ITEM_SONG_NOCTURNE
|
||||
gSongNoteTex, // ITEM_SONG_PRELUDE
|
||||
gSongNoteTex, // ITEM_SONG_LULLABY
|
||||
gSongNoteTex, // ITEM_SONG_EPONA
|
||||
gSongNoteTex, // ITEM_SONG_SARIA
|
||||
gSongNoteTex, // ITEM_SONG_SUN
|
||||
gSongNoteTex, // ITEM_SONG_TIME
|
||||
gSongNoteTex, // ITEM_SONG_STORMS
|
||||
// icon_item_24static 24x24 rgba32
|
||||
gQuestIconMedallionForestTex, // ITEM_MEDALLION_FOREST
|
||||
gQuestIconMedallionFireTex, // ITEM_MEDALLION_FIRE
|
||||
gQuestIconMedallionWaterTex, // ITEM_MEDALLION_WATER
|
||||
gQuestIconMedallionSpiritTex, // ITEM_MEDALLION_SPIRIT
|
||||
gQuestIconMedallionShadowTex, // ITEM_MEDALLION_SHADOW
|
||||
gQuestIconMedallionLightTex, // ITEM_MEDALLION_LIGHT
|
||||
gQuestIconKokiriEmeraldTex, // ITEM_KOKIRI_EMERALD
|
||||
gQuestIconGoronRubyTex, // ITEM_GORON_RUBY
|
||||
gQuestIconZoraSapphireTex, // ITEM_ZORA_SAPPHIRE
|
||||
gQuestIconStoneOfAgonyTex, // ITEM_STONE_OF_AGONY
|
||||
gQuestIconGerudosCardTex, // ITEM_GERUDOS_CARD
|
||||
gQuestIconGoldSkulltulaTex, // ITEM_SKULL_TOKEN
|
||||
gQuestIconHeartContainerTex, // ITEM_HEART_CONTAINER
|
||||
gQuestIconHeartPieceTex, // ITEM_HEART_PIECE
|
||||
gQuestIconDungeonBossKeyTex, // ITEM_DUNGEON_BOSS_KEY
|
||||
gQuestIconDungeonMapTex, // ITEM_DUNGEON_COMPASS (swapped with map (inconsequential))
|
||||
gQuestIconDungeonCompassTex, // ITEM_DUNGEON_MAP (swapped with compass (inconsequential))
|
||||
gQuestIconDungeonBossKeyTex, // ITEM_SMALL_KEY (but texture is boss key (inconsequential))
|
||||
gQuestIconMagicJarSmallTex, // ITEM_MAGIC_JAR_SMALL
|
||||
gQuestIconMagicJarBigTex, // ITEM_MAGIC_JAR_BIG
|
||||
// icon_item_static 48x48 ia8
|
||||
gHeartPieceIcon1Tex, // ITEM_HEART_PIECE_2
|
||||
gHeartPieceIcon2Tex, // ITEM_INVALID_1
|
||||
gHeartPieceIcon3Tex, // ITEM_INVALID_2
|
||||
// parameter_static 16x16 ia8
|
||||
gOcarinaBtnIconCUpTex, // ITEM_INVALID_3
|
||||
gOcarinaBtnIconCDownTex, // ITEM_INVALID_4
|
||||
gOcarinaBtnIconCLeftTex, // ITEM_INVALID_5
|
||||
gOcarinaBtnIconCRightTex, // ITEM_INVALID_6
|
||||
gOcarinaBtnIconATex, // ITEM_INVALID_7
|
||||
};
|
||||
|
||||
// Used to map item IDs to inventory slots
|
||||
|
|
|
@ -1025,7 +1025,7 @@ void Actor_MountHorse(PlayState* play, Player* player, Actor* horse) {
|
|||
}
|
||||
|
||||
s32 func_8002DEEC(Player* player) {
|
||||
return (player->stateFlags1 & (PLAYER_STATE1_7 | PLAYER_STATE1_29)) || (player->csMode != 0);
|
||||
return (player->stateFlags1 & (PLAYER_STATE1_7 | PLAYER_STATE1_29)) || (player->csMode != PLAYER_CSMODE_NONE);
|
||||
}
|
||||
|
||||
void func_8002DF18(PlayState* play, Player* player) {
|
||||
|
@ -1570,7 +1570,30 @@ u32 Actor_HasParent(Actor* actor, PlayState* play) {
|
|||
}
|
||||
}
|
||||
|
||||
s32 func_8002F434(Actor* actor, PlayState* play, s32 getItemId, f32 xzRange, f32 yRange) {
|
||||
/**
|
||||
* This function covers various interactions with the player actor, using Get Item IDs (see `GetItemID` enum).
|
||||
* It is typically used to give items to the player, but also has other purposes.
|
||||
*
|
||||
* This function carries a get item request to the player actor if context allows it (e.g. the player is in range and
|
||||
* not busy with certain things). The player actor performs the requested action itself.
|
||||
*
|
||||
* The following description of what the `getItemId` values can do is provided here for completeness, but these
|
||||
* behaviors are entirely out of the scope of this function. All behavior is defined by the player actor.
|
||||
*
|
||||
* - Positive values (`GI_NONE < getItemId < GI_MAX`):
|
||||
* Give an item to the player. The player may not get it immediately (for example if diving), but is expected to
|
||||
* in the near future.
|
||||
* - Negative values (`-GI_MAX < getItemId < GI_NONE`):
|
||||
* Used by treasure chests to indicate the chest can be opened (by pressing A).
|
||||
* The item gotten corresponds to the positive Get Item ID `abs(getItemId)`.
|
||||
* - `GI_NONE`:
|
||||
* Allows the player to pick up the actor (by pressing A), to carry it around.
|
||||
* - `GI_MAX`:
|
||||
* Allows the player to catch specific actors in a bottle.
|
||||
*
|
||||
* @return true If the player actor is capable of accepting the offer.
|
||||
*/
|
||||
s32 Actor_OfferGetItem(Actor* actor, PlayState* play, s32 getItemId, f32 xzRange, f32 yRange) {
|
||||
Player* player = GET_PLAYER(play);
|
||||
|
||||
if (!(player->stateFlags1 & (PLAYER_STATE1_7 | PLAYER_STATE1_12 | PLAYER_STATE1_13 | PLAYER_STATE1_14 |
|
||||
|
@ -1596,12 +1619,12 @@ s32 func_8002F434(Actor* actor, PlayState* play, s32 getItemId, f32 xzRange, f32
|
|||
return false;
|
||||
}
|
||||
|
||||
void func_8002F554(Actor* actor, PlayState* play, s32 getItemId) {
|
||||
func_8002F434(actor, play, getItemId, 50.0f, 10.0f);
|
||||
s32 Actor_OfferGetItemNearby(Actor* actor, PlayState* play, s32 getItemId) {
|
||||
return Actor_OfferGetItem(actor, play, getItemId, 50.0f, 10.0f);
|
||||
}
|
||||
|
||||
void func_8002F580(Actor* actor, PlayState* play) {
|
||||
func_8002F554(actor, play, GI_NONE);
|
||||
s32 Actor_OfferCarry(Actor* actor, PlayState* play) {
|
||||
return Actor_OfferGetItemNearby(actor, play, GI_NONE);
|
||||
}
|
||||
|
||||
u32 Actor_HasNoParent(Actor* actor, PlayState* play) {
|
||||
|
@ -1627,11 +1650,11 @@ void func_8002F5C4(Actor* actorA, Actor* actorB, PlayState* play) {
|
|||
actorA->parent = NULL;
|
||||
}
|
||||
|
||||
void func_8002F5F0(Actor* actor, PlayState* play) {
|
||||
void Actor_SetClosestSecretDistance(Actor* actor, PlayState* play) {
|
||||
Player* player = GET_PLAYER(play);
|
||||
|
||||
if (actor->xyzDistToPlayerSq < player->unk_6A4) {
|
||||
player->unk_6A4 = actor->xyzDistToPlayerSq;
|
||||
if (actor->xyzDistToPlayerSq < player->closestSecretDistSq) {
|
||||
player->closestSecretDistSq = actor->xyzDistToPlayerSq;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2218,25 +2241,25 @@ void Actor_Draw(PlayState* play, Actor* actor) {
|
|||
if (actor->colorFilterTimer != 0) {
|
||||
Color_RGBA8 color = { 0, 0, 0, 255 };
|
||||
|
||||
if (actor->colorFilterParams & 0x8000) {
|
||||
color.r = color.g = color.b = ((actor->colorFilterParams & 0x1F00) >> 5) | 7;
|
||||
} else if (actor->colorFilterParams & 0x4000) {
|
||||
color.r = ((actor->colorFilterParams & 0x1F00) >> 5) | 7;
|
||||
if (actor->colorFilterParams & COLORFILTER_COLORFLAG_GRAY) {
|
||||
color.r = color.g = color.b = COLORFILTER_GET_COLORINTENSITY(actor->colorFilterParams) | 7;
|
||||
} else if (actor->colorFilterParams & COLORFILTER_COLORFLAG_RED) {
|
||||
color.r = COLORFILTER_GET_COLORINTENSITY(actor->colorFilterParams) | 7;
|
||||
} else {
|
||||
color.b = ((actor->colorFilterParams & 0x1F00) >> 5) | 7;
|
||||
color.b = COLORFILTER_GET_COLORINTENSITY(actor->colorFilterParams) | 7;
|
||||
}
|
||||
|
||||
if (actor->colorFilterParams & 0x2000) {
|
||||
func_80026860(play, &color, actor->colorFilterTimer, actor->colorFilterParams & 0xFF);
|
||||
if (actor->colorFilterParams & COLORFILTER_BUFFLAG_XLU) {
|
||||
func_80026860(play, &color, actor->colorFilterTimer, COLORFILTER_GET_DURATION(actor->colorFilterParams));
|
||||
} else {
|
||||
func_80026400(play, &color, actor->colorFilterTimer, actor->colorFilterParams & 0xFF);
|
||||
func_80026400(play, &color, actor->colorFilterTimer, COLORFILTER_GET_DURATION(actor->colorFilterParams));
|
||||
}
|
||||
}
|
||||
|
||||
actor->draw(actor, play);
|
||||
|
||||
if (actor->colorFilterTimer != 0) {
|
||||
if (actor->colorFilterParams & 0x2000) {
|
||||
if (actor->colorFilterParams & COLORFILTER_BUFFLAG_XLU) {
|
||||
func_80026A6C(play);
|
||||
} else {
|
||||
func_80026608(play);
|
||||
|
@ -2500,7 +2523,10 @@ void func_800315AC(PlayState* play, ActorContext* actorCtx) {
|
|||
CLOSE_DISPS(play->state.gfxCtx, "../z_actor.c", 6563);
|
||||
}
|
||||
|
||||
void func_80031A28(PlayState* play, ActorContext* actorCtx) {
|
||||
/**
|
||||
* Kill every actor which depends on an object that is not loaded.
|
||||
*/
|
||||
void Actor_KillAllWithMissingObject(PlayState* play, ActorContext* actorCtx) {
|
||||
Actor* actor;
|
||||
s32 i;
|
||||
|
||||
|
@ -2530,6 +2556,9 @@ void Actor_FreezeAllEnemies(PlayState* play, ActorContext* actorCtx, s32 duratio
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Kill actors on room change and update flags accordingly
|
||||
*/
|
||||
void func_80031B14(PlayState* play, ActorContext* actorCtx) {
|
||||
Actor* actor;
|
||||
s32 i;
|
||||
|
@ -3633,12 +3662,12 @@ void func_8003424C(PlayState* play, Vec3f* arg1) {
|
|||
CollisionCheck_SpawnShieldParticlesMetal(play, arg1);
|
||||
}
|
||||
|
||||
void Actor_SetColorFilter(Actor* actor, s16 colorFlag, s16 colorIntensityMax, s16 xluFlag, s16 duration) {
|
||||
if ((colorFlag == 0x8000) && !(colorIntensityMax & 0x8000)) {
|
||||
void Actor_SetColorFilter(Actor* actor, s16 colorFlag, s16 colorIntensityMax, s16 bufFlag, s16 duration) {
|
||||
if ((colorFlag == COLORFILTER_COLORFLAG_GRAY) && !(colorIntensityMax & COLORFILTER_INTENSITY_FLAG)) {
|
||||
Audio_PlayActorSfx2(actor, NA_SE_EN_LIGHT_ARROW_HIT);
|
||||
}
|
||||
|
||||
actor->colorFilterParams = colorFlag | xluFlag | ((colorIntensityMax & 0xF8) << 5) | duration;
|
||||
actor->colorFilterParams = colorFlag | bufFlag | ((colorIntensityMax & 0xF8) << 5) | duration;
|
||||
actor->colorFilterTimer = duration;
|
||||
}
|
||||
|
||||
|
@ -4061,7 +4090,7 @@ s32 func_80035124(Actor* actor, PlayState* play) {
|
|||
ret = 1;
|
||||
} else {
|
||||
actor->shape.rot.x = actor->shape.rot.z = 0;
|
||||
func_8002F580(actor, play);
|
||||
Actor_OfferCarry(actor, play);
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
|
|
|
@ -5260,7 +5260,7 @@ s32 Camera_Unique9(Camera* camera) {
|
|||
CAM_INTERFACE_FIELD(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY(rwData->curKeyFrame->unk_01), 0));
|
||||
} else if (camera->player->stateFlags1 & PLAYER_STATE1_27 &&
|
||||
player->currentBoots != PLAYER_BOOTS_IRON) {
|
||||
func_8002DF38(camera->play, camera->target, 8);
|
||||
func_8002DF38(camera->play, camera->target, PLAYER_CSMODE_8);
|
||||
osSyncPrintf("camera: demo: player demo set WAIT\n");
|
||||
} else {
|
||||
osSyncPrintf("camera: demo: player demo set %d\n", rwData->curKeyFrame->unk_01);
|
||||
|
@ -5464,9 +5464,9 @@ s32 Camera_Unique9(Camera* camera) {
|
|||
rwData->rollTarget = CAM_DEG_TO_BINANG(rwData->curKeyFrame->rollTargetInit);
|
||||
}
|
||||
|
||||
action = rwData->curKeyFrame->actionFlags & 0x1F;
|
||||
action = ONEPOINT_CS_GET_ACTION(rwData->curKeyFrame);
|
||||
switch (action) {
|
||||
case 15:
|
||||
case ONEPOINT_CS_ACTION_ID_15:
|
||||
// static copy to at/eye/fov/roll
|
||||
*at = rwData->atTarget;
|
||||
*eyeNext = rwData->eyeTarget;
|
||||
|
@ -5474,7 +5474,8 @@ s32 Camera_Unique9(Camera* camera) {
|
|||
camera->roll = rwData->rollTarget;
|
||||
camera->stateFlags |= CAM_STATE_10;
|
||||
break;
|
||||
case 21:
|
||||
|
||||
case ONEPOINT_CS_ACTION_ID_21:
|
||||
// same as 15, but with unk_38 ?
|
||||
if (rwData->unk_38 == 0) {
|
||||
rwData->unk_38 = 1;
|
||||
|
@ -5487,7 +5488,8 @@ s32 Camera_Unique9(Camera* camera) {
|
|||
camera->fov = rwData->fovTarget;
|
||||
camera->roll = rwData->rollTarget;
|
||||
break;
|
||||
case 16:
|
||||
|
||||
case ONEPOINT_CS_ACTION_ID_16:
|
||||
// same as 21, but don't unset CAM_STATE_3 on stateFlags
|
||||
if (rwData->unk_38 == 0) {
|
||||
rwData->unk_38 = 1;
|
||||
|
@ -5500,7 +5502,8 @@ s32 Camera_Unique9(Camera* camera) {
|
|||
camera->fov = rwData->fovTarget;
|
||||
camera->roll = rwData->rollTarget;
|
||||
break;
|
||||
case 1:
|
||||
|
||||
case ONEPOINT_CS_ACTION_ID_1:
|
||||
// linear interpolation of eye/at using the geographic coordinates
|
||||
OLib_Vec3fDiffToVecGeo(&eyeNextAtOffset, at, eyeNext);
|
||||
OLib_Vec3fDiffToVecGeo(&rwData->atEyeOffsetTarget, &rwData->atTarget, &rwData->eyeTarget);
|
||||
|
@ -5512,7 +5515,8 @@ s32 Camera_Unique9(Camera* camera) {
|
|||
eyeNextAtOffset.yaw + ((s16)(rwData->atEyeOffsetTarget.yaw - eyeNextAtOffset.yaw) * invKeyFrameTimer);
|
||||
Camera_AddVecGeoToVec3f(&eyeTarget, at, &scratchGeo);
|
||||
goto setEyeNext;
|
||||
case 2:
|
||||
|
||||
case ONEPOINT_CS_ACTION_ID_2:
|
||||
// linear interpolation of eye/at using the eyeTarget
|
||||
invKeyFrameTimer = 1.0f / rwData->keyFrameTimer;
|
||||
eyeTarget.x = F32_LERPIMP(camera->eyeNext.x, rwData->eyeTarget.x, invKeyFrameTimer);
|
||||
|
@ -5527,8 +5531,8 @@ s32 Camera_Unique9(Camera* camera) {
|
|||
camera->eyeNext.z =
|
||||
Camera_LERPFloorF(eyeTarget.z, camera->eyeNext.z, rwData->curKeyFrame->lerpStepScale, 1.0f);
|
||||
FALLTHROUGH;
|
||||
case 9:
|
||||
case 10:
|
||||
case ONEPOINT_CS_ACTION_ID_9:
|
||||
case ONEPOINT_CS_ACTION_ID_10:
|
||||
// linear interpolation of at/fov/roll
|
||||
invKeyFrameTimer = 1.0f / rwData->keyFrameTimer;
|
||||
atTarget.x = F32_LERPIMP(camera->at.x, rwData->atTarget.x, invKeyFrameTimer);
|
||||
|
@ -5542,7 +5546,8 @@ s32 Camera_Unique9(Camera* camera) {
|
|||
camera->roll = Camera_LERPFloorS(BINANG_LERPIMPINV(camera->roll, rwData->rollTarget, rwData->keyFrameTimer),
|
||||
camera->roll, rwData->curKeyFrame->lerpStepScale, 0xA);
|
||||
break;
|
||||
case 4:
|
||||
|
||||
case ONEPOINT_CS_ACTION_ID_4:
|
||||
// linear interpolation of eye/at/fov/roll using the step scale, and spherical coordinates
|
||||
OLib_Vec3fDiffToVecGeo(&eyeNextAtOffset, at, eyeNext);
|
||||
OLib_Vec3fDiffToVecGeo(&rwData->atEyeOffsetTarget, &rwData->atTarget, &rwData->eyeTarget);
|
||||
|
@ -5554,7 +5559,8 @@ s32 Camera_Unique9(Camera* camera) {
|
|||
rwData->curKeyFrame->lerpStepScale, 1);
|
||||
Camera_AddVecGeoToVec3f(eyeNext, at, &scratchGeo);
|
||||
goto setAtFOVRoll;
|
||||
case 3:
|
||||
|
||||
case ONEPOINT_CS_ACTION_ID_3:
|
||||
// linear interplation of eye/at/fov/roll using the step scale using eyeTarget
|
||||
camera->eyeNext.x =
|
||||
Camera_LERPCeilF(rwData->eyeTarget.x, camera->eyeNext.x, rwData->curKeyFrame->lerpStepScale, 1.0f);
|
||||
|
@ -5563,8 +5569,8 @@ s32 Camera_Unique9(Camera* camera) {
|
|||
camera->eyeNext.z =
|
||||
Camera_LERPCeilF(rwData->eyeTarget.z, camera->eyeNext.z, rwData->curKeyFrame->lerpStepScale, 1.0f);
|
||||
FALLTHROUGH;
|
||||
case 11:
|
||||
case 12:
|
||||
case ONEPOINT_CS_ACTION_ID_11:
|
||||
case ONEPOINT_CS_ACTION_ID_12:
|
||||
setAtFOVRoll:
|
||||
// linear interpolation of at/fov/roll using the step scale.
|
||||
camera->at.x = Camera_LERPCeilF(rwData->atTarget.x, camera->at.x, rwData->curKeyFrame->lerpStepScale, 1.0f);
|
||||
|
@ -5573,7 +5579,8 @@ s32 Camera_Unique9(Camera* camera) {
|
|||
camera->fov = Camera_LERPCeilF(rwData->fovTarget, camera->fov, rwData->curKeyFrame->lerpStepScale, 1.0f);
|
||||
camera->roll = Camera_LERPCeilS(rwData->rollTarget, camera->roll, rwData->curKeyFrame->lerpStepScale, 1);
|
||||
break;
|
||||
case 13:
|
||||
|
||||
case ONEPOINT_CS_ACTION_ID_13:
|
||||
// linear interpolation of at, with rotation around eyeTargetInit.y
|
||||
camera->at.x = Camera_LERPCeilF(rwData->atTarget.x, camera->at.x, rwData->curKeyFrame->lerpStepScale, 1.0f);
|
||||
camera->at.y += camera->playerPosDelta.y * rwData->curKeyFrame->lerpStepScale;
|
||||
|
@ -5603,18 +5610,20 @@ s32 Camera_Unique9(Camera* camera) {
|
|||
camera->fov, rwData->curKeyFrame->lerpStepScale, 1.0f);
|
||||
camera->roll = Camera_LERPCeilS(rwData->rollTarget, camera->roll, rwData->curKeyFrame->lerpStepScale, 1);
|
||||
break;
|
||||
case 24:
|
||||
|
||||
case ONEPOINT_CS_ACTION_ID_24:
|
||||
// Set current keyframe to the roll target?
|
||||
rwData->curKeyFrameIdx = rwData->rollTarget;
|
||||
break;
|
||||
case 19: {
|
||||
|
||||
case ONEPOINT_CS_ACTION_ID_19: {
|
||||
// Change the parent camera (or default)'s mode to normal
|
||||
s32 camIdx = camera->parentCamId <= CAM_ID_NONE ? CAM_ID_MAIN : camera->parentCamId;
|
||||
|
||||
Camera_ChangeModeFlags(camera->play->cameraPtrs[camIdx], CAM_MODE_NORMAL, 1);
|
||||
}
|
||||
FALLTHROUGH;
|
||||
case 18: {
|
||||
case ONEPOINT_CS_ACTION_ID_18: {
|
||||
// copy the current camera to the parent (or default)'s camera.
|
||||
s32 camIdx = camera->parentCamId <= CAM_ID_NONE ? CAM_ID_MAIN : camera->parentCamId;
|
||||
Camera* cam = camera->play->cameraPtrs[camIdx];
|
||||
|
@ -5632,11 +5641,11 @@ s32 Camera_Unique9(Camera* camera) {
|
|||
|
||||
*eye = *eyeNext;
|
||||
|
||||
if (rwData->curKeyFrame->actionFlags & 0x80) {
|
||||
if (rwData->curKeyFrame->actionFlags & ONEPOINT_CS_ACTION_FLAG_BGCHECK) {
|
||||
Camera_BGCheck(camera, at, eye);
|
||||
}
|
||||
|
||||
if (rwData->curKeyFrame->actionFlags & 0x40) {
|
||||
if (rwData->curKeyFrame->actionFlags & ONEPOINT_CS_ACTION_FLAG_40) {
|
||||
// Set the player's position
|
||||
camera->player->actor.world.pos.x = rwData->playerPos.x;
|
||||
camera->player->actor.world.pos.z = rwData->playerPos.z;
|
||||
|
@ -6072,7 +6081,7 @@ s32 Camera_Demo5(Camera* camera) {
|
|||
ONEPOINT_CS_INFO(camera)->keyFrameCnt = ARRAY_COUNT(D_8011D79C);
|
||||
if ((targetScreenPosX < 0x15) || (targetScreenPosX >= 0x12C) || (targetScreenPosY < 0x29) ||
|
||||
(targetScreenPosY >= 0xC8)) {
|
||||
D_8011D79C[0].actionFlags = 0x41;
|
||||
D_8011D79C[0].actionFlags = ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_1, true, false);
|
||||
D_8011D79C[0].atTargetInit.y = -30.0f;
|
||||
D_8011D79C[0].atTargetInit.x = 0.0f;
|
||||
D_8011D79C[0].atTargetInit.z = 0.0f;
|
||||
|
@ -6156,8 +6165,8 @@ s32 Camera_Demo5(Camera* camera) {
|
|||
targethead.pos.x += 50.0f * Math_SinS(sp4A - 0x7FFF);
|
||||
targethead.pos.z += 50.0f * Math_CosS(sp4A - 0x7FFF);
|
||||
if (Camera_BGCheck(camera, &playerhead.pos, &targethead.pos)) {
|
||||
D_8011D954[1].actionFlags = 0xC1;
|
||||
D_8011D954[2].actionFlags = 0x8F;
|
||||
D_8011D954[1].actionFlags = ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_1, true, true);
|
||||
D_8011D954[2].actionFlags = ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_15, false, true);
|
||||
} else {
|
||||
D_8011D954[2].timerInit = (s16)(eyeTargetDist * 0.004f) + 6;
|
||||
}
|
||||
|
@ -6181,7 +6190,7 @@ s32 Camera_Demo5(Camera* camera) {
|
|||
Actor_GetFocus(&targethead, camera->target);
|
||||
if (Camera_BGCheck(camera, &playerhead.pos, &targethead.pos)) {
|
||||
D_8011D9F4[1].timerInit = 4;
|
||||
D_8011D9F4[1].actionFlags = 0x8F;
|
||||
D_8011D9F4[1].actionFlags = ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_15, false, true);
|
||||
} else {
|
||||
t = eyeTargetDist * 0.005f;
|
||||
D_8011D9F4[1].timerInit = t + 8;
|
||||
|
@ -6218,14 +6227,14 @@ s32 Camera_Demo5(Camera* camera) {
|
|||
framesDiff = camera->play->state.frames - sDemo5PrevAction12Frame;
|
||||
if (player->stateFlags1 & PLAYER_STATE1_11) {
|
||||
// holding object over head.
|
||||
func_8002DF54(camera->play, camera->target, 8);
|
||||
func_8002DF54(camera->play, camera->target, PLAYER_CSMODE_8);
|
||||
} else if (ABS(framesDiff) > 3000) {
|
||||
func_8002DF54(camera->play, camera->target, 12);
|
||||
func_8002DF54(camera->play, camera->target, PLAYER_CSMODE_12);
|
||||
} else {
|
||||
func_8002DF54(camera->play, camera->target, 69);
|
||||
func_8002DF54(camera->play, camera->target, PLAYER_CSMODE_69);
|
||||
}
|
||||
} else {
|
||||
func_8002DF54(camera->play, camera->target, 1);
|
||||
func_8002DF54(camera->play, camera->target, PLAYER_CSMODE_1);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -6285,7 +6294,7 @@ s32 Camera_Demo6(Camera* camera) {
|
|||
FALLTHROUGH;
|
||||
case 1:
|
||||
if (stateTimers[camera->animState] < rwData->animTimer) {
|
||||
func_8002DF54(camera->play, &camera->player->actor, 8);
|
||||
func_8002DF54(camera->play, &camera->player->actor, PLAYER_CSMODE_8);
|
||||
Actor_GetWorld(&focusPosRot, camFocus);
|
||||
rwData->atTarget.x = focusPosRot.pos.x;
|
||||
rwData->atTarget.y = focusPosRot.pos.y - 20.0f;
|
||||
|
@ -7813,8 +7822,8 @@ void Camera_Finish(Camera* camera) {
|
|||
player->actor.freezeTimer = 0;
|
||||
player->stateFlags1 &= ~PLAYER_STATE1_29;
|
||||
|
||||
if (player->csMode != 0) {
|
||||
func_8002DF54(camera->play, &player->actor, 7);
|
||||
if (player->csMode != PLAYER_CSMODE_NONE) {
|
||||
func_8002DF54(camera->play, &player->actor, PLAYER_CSMODE_7);
|
||||
osSyncPrintf("camera: player demo end!!\n");
|
||||
}
|
||||
|
||||
|
|
|
@ -2675,105 +2675,311 @@ s32 sDemo5PrevSfxFrame = -200;
|
|||
|
||||
// target is player, far from eye
|
||||
OnePointCsFull D_8011D6AC[] = {
|
||||
{ // initflags & 0x00FF (at): 2, atTarget is view lookAt + atInit
|
||||
// initFlags & 0xFF00 (eye): none
|
||||
// action: 15, copy at, eye, roll, fov to camera
|
||||
// result: eye remains in the same locaiton, at is View's lookAt
|
||||
0x8F,
|
||||
0xFF,
|
||||
0x0002,
|
||||
0x0001,
|
||||
0x0000,
|
||||
60.0f,
|
||||
1.0f,
|
||||
{ 0.0f, 0.0f, 0.0f },
|
||||
{ 0.0f, 0.0f, 0.0f } },
|
||||
{ // initFlags & 0x00FF (at): 3, atTarget is camera's current at + atInit
|
||||
// initFlags & 0xFF00 (eye): 3, eyeTarget is the camera's current eye + eyeInit
|
||||
// action: interplate eye and at.
|
||||
// result: eye and at's y interpolate to become +20 from their current location.
|
||||
0x81,
|
||||
0xFF,
|
||||
0x0303,
|
||||
0x0013,
|
||||
0x0000,
|
||||
45.0f,
|
||||
1.0f,
|
||||
{ 0.0f, 20.0f, 0.0f },
|
||||
{ 0.0f, 20.0f, 0.0f } },
|
||||
{ // initFlags & 0x00FF (at): 0 none
|
||||
// initFlags & 0xFF00 (eye): 0 none
|
||||
// action: 18, copy this camera to default camera.
|
||||
0x12,
|
||||
0xFF,
|
||||
0x0000,
|
||||
0x0001,
|
||||
0x0000,
|
||||
60.0f,
|
||||
1.0f,
|
||||
{ -1.0f, -1.0f, -1.0f },
|
||||
{ -1.0f, -1.0f, -1.0f } },
|
||||
{
|
||||
// initflags & 0x00FF (at): 2, atTarget is view lookAt + atInit
|
||||
// initFlags & 0xFF00 (eye): none
|
||||
// action: 15, copy at, eye, roll, fov to camera
|
||||
// result: eye remains in the same location, at is View's lookAt
|
||||
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_15, false, true),
|
||||
0xFF,
|
||||
0x0002,
|
||||
1,
|
||||
0,
|
||||
60.0f,
|
||||
1.0f,
|
||||
{ 0.0f, 0.0f, 0.0f },
|
||||
{ 0.0f, 0.0f, 0.0f },
|
||||
},
|
||||
{
|
||||
// initFlags & 0x00FF (at): 3, atTarget is camera's current at + atInit
|
||||
// initFlags & 0xFF00 (eye): 3, eyeTarget is the camera's current eye + eyeInit
|
||||
// action: interpolate eye and at.
|
||||
// result: eye and at's y interpolate to become +20 from their current location.
|
||||
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_1, false, true),
|
||||
0xFF,
|
||||
0x0303,
|
||||
19,
|
||||
0,
|
||||
45.0f,
|
||||
1.0f,
|
||||
{ 0.0f, 20.0f, 0.0f },
|
||||
{ 0.0f, 20.0f, 0.0f },
|
||||
},
|
||||
{
|
||||
// initFlags & 0x00FF (at): 0 none
|
||||
// initFlags & 0xFF00 (eye): 0 none
|
||||
// action: 18, copy this camera to default camera.
|
||||
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_18, false, false),
|
||||
0xFF,
|
||||
0x0000,
|
||||
1,
|
||||
0,
|
||||
60.0f,
|
||||
1.0f,
|
||||
{ -1.0f, -1.0f, -1.0f },
|
||||
{ -1.0f, -1.0f, -1.0f },
|
||||
},
|
||||
};
|
||||
|
||||
// target is player close to current eye
|
||||
OnePointCsFull D_8011D724[] = {
|
||||
{ 0x8F, 0xFF, 0x2424, 0x0001, 0x0000, 60.0f, 1.0f, { 0.0f, 0.0f, 0.0f }, { 0.0f, 10.0f, -20.0f } },
|
||||
{ 0x81, 0xFF, 0x2121, 0x0013, 0x0000, 50.0f, 1.0f, { 0.0f, -10.0f, 0.0f }, { 0.0f, 0.0f, 60.0f } },
|
||||
{ 0x12, 0xFF, 0x0000, 0x0001, 0x0000, 60.0f, 1.0f, { -1.0f, -1.0f, -1.0f }, { -1.0f, -1.0f, -1.0f } },
|
||||
{
|
||||
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_15, false, true),
|
||||
0xFF,
|
||||
0x2424,
|
||||
1,
|
||||
0,
|
||||
60.0f,
|
||||
1.0f,
|
||||
{ 0.0f, 0.0f, 0.0f },
|
||||
{ 0.0f, 10.0f, -20.0f },
|
||||
},
|
||||
{
|
||||
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_1, false, true),
|
||||
0xFF,
|
||||
0x2121,
|
||||
19,
|
||||
0,
|
||||
50.0f,
|
||||
1.0f,
|
||||
{ 0.0f, -10.0f, 0.0f },
|
||||
{ 0.0f, 0.0f, 60.0f },
|
||||
},
|
||||
{
|
||||
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_18, false, false),
|
||||
0xFF,
|
||||
0x0000,
|
||||
1,
|
||||
0,
|
||||
60.0f,
|
||||
1.0f,
|
||||
{ -1.0f, -1.0f, -1.0f },
|
||||
{ -1.0f, -1.0f, -1.0f },
|
||||
},
|
||||
};
|
||||
|
||||
// target is close to player
|
||||
OnePointCsFull D_8011D79C[] = {
|
||||
{ 0xCF, 0xFF, 0x0002, 0x0001, 0x0000, 60.0f, 1.0f, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f } },
|
||||
{ 0xC1, 0xFF, 0x0303, 0x0013, 0x0000, 45.0f, 1.0f, { 0.0f, -20.0f, 0.0f }, { 0.0f, -10.0f, 5.0f } },
|
||||
{
|
||||
0xC1,
|
||||
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_15, true, true),
|
||||
0xFF,
|
||||
0x0002,
|
||||
1,
|
||||
0,
|
||||
60.0f,
|
||||
1.0f,
|
||||
{ 0.0f, 0.0f, 0.0f },
|
||||
{ 0.0f, 0.0f, 0.0f },
|
||||
},
|
||||
{
|
||||
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_1, true, true),
|
||||
0xFF,
|
||||
0x0303,
|
||||
0x0009,
|
||||
0x0000,
|
||||
19,
|
||||
0,
|
||||
45.0f,
|
||||
1.0f,
|
||||
{ 0.0f, -20.0f, 0.0f },
|
||||
{ 0.0f, -10.0f, 5.0f },
|
||||
},
|
||||
{
|
||||
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_1, true, true),
|
||||
0xFF,
|
||||
0x0303,
|
||||
9,
|
||||
0,
|
||||
60.0f,
|
||||
1.0f,
|
||||
{ 0.0f, 10.0f, 0.0f },
|
||||
{ 0.0f, 10.0f, 0.0f },
|
||||
},
|
||||
{ 0x12, 0xFF, 0x0000, 0x0001, 0x0000, 60.0f, 1.0f, { -1.0f, -1.0f, -1.0f }, { -1.0f, -1.0f, -1.0f } },
|
||||
{
|
||||
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_18, false, false),
|
||||
0xFF,
|
||||
0x0000,
|
||||
1,
|
||||
0,
|
||||
60.0f,
|
||||
1.0f,
|
||||
{ -1.0f, -1.0f, -1.0f },
|
||||
{ -1.0f, -1.0f, -1.0f },
|
||||
},
|
||||
};
|
||||
|
||||
// target is within 300 units of eye, and player is within 30 units of eye
|
||||
OnePointCsFull D_8011D83C[] = {
|
||||
{ 0x83, 0xFF, 0x2141, 0x0014, 0x0000, 45.0f, 0.2f, { 0.0f, 0.0f, 10.0f }, { 0.0f, 0.0f, 10.0f } },
|
||||
{ 0x12, 0xFF, 0x0000, 0x0001, 0x0000, 60.0f, 1.0f, { -1.0f, -1.0f, -1.0f }, { -1.0f, -1.0f, -1.0f } },
|
||||
{
|
||||
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_3, false, true),
|
||||
0xFF,
|
||||
0x2141,
|
||||
20,
|
||||
0,
|
||||
45.0f,
|
||||
0.2f,
|
||||
{ 0.0f, 0.0f, 10.0f },
|
||||
{ 0.0f, 0.0f, 10.0f },
|
||||
},
|
||||
{
|
||||
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_18, false, false),
|
||||
0xFF,
|
||||
0x0000,
|
||||
1,
|
||||
0,
|
||||
60.0f,
|
||||
1.0f,
|
||||
{ -1.0f, -1.0f, -1.0f },
|
||||
{ -1.0f, -1.0f, -1.0f },
|
||||
},
|
||||
};
|
||||
|
||||
// target is within 700 units of eye, angle between player/eye and target/eye is less than
|
||||
// 76.9 degrees. The x/y coordinates of the target on screen is between (21, 41) and (300, 200),
|
||||
// and the player is farther than 30 units of the eye
|
||||
OnePointCsFull D_8011D88C[] = {
|
||||
{ 0x81, 0xFF, 0x0303, 0x0014, 0x0000, 45.0f, 1.0f, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f } },
|
||||
{ 0x12, 0xFF, 0x0000, 0x0001, 0x0000, 60.0f, 1.0f, { -1.0f, -1.0f, -1.0f }, { -1.0f, -1.0f, -1.0f } },
|
||||
{
|
||||
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_1, false, true),
|
||||
0xFF,
|
||||
0x0303,
|
||||
20,
|
||||
0,
|
||||
45.0f,
|
||||
1.0f,
|
||||
{ 0.0f, 0.0f, 0.0f },
|
||||
{ 0.0f, 0.0f, 0.0f },
|
||||
},
|
||||
{
|
||||
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_18, false, false),
|
||||
0xFF,
|
||||
0x0000,
|
||||
1,
|
||||
0,
|
||||
60.0f,
|
||||
1.0f,
|
||||
{ -1.0f, -1.0f, -1.0f },
|
||||
{ -1.0f, -1.0f, -1.0f },
|
||||
},
|
||||
};
|
||||
|
||||
// same as above, but the target is NOT within the screen area.
|
||||
OnePointCsFull D_8011D8DC[] = {
|
||||
{ 0x8F, 0xFF, 0x0404, 0x0014, 0x0001, 50.0f, 1.0f, { 0.0f, 5.0f, 10.0f }, { 0.0f, 10.0f, -80.0f } },
|
||||
{ 0x82, 0xFF, 0x2121, 0x0005, 0x0000, 60.0f, 1.0f, { 0.0f, 5.0f, 0.0f }, { 5.0f, 5.0f, -200.0f } },
|
||||
{ 0x12, 0xFF, 0x0000, 0x0001, 0x0000, 60.0f, 1.0f, { -1.0f, -1.0f, -1.0f }, { -1.0f, -1.0f, -1.0f } },
|
||||
{
|
||||
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_15, false, true),
|
||||
0xFF,
|
||||
0x0404,
|
||||
20,
|
||||
1,
|
||||
50.0f,
|
||||
1.0f,
|
||||
{ 0.0f, 5.0f, 10.0f },
|
||||
{ 0.0f, 10.0f, -80.0f },
|
||||
},
|
||||
{
|
||||
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_2, false, true),
|
||||
0xFF,
|
||||
0x2121,
|
||||
5,
|
||||
0,
|
||||
60.0f,
|
||||
1.0f,
|
||||
{ 0.0f, 5.0f, 0.0f },
|
||||
{ 5.0f, 5.0f, -200.0f },
|
||||
},
|
||||
{
|
||||
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_18, false, false),
|
||||
0xFF,
|
||||
0x0000,
|
||||
1,
|
||||
0,
|
||||
60.0f,
|
||||
1.0f,
|
||||
{ -1.0f, -1.0f, -1.0f },
|
||||
{ -1.0f, -1.0f, -1.0f },
|
||||
},
|
||||
};
|
||||
|
||||
// target is a door.
|
||||
OnePointCsFull D_8011D954[] = {
|
||||
{ 0x0F, 0xFF, 0xC1C1, 0x0014, 0x0000, 60.0f, 1.0f, { 0.0f, 0.0f, 50.0f }, { 0.0f, 0.0f, 250.0f } },
|
||||
{ 0x83, 0xFF, 0x05B1, 0x0005, 0x0000, 60.0f, 0.1f, { 0.0f, 10.0f, 50.0f }, { 0.0f, 10.0f, 100.0f } },
|
||||
{ 0x82, 0xFF, 0x2121, 0x0005, 0x0002, 60.0f, 1.0f, { 0.0f, 10.0f, 0.0f }, { 0.0f, 20.0f, -150.0f } },
|
||||
{ 0x12, 0xFF, 0x0000, 0x0001, 0x0000, 60.0f, 1.0f, { -1.0f, -1.0f, -1.0f }, { -1.0f, -1.0f, -1.0f } },
|
||||
{
|
||||
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_15, false, false),
|
||||
0xFF,
|
||||
0xC1C1,
|
||||
20,
|
||||
0,
|
||||
60.0f,
|
||||
1.0f,
|
||||
{ 0.0f, 0.0f, 50.0f },
|
||||
{ 0.0f, 0.0f, 250.0f },
|
||||
},
|
||||
{
|
||||
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_3, false, true),
|
||||
0xFF,
|
||||
0x05B1,
|
||||
5,
|
||||
0,
|
||||
60.0f,
|
||||
0.1f,
|
||||
{ 0.0f, 10.0f, 50.0f },
|
||||
{ 0.0f, 10.0f, 100.0f },
|
||||
},
|
||||
{
|
||||
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_2, false, true),
|
||||
0xFF,
|
||||
0x2121,
|
||||
5,
|
||||
2,
|
||||
60.0f,
|
||||
1.0f,
|
||||
{ 0.0f, 10.0f, 0.0f },
|
||||
{ 0.0f, 20.0f, -150.0f },
|
||||
},
|
||||
{
|
||||
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_18, false, false),
|
||||
0xFF,
|
||||
0x0000,
|
||||
1,
|
||||
0,
|
||||
60.0f,
|
||||
1.0f,
|
||||
{ -1.0f, -1.0f, -1.0f },
|
||||
{ -1.0f, -1.0f, -1.0f },
|
||||
},
|
||||
};
|
||||
|
||||
// otherwise
|
||||
OnePointCsFull D_8011D9F4[] = {
|
||||
{ 0x8F, 0xFF, 0x0504, 0x0014, 0x0002, 60.0f, 1.0f, { 0.0f, 5.0f, 50.0f }, { 0.0f, 20.0f, 300.0f } },
|
||||
{ 0x82, 0xFF, 0x2121, 0x0005, 0x0002, 60.0f, 1.0f, { 0.0f, 10.0f, 0.0f }, { 0.0f, 20.0f, -150.0f } },
|
||||
{ 0x12, 0xFF, 0x0000, 0x0001, 0x0000, 60.0f, 1.0f, { -1.0f, -1.0f, -1.0f }, { -1.0f, -1.0f, -1.0f } },
|
||||
{
|
||||
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_15, false, true),
|
||||
0xFF,
|
||||
0x0504,
|
||||
20,
|
||||
2,
|
||||
60.0f,
|
||||
1.0f,
|
||||
{ 0.0f, 5.0f, 50.0f },
|
||||
{ 0.0f, 20.0f, 300.0f },
|
||||
},
|
||||
{
|
||||
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_2, false, true),
|
||||
0xFF,
|
||||
0x2121,
|
||||
5,
|
||||
2,
|
||||
60.0f,
|
||||
1.0f,
|
||||
{ 0.0f, 10.0f, 0.0f },
|
||||
{ 0.0f, 20.0f, -150.0f },
|
||||
},
|
||||
{
|
||||
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_18, false, false),
|
||||
0xFF,
|
||||
0x0000,
|
||||
1,
|
||||
0,
|
||||
60.0f,
|
||||
1.0f,
|
||||
{ -1.0f, -1.0f, -1.0f },
|
||||
{ -1.0f, -1.0f, -1.0f },
|
||||
},
|
||||
};
|
||||
|
||||
typedef enum {
|
||||
|
|
|
@ -4,6 +4,8 @@ void Interface_Destroy(PlayState* play) {
|
|||
Map_Destroy(play);
|
||||
}
|
||||
|
||||
#define ICON_ITEM_SEGMENT_SIZE (4 * ITEM_ICON_SIZE)
|
||||
|
||||
void Interface_Init(PlayState* play) {
|
||||
InterfaceContext* interfaceCtx = &play->interfaceCtx;
|
||||
u32 parameterSize;
|
||||
|
@ -70,10 +72,10 @@ void Interface_Init(PlayState* play) {
|
|||
(uintptr_t)_do_action_staticSegmentRomStart + doActionOffset, DO_ACTION_TEX_SIZE,
|
||||
"../z_construct.c", 178);
|
||||
|
||||
interfaceCtx->iconItemSegment = GameState_Alloc(&play->state, 4 * ICON_ITEM_TEX_SIZE, "../z_construct.c", 190);
|
||||
interfaceCtx->iconItemSegment = GameState_Alloc(&play->state, ICON_ITEM_SEGMENT_SIZE, "../z_construct.c", 190);
|
||||
|
||||
// "Icon Item Texture Initialization = %x"
|
||||
osSyncPrintf("アイコンアイテム テクスチャ初期=%x\n", 4 * ICON_ITEM_TEX_SIZE);
|
||||
osSyncPrintf("アイコンアイテム テクスチャ初期=%x\n", ICON_ITEM_SEGMENT_SIZE);
|
||||
osSyncPrintf("parameter->icon_itemSegment=%x\n", interfaceCtx->iconItemSegment);
|
||||
|
||||
ASSERT(interfaceCtx->iconItemSegment != NULL, "parameter->icon_itemSegment != NULL", "../z_construct.c", 193);
|
||||
|
@ -83,36 +85,31 @@ void Interface_Init(PlayState* play) {
|
|||
gSaveContext.equips.buttonItems[3]);
|
||||
|
||||
if (gSaveContext.equips.buttonItems[0] < 0xF0) {
|
||||
DmaMgr_RequestSyncDebug(interfaceCtx->iconItemSegment,
|
||||
(uintptr_t)_icon_item_staticSegmentRomStart +
|
||||
gSaveContext.equips.buttonItems[0] * ICON_ITEM_TEX_SIZE,
|
||||
ICON_ITEM_TEX_SIZE, "../z_construct.c", 198);
|
||||
DmaMgr_RequestSyncDebug(interfaceCtx->iconItemSegment + (0 * ITEM_ICON_SIZE),
|
||||
GET_ITEM_ICON_VROM(gSaveContext.equips.buttonItems[0]), ITEM_ICON_SIZE,
|
||||
"../z_construct.c", 198);
|
||||
} else if (gSaveContext.equips.buttonItems[0] != 0xFF) {
|
||||
DmaMgr_RequestSyncDebug(interfaceCtx->iconItemSegment,
|
||||
(uintptr_t)_icon_item_staticSegmentRomStart +
|
||||
gSaveContext.equips.buttonItems[0] * ICON_ITEM_TEX_SIZE,
|
||||
ICON_ITEM_TEX_SIZE, "../z_construct.c", 203);
|
||||
DmaMgr_RequestSyncDebug(interfaceCtx->iconItemSegment + (0 * ITEM_ICON_SIZE),
|
||||
GET_ITEM_ICON_VROM(gSaveContext.equips.buttonItems[0]), ITEM_ICON_SIZE,
|
||||
"../z_construct.c", 203);
|
||||
}
|
||||
|
||||
if (gSaveContext.equips.buttonItems[1] < 0xF0) {
|
||||
DmaMgr_RequestSyncDebug(interfaceCtx->iconItemSegment + ICON_ITEM_TEX_SIZE,
|
||||
(uintptr_t)_icon_item_staticSegmentRomStart +
|
||||
gSaveContext.equips.buttonItems[1] * ICON_ITEM_TEX_SIZE,
|
||||
ICON_ITEM_TEX_SIZE, "../z_construct.c", 209);
|
||||
DmaMgr_RequestSyncDebug(interfaceCtx->iconItemSegment + (1 * ITEM_ICON_SIZE),
|
||||
GET_ITEM_ICON_VROM(gSaveContext.equips.buttonItems[1]), ITEM_ICON_SIZE,
|
||||
"../z_construct.c", 209);
|
||||
}
|
||||
|
||||
if (gSaveContext.equips.buttonItems[2] < 0xF0) {
|
||||
DmaMgr_RequestSyncDebug(interfaceCtx->iconItemSegment + 2 * ICON_ITEM_TEX_SIZE,
|
||||
(uintptr_t)_icon_item_staticSegmentRomStart +
|
||||
gSaveContext.equips.buttonItems[2] * ICON_ITEM_TEX_SIZE,
|
||||
ICON_ITEM_TEX_SIZE, "../z_construct.c", 214);
|
||||
DmaMgr_RequestSyncDebug(interfaceCtx->iconItemSegment + (2 * ITEM_ICON_SIZE),
|
||||
GET_ITEM_ICON_VROM(gSaveContext.equips.buttonItems[2]), ITEM_ICON_SIZE,
|
||||
"../z_construct.c", 214);
|
||||
}
|
||||
|
||||
if (gSaveContext.equips.buttonItems[3] < 0xF0) {
|
||||
DmaMgr_RequestSyncDebug(interfaceCtx->iconItemSegment + 3 * ICON_ITEM_TEX_SIZE,
|
||||
(uintptr_t)_icon_item_staticSegmentRomStart +
|
||||
gSaveContext.equips.buttonItems[3] * ICON_ITEM_TEX_SIZE,
|
||||
ICON_ITEM_TEX_SIZE, "../z_construct.c", 219);
|
||||
DmaMgr_RequestSyncDebug(interfaceCtx->iconItemSegment + (3 * ITEM_ICON_SIZE),
|
||||
GET_ITEM_ICON_VROM(gSaveContext.equips.buttonItems[3]), ITEM_ICON_SIZE,
|
||||
"../z_construct.c", 219);
|
||||
}
|
||||
|
||||
osSyncPrintf("EVENT=%d\n", ((void)0, gSaveContext.timerState));
|
||||
|
@ -173,6 +170,9 @@ void Interface_Init(PlayState* play) {
|
|||
R_A_BTN_COLOR(2) = 50;
|
||||
}
|
||||
|
||||
#define TEXTBOX_SEGMENT_SIZE \
|
||||
(MESSAGE_STATIC_TEX_SIZE + MAX(MAX(ITEM_ICON_SIZE, QUEST_ICON_SIZE), 2 * MESSAGE_TEXTURE_STATIC_TEX_SIZE))
|
||||
|
||||
void Message_Init(PlayState* play) {
|
||||
MessageContext* msgCtx = &play->msgCtx;
|
||||
s32 pad;
|
||||
|
@ -188,15 +188,11 @@ void Message_Init(PlayState* play) {
|
|||
|
||||
View_Init(&msgCtx->view, play->state.gfxCtx);
|
||||
|
||||
msgCtx->textboxSegment =
|
||||
GameState_Alloc(&play->state,
|
||||
MESSAGE_STATIC_TEX_SIZE +
|
||||
MAX(MAX(ICON_ITEM_TEX_SIZE, ICON_ITEM_24_TEX_SIZE), 2 * MESSAGE_TEXTURE_STATIC_TEX_SIZE),
|
||||
"../z_construct.c", 349);
|
||||
msgCtx->textboxSegment = GameState_Alloc(&play->state, TEXTBOX_SEGMENT_SIZE, "../z_construct.c", 349);
|
||||
|
||||
osSyncPrintf("message->fukidashiSegment=%x\n", msgCtx->textboxSegment);
|
||||
|
||||
osSyncPrintf("吹き出しgame_alloc=%x\n", 0x2200); // "Textbox game_alloc=%x"
|
||||
osSyncPrintf("吹き出しgame_alloc=%x\n", TEXTBOX_SEGMENT_SIZE); // "Textbox game_alloc=%x"
|
||||
ASSERT(msgCtx->textboxSegment != NULL, "message->fukidashiSegment != NULL", "../z_construct.c", 352);
|
||||
|
||||
Font_LoadOrderedFont(&play->msgCtx.font);
|
||||
|
@ -257,7 +253,7 @@ void Regs_InitDataImpl(void) {
|
|||
R_TEXTBOX_ICON_YPOS = 10;
|
||||
YREG(73) = -8;
|
||||
YREG(74) = 8;
|
||||
R_TEXTBOX_ICON_SIZE = 24;
|
||||
R_TEXTBOX_ICON_DIMENSION = 24;
|
||||
YREG(76) = 32;
|
||||
YREG(77) = 0;
|
||||
R_MESSAGE_DEBUGGER_SELECT = 0;
|
||||
|
|
|
@ -351,7 +351,7 @@ void EnItem00_Init(Actor* thisx, PlayState* play) {
|
|||
}
|
||||
|
||||
if ((getItemId != GI_NONE) && !Actor_HasParent(&this->actor, play)) {
|
||||
func_8002F554(&this->actor, play, getItemId);
|
||||
Actor_OfferGetItemNearby(&this->actor, play, getItemId);
|
||||
}
|
||||
|
||||
EnItem00_SetupAction(this, EnItem00_Collected);
|
||||
|
@ -498,7 +498,7 @@ void EnItem00_Collected(EnItem00* this, PlayState* play) {
|
|||
|
||||
if (this->getItemId != GI_NONE) {
|
||||
if (!Actor_HasParent(&this->actor, play)) {
|
||||
func_8002F434(&this->actor, play, this->getItemId, 50.0f, 80.0f);
|
||||
Actor_OfferGetItem(&this->actor, play, this->getItemId, 50.0f, 80.0f);
|
||||
this->despawnTimer++;
|
||||
} else {
|
||||
this->getItemId = GI_NONE;
|
||||
|
@ -696,7 +696,7 @@ void EnItem00_Update(Actor* thisx, PlayState* play) {
|
|||
params = &this->actor.params;
|
||||
|
||||
if ((getItemId != GI_NONE) && !Actor_HasParent(&this->actor, play)) {
|
||||
func_8002F554(&this->actor, play, getItemId);
|
||||
Actor_OfferGetItemNearby(&this->actor, play, getItemId);
|
||||
}
|
||||
|
||||
switch (*params) {
|
||||
|
|
|
@ -755,17 +755,17 @@ u16 Message_DrawItemIcon(PlayState* play, u16 itemId, Gfx** p, u16 i) {
|
|||
gDPSetPrimColor(gfx++, 0, 0, 255, 255, 255, msgCtx->textColorAlpha);
|
||||
|
||||
if (itemId >= ITEM_MEDALLION_FOREST) {
|
||||
gDPLoadTextureBlock(gfx++, msgCtx->textboxSegment + MESSAGE_STATIC_TEX_SIZE, G_IM_FMT_RGBA, G_IM_SIZ_32b, 24,
|
||||
24, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK,
|
||||
G_TX_NOLOD, G_TX_NOLOD);
|
||||
gDPLoadTextureBlock(gfx++, msgCtx->textboxSegment + MESSAGE_STATIC_TEX_SIZE, G_IM_FMT_RGBA, G_IM_SIZ_32b,
|
||||
QUEST_ICON_WIDTH, QUEST_ICON_HEIGHT, 0, G_TX_NOMIRROR | G_TX_WRAP,
|
||||
G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
|
||||
} else {
|
||||
gDPLoadTextureBlock(gfx++, msgCtx->textboxSegment + MESSAGE_STATIC_TEX_SIZE, G_IM_FMT_RGBA, G_IM_SIZ_32b, 32,
|
||||
32, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK,
|
||||
G_TX_NOLOD, G_TX_NOLOD);
|
||||
gDPLoadTextureBlock(gfx++, msgCtx->textboxSegment + MESSAGE_STATIC_TEX_SIZE, G_IM_FMT_RGBA, G_IM_SIZ_32b,
|
||||
ITEM_ICON_WIDTH, ITEM_ICON_HEIGHT, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP,
|
||||
G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
|
||||
}
|
||||
gSPTextureRectangle(gfx++, (msgCtx->textPosX + R_TEXTBOX_ICON_XPOS) << 2, R_TEXTBOX_ICON_YPOS << 2,
|
||||
(msgCtx->textPosX + R_TEXTBOX_ICON_XPOS + R_TEXTBOX_ICON_SIZE) << 2,
|
||||
(R_TEXTBOX_ICON_YPOS + R_TEXTBOX_ICON_SIZE) << 2, G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10);
|
||||
(msgCtx->textPosX + R_TEXTBOX_ICON_XPOS + R_TEXTBOX_ICON_DIMENSION) << 2,
|
||||
(R_TEXTBOX_ICON_YPOS + R_TEXTBOX_ICON_DIMENSION) << 2, G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10);
|
||||
gDPPipeSync(gfx++);
|
||||
gDPSetCombineLERP(gfx++, 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0);
|
||||
|
||||
|
@ -1164,21 +1164,18 @@ void Message_LoadItemIcon(PlayState* play, u16 itemId, s16 y) {
|
|||
}
|
||||
if (itemId < ITEM_MEDALLION_FOREST) {
|
||||
R_TEXTBOX_ICON_XPOS = R_TEXT_INIT_XPOS - sIconItem32XOffsets[gSaveContext.language];
|
||||
R_TEXTBOX_ICON_YPOS = y + 6;
|
||||
R_TEXTBOX_ICON_SIZE = 32;
|
||||
DmaMgr_RequestSyncDebug(msgCtx->textboxSegment + MESSAGE_STATIC_TEX_SIZE,
|
||||
(uintptr_t)_icon_item_staticSegmentRomStart + (itemId * ICON_ITEM_TEX_SIZE),
|
||||
ICON_ITEM_TEX_SIZE, "../z_message_PAL.c", 1473);
|
||||
R_TEXTBOX_ICON_YPOS = y + ((44 - ITEM_ICON_HEIGHT) / 2);
|
||||
R_TEXTBOX_ICON_DIMENSION = ITEM_ICON_WIDTH; // assumes the image is square
|
||||
DmaMgr_RequestSyncDebug(msgCtx->textboxSegment + MESSAGE_STATIC_TEX_SIZE, GET_ITEM_ICON_VROM(itemId),
|
||||
ITEM_ICON_SIZE, "../z_message_PAL.c", 1473);
|
||||
// "Item 32-0"
|
||||
osSyncPrintf("アイテム32-0\n");
|
||||
} else {
|
||||
R_TEXTBOX_ICON_XPOS = R_TEXT_INIT_XPOS - sIconItem24XOffsets[gSaveContext.language];
|
||||
R_TEXTBOX_ICON_YPOS = y + 10;
|
||||
R_TEXTBOX_ICON_SIZE = 24;
|
||||
DmaMgr_RequestSyncDebug(msgCtx->textboxSegment + MESSAGE_STATIC_TEX_SIZE,
|
||||
(uintptr_t)_icon_item_24_staticSegmentRomStart +
|
||||
(itemId - ITEM_MEDALLION_FOREST) * ICON_ITEM_24_TEX_SIZE,
|
||||
ICON_ITEM_24_TEX_SIZE, "../z_message_PAL.c", 1482);
|
||||
R_TEXTBOX_ICON_YPOS = y + ((44 - QUEST_ICON_HEIGHT) / 2);
|
||||
R_TEXTBOX_ICON_DIMENSION = QUEST_ICON_WIDTH; // assumes the image is square
|
||||
DmaMgr_RequestSyncDebug(msgCtx->textboxSegment + MESSAGE_STATIC_TEX_SIZE, GET_QUEST_ICON_VROM(itemId),
|
||||
QUEST_ICON_SIZE, "../z_message_PAL.c", 1482);
|
||||
// "Item 24"
|
||||
osSyncPrintf("アイテム24=%d (%d) {%d}\n", itemId, itemId - ITEM_KOKIRI_EMERALD, 84);
|
||||
}
|
||||
|
@ -1977,7 +1974,11 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
|
|||
};
|
||||
static s16 sOcarinaEffectActorParams[] = { 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0000 };
|
||||
static void* sOcarinaNoteTextures[] = {
|
||||
gOcarinaATex, gOcarinaCDownTex, gOcarinaCRightTex, gOcarinaCLeftTex, gOcarinaCUpTex,
|
||||
gOcarinaBtnIconATex, // OCARINA_BTN_A
|
||||
gOcarinaBtnIconCDownTex, // OCARINA_BTN_C_DOWN
|
||||
gOcarinaBtnIconCRightTex, // OCARINA_BTN_C_RIGHT
|
||||
gOcarinaBtnIconCLeftTex, // OCARINA_BTN_C_LEFT
|
||||
gOcarinaBtnIconCUpTex, // OCARINA_BTN_C_UP
|
||||
};
|
||||
static s16 sOcarinaButtonAPrimColors[][3] = {
|
||||
{ 80, 255, 150 },
|
||||
|
|
|
@ -147,7 +147,7 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act
|
|||
csInfo->keyFrameCnt = 11;
|
||||
|
||||
for (i = 0; i < csInfo->keyFrameCnt - 3; i++) {
|
||||
if (D_80120B94[i].actionFlags != 0x8F) {
|
||||
if (D_80120B94[i].actionFlags != ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_15, false, true)) {
|
||||
D_80120B94[i].atTargetInit.x = Rand_ZeroOne() * 5.0f;
|
||||
D_80120B94[i].atTargetInit.z = (Rand_ZeroOne() * 30.0f) + 10.0f;
|
||||
D_80120B94[i].eyeTargetInit.x = (Rand_ZeroOne() * 100.0f) + 20.0f;
|
||||
|
@ -169,7 +169,7 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act
|
|||
csInfo->keyFrameCnt = 7;
|
||||
|
||||
for (i = 0; i < csInfo->keyFrameCnt - 3; i++) {
|
||||
if (D_80120D4C[i].actionFlags != 0x8F) {
|
||||
if (D_80120D4C[i].actionFlags != ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_15, false, true)) {
|
||||
D_80120D4C[i].atTargetInit.x = Rand_ZeroOne() * 20.0f;
|
||||
D_80120D4C[i].atTargetInit.z = (Rand_ZeroOne() * 40.0f) + 10.0f;
|
||||
D_80120D4C[i].eyeTargetInit.x = (Rand_ZeroOne() * 40.0f) + 60.0f;
|
||||
|
@ -264,7 +264,7 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act
|
|||
case 2290: {
|
||||
Actor* rideActor = player->rideActor;
|
||||
|
||||
func_8002DF54(play, NULL, 8);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_8);
|
||||
if (rideActor != NULL) {
|
||||
rideActor->freezeTimer = 180;
|
||||
}
|
||||
|
@ -275,7 +275,7 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act
|
|||
func_800C0808(play, subCamId, player, CAM_SET_CS_C);
|
||||
} break;
|
||||
case 5120:
|
||||
func_8002DF54(play, NULL, 8);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_8);
|
||||
|
||||
csInfo->keyFrames = D_80121314;
|
||||
csInfo->keyFrameCnt = 1;
|
||||
|
@ -285,7 +285,7 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act
|
|||
case 4510:
|
||||
D_8012133C[0].eyeTargetInit = actor->world.pos;
|
||||
D_8012133C[0].eyeTargetInit.y = player->actor.world.pos.y + 40.0f;
|
||||
func_8002DF54(play, NULL, 8);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_8);
|
||||
|
||||
csInfo->keyFrames = D_8012133C;
|
||||
csInfo->keyFrameCnt = 3;
|
||||
|
@ -303,7 +303,7 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act
|
|||
OnePointCutscene_AddVecGeoToVec3f(&spB4, &spC0, &spD0);
|
||||
Play_CameraChangeSetting(play, subCamId, CAM_SET_FREE2);
|
||||
Play_CameraSetAtEye(play, subCamId, &spC0, &spB4);
|
||||
func_8002DF54(play, NULL, 8);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_8);
|
||||
subCam->roll = 0;
|
||||
subCam->fov = 50.0f;
|
||||
if (subCam->childCamId != CAM_ID_MAIN) {
|
||||
|
@ -317,7 +317,7 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act
|
|||
if (Rand_ZeroOne() < 0.0f) {
|
||||
D_801213B4[3].eyeTargetInit.x = -D_801213B4[3].eyeTargetInit.x;
|
||||
}
|
||||
func_8002DF54(play, NULL, 8);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_8);
|
||||
|
||||
csInfo->keyFrames = D_801213B4;
|
||||
csInfo->keyFrameCnt = 5;
|
||||
|
@ -361,10 +361,10 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act
|
|||
Play_CameraSetAtEye(play, subCamId, &spC0, &spB4);
|
||||
subCam->roll = 6;
|
||||
subCam->fov = 75.0f;
|
||||
func_8002DF54(play, NULL, 8);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_8);
|
||||
break;
|
||||
case 3040:
|
||||
func_8002DF54(play, NULL, 8);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_8);
|
||||
D_8012151C[0].timerInit = timer - 1;
|
||||
|
||||
csInfo->keyFrames = D_8012151C;
|
||||
|
@ -388,7 +388,7 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act
|
|||
csInfo->keyFrameCnt = 2;
|
||||
|
||||
func_800C0808(play, subCamId, player, CAM_SET_CS_C);
|
||||
func_8002DF54(play, NULL, 8);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_8);
|
||||
break;
|
||||
case 3010:
|
||||
D_801215BC[0].timerInit = timer;
|
||||
|
@ -416,7 +416,7 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act
|
|||
func_800C0808(play, subCamId, player, CAM_SET_CS_C);
|
||||
break;
|
||||
case 3090:
|
||||
func_8002DF54(play, NULL, 8);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_8);
|
||||
|
||||
csInfo->keyFrames = D_80121814;
|
||||
csInfo->keyFrameCnt = 4;
|
||||
|
@ -432,14 +432,14 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act
|
|||
Play_CameraSetAtEye(play, subCamId, &spC0, &spB4);
|
||||
subCam->roll = 0;
|
||||
subCam->fov = 70.0f;
|
||||
func_8002DF54(play, NULL, 8);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_8);
|
||||
break;
|
||||
case 3380:
|
||||
case 3065:
|
||||
csInfo->keyFrames = D_801218B4;
|
||||
csInfo->keyFrameCnt = 2;
|
||||
|
||||
func_8002DF54(play, NULL, 8);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_8);
|
||||
func_800C0808(play, subCamId, player, CAM_SET_CS_C);
|
||||
|
||||
i = Quake_Request(subCam, QUAKE_TYPE_1);
|
||||
|
@ -451,12 +451,12 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act
|
|||
csInfo->keyFrames = D_80121904;
|
||||
csInfo->keyFrameCnt = 2;
|
||||
|
||||
func_8002DF54(play, NULL, 8);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_8);
|
||||
func_800C0808(play, subCamId, player, CAM_SET_CS_C);
|
||||
break;
|
||||
case 3050:
|
||||
Play_CameraChangeSetting(play, subCamId, CAM_SET_CS_3);
|
||||
func_8002DF54(play, &player->actor, 5);
|
||||
func_8002DF54(play, &player->actor, PLAYER_CSMODE_5);
|
||||
OnePointCutscene_SetCsCamPoints(subCam, D_80120304 | 0x2000, D_80120300, D_8012013C, D_8012021C);
|
||||
func_80078884(NA_SE_SY_CORRECT_CHIME);
|
||||
OnePointCutscene_Vec3sToVec3f(&mainCam->at, &D_8012013C[D_801202FC - 2].pos);
|
||||
|
@ -485,14 +485,14 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act
|
|||
subCam->stateFlags |= CAM_STATE_1;
|
||||
csInfo->keyFrameCnt = 2;
|
||||
|
||||
func_8002DF54(play, NULL, 8);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_8);
|
||||
func_800C0808(play, subCamId, player, CAM_SET_CS_C);
|
||||
break;
|
||||
case 3130:
|
||||
csInfo->keyFrames = D_80121A44;
|
||||
csInfo->keyFrameCnt = 12;
|
||||
|
||||
func_8002DF54(play, NULL, 8);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_8);
|
||||
func_800C0808(play, subCamId, player, CAM_SET_CS_C);
|
||||
subCam->stateFlags |= CAM_STATE_1;
|
||||
break;
|
||||
|
@ -517,7 +517,7 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act
|
|||
Play_CameraSetAtEye(play, subCamId, &spC0, &spB4);
|
||||
subCam->roll = 0x50;
|
||||
subCam->fov = 55.0f;
|
||||
func_8002DF38(play, &player->actor, 8);
|
||||
func_8002DF38(play, &player->actor, PLAYER_CSMODE_8);
|
||||
break;
|
||||
case 3170:
|
||||
Actor_GetWorld(&spA0, actor);
|
||||
|
@ -533,7 +533,7 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act
|
|||
Play_CopyCamera(play, CAM_ID_MAIN, subCamId);
|
||||
subCam->roll = -1;
|
||||
subCam->fov = 55.0f;
|
||||
func_8002DF38(play, actor, 1);
|
||||
func_8002DF38(play, actor, PLAYER_CSMODE_1);
|
||||
break;
|
||||
case 3160:
|
||||
Actor_GetWorld(&spA0, actor);
|
||||
|
@ -546,7 +546,7 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act
|
|||
Play_CameraSetAtEye(play, subCamId, &spC0, &spB4);
|
||||
subCam->roll = 0;
|
||||
subCam->fov = 55.0f;
|
||||
func_8002DF38(play, &player->actor, 8);
|
||||
func_8002DF38(play, &player->actor, PLAYER_CSMODE_8);
|
||||
break;
|
||||
case 3180:
|
||||
Actor_GetWorldPosShapeRot(&spA0, actor);
|
||||
|
@ -560,12 +560,12 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act
|
|||
Play_CameraSetAtEye(play, subCamId, &spC0, &spB4);
|
||||
subCam->roll = 0;
|
||||
subCam->fov = 60.0f;
|
||||
func_8002DF38(play, actor, 1);
|
||||
func_8002DF38(play, actor, PLAYER_CSMODE_1);
|
||||
break;
|
||||
case 3190:
|
||||
Play_CameraChangeSetting(play, subCamId, CAM_SET_FOREST_DEFEAT_POE);
|
||||
Camera_ChangeMode(mainCam, CAM_MODE_NORMAL);
|
||||
func_8002DF38(play, actor, 0xC);
|
||||
func_8002DF38(play, actor, PLAYER_CSMODE_12);
|
||||
break;
|
||||
case 3230:
|
||||
spC0.x = 120.0f;
|
||||
|
@ -578,7 +578,7 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act
|
|||
Play_CameraSetAtEye(play, subCamId, &spC0, &spB4);
|
||||
subCam->roll = 0x1E;
|
||||
subCam->fov = 75.0f;
|
||||
func_8002DF38(play, &player->actor, 8);
|
||||
func_8002DF38(play, &player->actor, PLAYER_CSMODE_8);
|
||||
Actor_GetWorldPosShapeRot(&spA0, actor);
|
||||
Actor_GetFocus(&sp8C, &player->actor);
|
||||
spC0.x = sp8C.pos.x;
|
||||
|
@ -607,7 +607,7 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act
|
|||
Play_CameraSetAtEye(play, subCamId, &spC0, &spB4);
|
||||
subCam->roll = 0;
|
||||
subCam->fov = 45.0f;
|
||||
func_8002DF38(play, &player->actor, 8);
|
||||
func_8002DF38(play, &player->actor, PLAYER_CSMODE_8);
|
||||
break;
|
||||
case 3220:
|
||||
Actor_GetFocus(&spA0, actor);
|
||||
|
@ -623,7 +623,7 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act
|
|||
subCam->roll = 0;
|
||||
subCam->fov = 75.0f;
|
||||
player->actor.shape.rot.y = player->actor.world.rot.y = player->currentYaw = spD0.yaw + 0x7FFF;
|
||||
func_8002DF54(play, NULL, 8);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_8);
|
||||
break;
|
||||
case 3240:
|
||||
D_80121D3C[2].timerInit = timer - 5;
|
||||
|
@ -631,12 +631,12 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act
|
|||
csInfo->keyFrames = D_80121D3C;
|
||||
csInfo->keyFrameCnt = 3;
|
||||
|
||||
func_8002DF54(play, NULL, 8);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_8);
|
||||
func_800C0808(play, subCamId, player, CAM_SET_CS_C);
|
||||
break;
|
||||
case 6001:
|
||||
Play_CameraChangeSetting(play, subCamId, CAM_SET_CS_3);
|
||||
func_8002DF54(play, NULL, 8);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_8);
|
||||
Actor_GetWorld(&spA0, actor);
|
||||
if (spA0.pos.z > -750.0f) {
|
||||
OnePointCutscene_SetCsCamPoints(subCam, D_801208E8, D_801208E4, D_801206A0, D_80120820);
|
||||
|
@ -651,7 +651,7 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act
|
|||
break;
|
||||
case 3400:
|
||||
Play_CameraChangeSetting(play, subCamId, CAM_SET_CS_3);
|
||||
func_8002DF38(play, &player->actor, 8);
|
||||
func_8002DF38(play, &player->actor, PLAYER_CSMODE_8);
|
||||
OnePointCutscene_SetCsCamPoints(subCam, D_8012069C | 0x2000, D_80120698, D_801204D4, D_801205B4);
|
||||
OnePointCutscene_Vec3sToVec3f(&mainCam->eye, &D_801205B4[D_80120694 - 2].pos);
|
||||
OnePointCutscene_Vec3sToVec3f(&mainCam->at, &D_801204D4[D_80120694 - 2].pos);
|
||||
|
@ -667,12 +667,12 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act
|
|||
csInfo->keyFrames = D_80121DB4;
|
||||
csInfo->keyFrameCnt = 9;
|
||||
|
||||
func_8002DF54(play, NULL, 8);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_8);
|
||||
func_800C0808(play, subCamId, player, CAM_SET_CS_C);
|
||||
break;
|
||||
case 3310:
|
||||
Play_CameraChangeSetting(play, subCamId, CAM_SET_FIRE_STAIRCASE);
|
||||
func_8002DF54(play, NULL, 8);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_8);
|
||||
Play_CopyCamera(play, subCamId, CAM_ID_MAIN);
|
||||
|
||||
i = Quake_Request(subCam, QUAKE_TYPE_1);
|
||||
|
@ -705,7 +705,7 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act
|
|||
csInfo->keyFrames = D_80121FBC;
|
||||
csInfo->keyFrameCnt = 4;
|
||||
|
||||
func_8002DF54(play, NULL, 8);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_8);
|
||||
func_800C0808(play, subCamId, player, CAM_SET_CS_C);
|
||||
|
||||
i = Quake_Request(subCam, QUAKE_TYPE_3);
|
||||
|
@ -717,7 +717,7 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act
|
|||
csInfo->keyFrames = D_8012205C;
|
||||
csInfo->keyFrameCnt = 3;
|
||||
|
||||
func_8002DF38(play, &player->actor, 8);
|
||||
func_8002DF38(play, &player->actor, PLAYER_CSMODE_8);
|
||||
func_800C0808(play, subCamId, player, CAM_SET_CS_C);
|
||||
break;
|
||||
case 3350:
|
||||
|
@ -732,7 +732,7 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act
|
|||
D_801220D4[1].eyeTargetInit.y = 80.0f;
|
||||
D_801220D4[1].eyeTargetInit.x = -D_801220D4[1].eyeTargetInit.x;
|
||||
}
|
||||
func_8002DF54(play, NULL, 8);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_8);
|
||||
|
||||
csInfo->keyFrames = D_801220D4;
|
||||
csInfo->keyFrameCnt = 5;
|
||||
|
@ -743,14 +743,14 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act
|
|||
csInfo->keyFrames = D_8012219C;
|
||||
csInfo->keyFrameCnt = 7;
|
||||
|
||||
func_8002DF38(play, &player->actor, 8);
|
||||
func_8002DF38(play, &player->actor, PLAYER_CSMODE_8);
|
||||
func_800C0808(play, subCamId, player, CAM_SET_CS_C);
|
||||
break;
|
||||
case 3410:
|
||||
csInfo->keyFrames = D_801222B4;
|
||||
csInfo->keyFrameCnt = 5;
|
||||
|
||||
func_8002DF54(play, NULL, 8);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_8);
|
||||
func_800C0808(play, subCamId, player, CAM_SET_CS_C);
|
||||
|
||||
i = Quake_Request(subCam, QUAKE_TYPE_1);
|
||||
|
@ -762,7 +762,7 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act
|
|||
csInfo->keyFrames = D_8012237C;
|
||||
csInfo->keyFrameCnt = 2;
|
||||
|
||||
func_8002DF38(play, &player->actor, 8);
|
||||
func_8002DF38(play, &player->actor, PLAYER_CSMODE_8);
|
||||
func_800C0808(play, subCamId, player, CAM_SET_CS_C);
|
||||
|
||||
i = Quake_Request(subCam, QUAKE_TYPE_1);
|
||||
|
@ -774,7 +774,7 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act
|
|||
csInfo->keyFrames = D_801223CC;
|
||||
csInfo->keyFrameCnt = 6;
|
||||
|
||||
func_8002DF54(play, NULL, 8);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_8);
|
||||
func_800C0808(play, subCamId, player, CAM_SET_CS_C);
|
||||
player->stateFlags1 |= PLAYER_STATE1_29;
|
||||
player->actor.freezeTimer = 90;
|
||||
|
@ -788,7 +788,7 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act
|
|||
csInfo->keyFrames = D_801224BC;
|
||||
csInfo->keyFrameCnt = 7;
|
||||
|
||||
func_8002DF54(play, NULL, 8);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_8);
|
||||
func_800C0808(play, subCamId, player, CAM_SET_CS_C);
|
||||
|
||||
i = Quake_Request(subCam, QUAKE_TYPE_1);
|
||||
|
@ -802,17 +802,17 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act
|
|||
|
||||
player->actor.shape.rot.y = player->actor.world.rot.y = player->currentYaw = 0x3FFC;
|
||||
func_800C0808(play, subCamId, player, CAM_SET_CS_C);
|
||||
func_8002DF54(play, NULL, 8);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_8);
|
||||
break;
|
||||
case 4110:
|
||||
csInfo->keyFrames = D_8012269C;
|
||||
csInfo->keyFrameCnt = 3;
|
||||
|
||||
func_8002DF38(play, &player->actor, 8);
|
||||
func_8002DF38(play, &player->actor, PLAYER_CSMODE_8);
|
||||
func_800C0808(play, subCamId, player, CAM_SET_CS_C);
|
||||
break;
|
||||
case 4120:
|
||||
func_8002DF54(play, NULL, 8);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_8);
|
||||
D_80122714[1].timerInit = 80;
|
||||
csInfo->keyFrames = D_80122714;
|
||||
csInfo->keyFrameCnt = 4;
|
||||
|
@ -830,7 +830,7 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act
|
|||
csInfo->keyFrames = D_801228A4;
|
||||
csInfo->keyFrameCnt = 5;
|
||||
|
||||
func_8002DF54(play, NULL, 8);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_8);
|
||||
Camera_ChangeMode(mainCam, CAM_MODE_NORMAL);
|
||||
func_800C0808(play, subCamId, player, CAM_SET_CS_C);
|
||||
break;
|
||||
|
@ -838,7 +838,7 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act
|
|||
csInfo->keyFrames = D_8012296C;
|
||||
csInfo->keyFrameCnt = 4;
|
||||
|
||||
func_8002DF54(play, NULL, 8);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_8);
|
||||
Camera_ChangeMode(mainCam, CAM_MODE_NORMAL);
|
||||
func_800C0808(play, subCamId, player, CAM_SET_CS_C);
|
||||
break;
|
||||
|
@ -846,7 +846,7 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act
|
|||
csInfo->keyFrames = D_80122A0C;
|
||||
csInfo->keyFrameCnt = 2;
|
||||
|
||||
func_8002DF54(play, NULL, 8);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_8);
|
||||
Camera_ChangeMode(mainCam, CAM_MODE_NORMAL);
|
||||
func_800C0808(play, subCamId, player, CAM_SET_CS_C);
|
||||
break;
|
||||
|
@ -854,7 +854,7 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act
|
|||
csInfo->keyFrames = D_80122A5C;
|
||||
csInfo->keyFrameCnt = 8;
|
||||
|
||||
func_8002DF38(play, &player->actor, 8);
|
||||
func_8002DF38(play, &player->actor, PLAYER_CSMODE_8);
|
||||
Camera_ChangeMode(mainCam, CAM_MODE_NORMAL);
|
||||
func_800C0808(play, subCamId, player, CAM_SET_CS_C);
|
||||
break;
|
||||
|
@ -862,7 +862,7 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act
|
|||
csInfo->keyFrames = D_80122B9C;
|
||||
csInfo->keyFrameCnt = 3;
|
||||
|
||||
func_8002DF38(play, &player->actor, 8);
|
||||
func_8002DF38(play, &player->actor, PLAYER_CSMODE_8);
|
||||
Camera_ChangeMode(mainCam, CAM_MODE_NORMAL);
|
||||
func_800C0808(play, subCamId, player, CAM_SET_CS_C);
|
||||
break;
|
||||
|
@ -884,7 +884,7 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act
|
|||
csInfo->keyFrameCnt = 1;
|
||||
|
||||
func_800C0808(play, subCamId, player, CAM_SET_CS_C);
|
||||
func_8002DF38(play, &player->actor, 1);
|
||||
func_8002DF38(play, &player->actor, PLAYER_CSMODE_1);
|
||||
|
||||
i = Quake_Request(subCam, QUAKE_TYPE_3);
|
||||
Quake_SetSpeed(i, 12000);
|
||||
|
@ -895,11 +895,11 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act
|
|||
csInfo->keyFrames = D_80122C8C;
|
||||
csInfo->keyFrameCnt = 1;
|
||||
|
||||
func_8002DF54(play, NULL, 8);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_8);
|
||||
func_800C0808(play, subCamId, player, CAM_SET_CS_C);
|
||||
break;
|
||||
case 3260:
|
||||
func_8002DF54(play, NULL, 8);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_8);
|
||||
D_80122CB4[1].timerInit = timer - 5;
|
||||
|
||||
csInfo->keyFrames = D_80122CB4;
|
||||
|
@ -908,7 +908,7 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act
|
|||
func_800C0808(play, subCamId, player, CAM_SET_CS_C);
|
||||
break;
|
||||
case 3261:
|
||||
func_8002DF54(play, NULL, 8);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_8);
|
||||
D_80122D04[1].timerInit = timer - 10;
|
||||
|
||||
csInfo->keyFrames = D_80122D04;
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1298,10 +1298,9 @@ void Interface_LoadItemIcon1(PlayState* play, u16 button) {
|
|||
InterfaceContext* interfaceCtx = &play->interfaceCtx;
|
||||
|
||||
osCreateMesgQueue(&interfaceCtx->loadQueue, &interfaceCtx->loadMsg, 1);
|
||||
DmaMgr_RequestAsync(&interfaceCtx->dmaRequest_160, interfaceCtx->iconItemSegment + button * ICON_ITEM_TEX_SIZE,
|
||||
(uintptr_t)_icon_item_staticSegmentRomStart +
|
||||
(gSaveContext.equips.buttonItems[button] * ICON_ITEM_TEX_SIZE),
|
||||
ICON_ITEM_TEX_SIZE, 0, &interfaceCtx->loadQueue, NULL, "../z_parameter.c", 1171);
|
||||
DmaMgr_RequestAsync(&interfaceCtx->dmaRequest_160, interfaceCtx->iconItemSegment + (button * ITEM_ICON_SIZE),
|
||||
GET_ITEM_ICON_VROM(gSaveContext.equips.buttonItems[button]), ITEM_ICON_SIZE, 0,
|
||||
&interfaceCtx->loadQueue, NULL, "../z_parameter.c", 1171);
|
||||
osRecvMesg(&interfaceCtx->loadQueue, NULL, OS_MESG_BLOCK);
|
||||
}
|
||||
|
||||
|
@ -1309,10 +1308,9 @@ void Interface_LoadItemIcon2(PlayState* play, u16 button) {
|
|||
InterfaceContext* interfaceCtx = &play->interfaceCtx;
|
||||
|
||||
osCreateMesgQueue(&interfaceCtx->loadQueue, &interfaceCtx->loadMsg, 1);
|
||||
DmaMgr_RequestAsync(&interfaceCtx->dmaRequest_180, interfaceCtx->iconItemSegment + button * ICON_ITEM_TEX_SIZE,
|
||||
(uintptr_t)_icon_item_staticSegmentRomStart +
|
||||
(gSaveContext.equips.buttonItems[button] * ICON_ITEM_TEX_SIZE),
|
||||
ICON_ITEM_TEX_SIZE, 0, &interfaceCtx->loadQueue, NULL, "../z_parameter.c", 1193);
|
||||
DmaMgr_RequestAsync(&interfaceCtx->dmaRequest_180, interfaceCtx->iconItemSegment + (button * ITEM_ICON_SIZE),
|
||||
GET_ITEM_ICON_VROM(gSaveContext.equips.buttonItems[button]), ITEM_ICON_SIZE, 0,
|
||||
&interfaceCtx->loadQueue, NULL, "../z_parameter.c", 1193);
|
||||
osRecvMesg(&interfaceCtx->loadQueue, NULL, OS_MESG_BLOCK);
|
||||
}
|
||||
|
||||
|
@ -3377,8 +3375,8 @@ void Interface_Draw(PlayState* play) {
|
|||
gSPVertex(OVERLAY_DISP++, &pauseCtx->cursorVtx[PAUSE_QUAD_CURSOR_4 * 4], 4, 0);
|
||||
|
||||
gDPLoadTextureBlock(OVERLAY_DISP++, gItemIcons[pauseCtx->equipTargetItem], G_IM_FMT_RGBA, G_IM_SIZ_32b,
|
||||
32, 32, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK,
|
||||
G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
|
||||
ITEM_ICON_WIDTH, ITEM_ICON_HEIGHT, 0, G_TX_NOMIRROR | G_TX_WRAP,
|
||||
G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
|
||||
} else {
|
||||
// Magic Arrow Equip Effect
|
||||
svar1 = pauseCtx->equipTargetItem - 0xBF;
|
||||
|
@ -3803,7 +3801,7 @@ void Interface_Draw(PlayState* play) {
|
|||
gSaveContext.subTimerState = SUBTIMER_STATE_RESPAWN;
|
||||
gSaveContext.cutsceneIndex = 0;
|
||||
Message_StartTextbox(play, 0x71B0, NULL);
|
||||
func_8002DF54(play, NULL, 8);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_8);
|
||||
} else {
|
||||
sSubTimerStateTimer = 40;
|
||||
gSaveContext.subTimerState = SUBTIMER_STATE_STOP;
|
||||
|
|
|
@ -488,7 +488,7 @@ void Player_SetBootData(PlayState* play, Player* this) {
|
|||
}
|
||||
|
||||
s32 Player_InBlockingCsMode(PlayState* play, Player* this) {
|
||||
return (this->stateFlags1 & (PLAYER_STATE1_7 | PLAYER_STATE1_29)) || (this->csMode != 0) ||
|
||||
return (this->stateFlags1 & (PLAYER_STATE1_7 | PLAYER_STATE1_29)) || (this->csMode != PLAYER_CSMODE_NONE) ||
|
||||
(play->transitionTrigger == TRANS_TRIGGER_START) || (this->stateFlags1 & PLAYER_STATE1_0) ||
|
||||
(this->stateFlags3 & PLAYER_STATE3_7) ||
|
||||
((gSaveContext.magicState != MAGIC_STATE_IDLE) && (Player_ActionToMagicSpell(this, this->itemAction) >= 0));
|
||||
|
@ -577,7 +577,7 @@ void func_8008EC70(Player* this) {
|
|||
}
|
||||
|
||||
void Player_SetEquipmentData(PlayState* play, Player* this) {
|
||||
if (this->csMode != 0x56) {
|
||||
if (this->csMode != PLAYER_CSMODE_86) {
|
||||
this->currentShield = SHIELD_EQUIP_TO_PLAYER(CUR_EQUIP_VALUE(EQUIP_TYPE_SHIELD));
|
||||
this->currentTunic = TUNIC_EQUIP_TO_PLAYER(CUR_EQUIP_VALUE(EQUIP_TYPE_TUNIC));
|
||||
this->currentBoots = BOOTS_EQUIP_TO_PLAYER(CUR_EQUIP_VALUE(EQUIP_TYPE_BOOTS));
|
||||
|
|
|
@ -269,7 +269,7 @@ void Scene_CommandObjectList(PlayState* play, SceneCmd* cmd) {
|
|||
status2++;
|
||||
}
|
||||
play->objectCtx.num = i;
|
||||
func_80031A28(play, &play->actorCtx);
|
||||
Actor_KillAllWithMissingObject(play, &play->actorCtx);
|
||||
|
||||
continue;
|
||||
}
|
||||
|
|
|
@ -1,12 +1,6 @@
|
|||
#include "global.h"
|
||||
#include "ultra64/asm.h"
|
||||
|
||||
__OSThreadTail __osThreadTail = { NULL, OS_PRIORITY_THREADTAIL };
|
||||
OSThread* __osRunQueue = (OSThread*)&__osThreadTail;
|
||||
OSThread* __osActiveQueue = (OSThread*)&__osThreadTail;
|
||||
OSThread* __osRunningThread = NULL;
|
||||
OSThread* __osFaultedThread = NULL;
|
||||
|
||||
void osCreateThread(OSThread* thread, OSId id, void (*entry)(void*), void* arg, void* sp, OSPri pri) {
|
||||
register u32 prevInt;
|
||||
OSIntMask mask;
|
||||
|
|
|
@ -3,13 +3,13 @@
|
|||
#define STEP 0x100000
|
||||
|
||||
u32 osGetMemSize(void) {
|
||||
u32* ptr;
|
||||
vu32* ptr;
|
||||
u32 size = 0x400000;
|
||||
u32 data0;
|
||||
u32 data1;
|
||||
|
||||
while (size < 0x800000) {
|
||||
ptr = (u32*)(0xA0000000 + size);
|
||||
ptr = (vu32*)(K1BASE + size);
|
||||
|
||||
data0 = *ptr;
|
||||
data1 = ptr[STEP / 4 - 1];
|
||||
|
|
|
@ -1,5 +1,11 @@
|
|||
#include "global.h"
|
||||
|
||||
__OSThreadTail __osThreadTail = { NULL, OS_PRIORITY_THREADTAIL };
|
||||
OSThread* __osRunQueue = (OSThread*)&__osThreadTail;
|
||||
OSThread* __osActiveQueue = (OSThread*)&__osThreadTail;
|
||||
OSThread* __osRunningThread = NULL;
|
||||
OSThread* __osFaultedThread = NULL;
|
||||
|
||||
void __osDequeueThread(OSThread** queue, OSThread* thread) {
|
||||
register OSThread** a2 = queue;
|
||||
register OSThread* a3 = *a2;
|
|
@ -254,7 +254,7 @@ void BgBreakwall_Wait(BgBreakwall* this, PlayState* play) {
|
|||
gSaveContext.cutsceneTrigger = 1;
|
||||
Audio_PlaySfxGeneral(NA_SE_SY_CORRECT_CHIME, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
|
||||
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
|
||||
func_8002DF54(play, NULL, 0x31);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_49);
|
||||
}
|
||||
|
||||
if (this->dyna.actor.params < 0) {
|
||||
|
|
|
@ -191,7 +191,7 @@ void BgDyYoseizo_CheckMagicAcquired(BgDyYoseizo* this, PlayState* play) {
|
|||
return;
|
||||
}
|
||||
}
|
||||
func_8002DF54(play, &this->actor, 1);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_1);
|
||||
this->actionFunc = BgDyYoseizo_ChooseType;
|
||||
}
|
||||
}
|
||||
|
@ -199,7 +199,7 @@ void BgDyYoseizo_CheckMagicAcquired(BgDyYoseizo* this, PlayState* play) {
|
|||
void BgDyYoseizo_ChooseType(BgDyYoseizo* this, PlayState* play) {
|
||||
s32 givingReward;
|
||||
|
||||
func_8002DF54(play, &this->actor, 1);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_1);
|
||||
// "Mode"
|
||||
osSyncPrintf(VT_FGCOL(YELLOW) "☆☆☆☆☆ もうど ☆☆☆☆☆ %d\n" VT_RST, play->msgCtx.ocarinaMode);
|
||||
givingReward = false;
|
||||
|
@ -315,12 +315,12 @@ void BgDyYoseizo_SetupSpinGrow_NoReward(BgDyYoseizo* this, PlayState* play) {
|
|||
}
|
||||
|
||||
Audio_PlayActorSfx2(&this->actor, NA_SE_VO_FR_LAUGH_0);
|
||||
func_8002DF54(play, &this->actor, 1);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_1);
|
||||
this->actionFunc = BgDyYoseizo_SpinGrow_NoReward;
|
||||
}
|
||||
|
||||
void BgDyYoseizo_SpinGrow_NoReward(BgDyYoseizo* this, PlayState* play) {
|
||||
func_8002DF54(play, &this->actor, 1);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_1);
|
||||
Math_ApproachF(&this->actor.world.pos.y, this->grownHeight, this->heightFraction, 100.0f);
|
||||
Math_ApproachF(&this->scale, 0.035f, this->scaleFraction, 0.005f);
|
||||
Math_ApproachF(&this->heightFraction, 0.8f, 0.1f, 0.02f);
|
||||
|
@ -346,7 +346,7 @@ void BgDyYoseizo_SpinGrow_NoReward(BgDyYoseizo* this, PlayState* play) {
|
|||
void BgDyYoseizo_CompleteSpinGrow_NoReward(BgDyYoseizo* this, PlayState* play) {
|
||||
f32 curFrame = this->skelAnime.curFrame;
|
||||
|
||||
func_8002DF54(play, &this->actor, 1);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_1);
|
||||
|
||||
if ((this->frameCount * 1273.0f) <= this->bobTimer) {
|
||||
this->bobTimer = 0.0f;
|
||||
|
@ -360,7 +360,7 @@ void BgDyYoseizo_CompleteSpinGrow_NoReward(BgDyYoseizo* this, PlayState* play) {
|
|||
}
|
||||
|
||||
void BgDyYoseizo_SetupGreetPlayer_NoReward(BgDyYoseizo* this, PlayState* play) {
|
||||
func_8002DF54(play, &this->actor, 1);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_1);
|
||||
|
||||
if (play->sceneId == SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC) {
|
||||
this->frameCount = Animation_GetLastFrame(&gGreatFairySittingAnim);
|
||||
|
@ -380,7 +380,7 @@ void BgDyYoseizo_SetupGreetPlayer_NoReward(BgDyYoseizo* this, PlayState* play) {
|
|||
}
|
||||
|
||||
void BgDyYoseizo_GreetPlayer_NoReward(BgDyYoseizo* this, PlayState* play) {
|
||||
func_8002DF54(play, &this->actor, 1);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_1);
|
||||
this->bobTimer = this->skelAnime.curFrame * 1273.0f;
|
||||
|
||||
if ((this->frameCount * 1273.0f) <= this->bobTimer) {
|
||||
|
@ -547,7 +547,7 @@ void BgDyYoseizo_Vanish(BgDyYoseizo* this, PlayState* play) {
|
|||
Actor* findOcarinaSpot;
|
||||
|
||||
if (this->vanishTimer == 0) {
|
||||
func_8002DF54(play, &this->actor, 7);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_7);
|
||||
play->envCtx.lightSettingOverride = 0;
|
||||
findOcarinaSpot = play->actorCtx.actorLists[ACTORCAT_PROP].head;
|
||||
|
||||
|
@ -569,7 +569,7 @@ void BgDyYoseizo_SetupSpinGrow_Reward(BgDyYoseizo* this, PlayState* play) {
|
|||
if (play->csCtx.state != CS_STATE_IDLE) {
|
||||
if ((play->csCtx.npcActions[0] != NULL) && (play->csCtx.npcActions[0]->action == 2)) {
|
||||
this->actor.draw = BgDyYoseizo_Draw;
|
||||
func_8002DF54(play, &this->actor, 1);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_1);
|
||||
this->finishedSpinGrow = false;
|
||||
|
||||
if (play->sceneId == SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC) {
|
||||
|
|
|
@ -239,7 +239,7 @@ void BgGndIceblock_Idle(BgGndIceblock* this, PlayState* play) {
|
|||
if (this->dyna.unk_150 > 0.0f) {
|
||||
BgGndIceblock_SetNextPosition(this);
|
||||
if (Actor_WorldDistXZToPoint(&this->dyna.actor, &this->targetPos) > 1.0f) {
|
||||
func_8002DF54(play, &this->dyna.actor, 8);
|
||||
func_8002DF54(play, &this->dyna.actor, PLAYER_CSMODE_8);
|
||||
this->actionFunc = BgGndIceblock_Slide;
|
||||
}
|
||||
}
|
||||
|
@ -280,7 +280,7 @@ void BgGndIceblock_Fall(BgGndIceblock* this, PlayState* play) {
|
|||
thisx->world.pos.y = thisx->home.pos.y - 100.0f;
|
||||
thisx->world.pos.z = thisx->home.pos.z;
|
||||
if (Player_InCsMode(play)) {
|
||||
func_8002DF54(play, thisx, 7);
|
||||
func_8002DF54(play, thisx, PLAYER_CSMODE_7);
|
||||
}
|
||||
this->actionFunc = BgGndIceblock_Reset;
|
||||
}
|
||||
|
@ -293,7 +293,7 @@ void BgGndIceblock_Hole(BgGndIceblock* this, PlayState* play) {
|
|||
if (Math_StepToF(&thisx->world.pos.y, thisx->home.pos.y - 100.0f, thisx->velocity.y)) {
|
||||
thisx->velocity.y = 0.0f;
|
||||
if (Player_InCsMode(play)) {
|
||||
func_8002DF54(play, thisx, 7);
|
||||
func_8002DF54(play, thisx, PLAYER_CSMODE_7);
|
||||
}
|
||||
this->actionFunc = BgGndIceblock_Idle;
|
||||
}
|
||||
|
@ -317,7 +317,7 @@ void BgGndIceblock_Slide(BgGndIceblock* this, PlayState* play) {
|
|||
switch (BgGndIceblock_NextAction(this)) {
|
||||
case GNDICE_IDLE:
|
||||
this->actionFunc = BgGndIceblock_Idle;
|
||||
func_8002DF54(play, thisx, 7);
|
||||
func_8002DF54(play, thisx, PLAYER_CSMODE_7);
|
||||
break;
|
||||
case GNDICE_FALL:
|
||||
this->actionFunc = BgGndIceblock_Fall;
|
||||
|
|
|
@ -367,7 +367,7 @@ void BgHeavyBlock_LiftedUp(BgHeavyBlock* this, PlayState* play) {
|
|||
|
||||
this->timer++;
|
||||
|
||||
func_8002DF54(play, &player->actor, 8);
|
||||
func_8002DF54(play, &player->actor, PLAYER_CSMODE_8);
|
||||
|
||||
// if parent is NULL, link threw it
|
||||
if (Actor_HasNoParent(&this->dyna.actor, play)) {
|
||||
|
|
|
@ -138,7 +138,7 @@ void BgHidanDalm_Wait(BgHidanDalm* this, PlayState* play) {
|
|||
this->dyna.actor.world.pos.x += 32.5f * Math_SinS(this->dyna.actor.world.rot.y);
|
||||
this->dyna.actor.world.pos.z += 32.5f * Math_CosS(this->dyna.actor.world.rot.y);
|
||||
|
||||
func_8002DF54(play, &this->dyna.actor, 8);
|
||||
func_8002DF54(play, &this->dyna.actor, PLAYER_CSMODE_8);
|
||||
this->dyna.actor.flags |= ACTOR_FLAG_4;
|
||||
this->actionFunc = BgHidanDalm_Shrink;
|
||||
this->dyna.actor.bgCheckFlags &= ~BGCHECKFLAG_GROUND_TOUCH;
|
||||
|
@ -159,7 +159,7 @@ void BgHidanDalm_Shrink(BgHidanDalm* this, PlayState* play) {
|
|||
Vec3f pos;
|
||||
|
||||
if (Math_StepToF(&this->dyna.actor.scale.x, 0.0f, 0.004f)) {
|
||||
func_8002DF54(play, &this->dyna.actor, 7);
|
||||
func_8002DF54(play, &this->dyna.actor, PLAYER_CSMODE_7);
|
||||
Actor_Kill(&this->dyna.actor);
|
||||
}
|
||||
|
||||
|
|
|
@ -125,7 +125,7 @@ void BgIceObjects_CheckPits(BgIceObjects* this, PlayState* play) {
|
|||
thisx->world.pos.y = thisx->home.pos.y - 60.0f;
|
||||
thisx->world.pos.z = thisx->home.pos.z;
|
||||
if (thisx->params != 0) {
|
||||
func_8002DF54(play, thisx, 7);
|
||||
func_8002DF54(play, thisx, PLAYER_CSMODE_7);
|
||||
}
|
||||
this->actionFunc = BgIceObjects_Reset;
|
||||
}
|
||||
|
@ -142,7 +142,7 @@ void BgIceObjects_Idle(BgIceObjects* this, PlayState* play) {
|
|||
BgIceObjects_SetNextTarget(this, play);
|
||||
if (Actor_WorldDistXZToPoint(thisx, &this->targetPos) > 1.0f) {
|
||||
thisx->flags |= ACTOR_FLAG_4;
|
||||
func_8002DF54(play, thisx, 8);
|
||||
func_8002DF54(play, thisx, PLAYER_CSMODE_8);
|
||||
thisx->params = 1;
|
||||
this->actionFunc = BgIceObjects_Slide;
|
||||
}
|
||||
|
@ -172,7 +172,7 @@ void BgIceObjects_Slide(BgIceObjects* this, PlayState* play) {
|
|||
thisx->flags &= ~ACTOR_FLAG_4;
|
||||
}
|
||||
thisx->params = 0;
|
||||
func_8002DF54(play, thisx, 7);
|
||||
func_8002DF54(play, thisx, PLAYER_CSMODE_7);
|
||||
Audio_PlayActorSfx2(thisx, NA_SE_EV_BLOCK_BOUND);
|
||||
if ((fabsf(thisx->world.pos.x + 1387.0f) < 1.0f) && (fabsf(thisx->world.pos.z + 260.0f) < 1.0f)) {
|
||||
this->actionFunc = BgIceObjects_Stuck;
|
||||
|
|
|
@ -164,7 +164,7 @@ void BgMoriBigst_Fall(BgMoriBigst* this, PlayState* play) {
|
|||
BgMoriBigst_SetupLanding(this, play);
|
||||
Audio_PlayActorSfx2(&this->dyna.actor, NA_SE_EV_STONE_BOUND);
|
||||
OnePointCutscene_Init(play, 1020, 8, &this->dyna.actor, CAM_ID_MAIN);
|
||||
func_8002DF38(play, NULL, 0x3C);
|
||||
func_8002DF38(play, NULL, PLAYER_CSMODE_60);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -95,7 +95,7 @@ void BgMoriKaitenkabe_Wait(BgMoriKaitenkabe* this, PlayState* play) {
|
|||
this->timer++;
|
||||
if ((this->timer > 28) && !Player_InCsMode(play)) {
|
||||
BgMoriKaitenkabe_SetupRotate(this);
|
||||
func_8002DF54(play, &this->dyna.actor, 8);
|
||||
func_8002DF54(play, &this->dyna.actor, PLAYER_CSMODE_8);
|
||||
Math_Vec3f_Copy(&this->lockedPlayerPos, &player->actor.world.pos);
|
||||
push.x = Math_SinS(this->dyna.unk_158);
|
||||
push.y = 0.0f;
|
||||
|
@ -129,7 +129,7 @@ void BgMoriKaitenkabe_Rotate(BgMoriKaitenkabe* this, PlayState* play) {
|
|||
Math_StepToF(&this->rotSpeed, 0.6f, 0.02f);
|
||||
if (Math_StepToF(&this->rotYdeg, this->rotDirection * 45.0f, this->rotSpeed)) {
|
||||
BgMoriKaitenkabe_SetupWait(this);
|
||||
func_8002DF54(play, thisx, 7);
|
||||
func_8002DF54(play, thisx, PLAYER_CSMODE_7);
|
||||
if (this->rotDirection > 0.0f) {
|
||||
thisx->home.rot.y += 0x2000;
|
||||
} else {
|
||||
|
|
|
@ -320,7 +320,7 @@ void BgPoEvent_BlockFall(BgPoEvent* this, PlayState* play) {
|
|||
if (firstFall == 0) {
|
||||
firstFall = 1;
|
||||
} else {
|
||||
func_8002DF54(play, &GET_PLAYER(play)->actor, 7);
|
||||
func_8002DF54(play, &GET_PLAYER(play)->actor, PLAYER_CSMODE_7);
|
||||
}
|
||||
}
|
||||
this->direction = 0;
|
||||
|
@ -356,7 +356,7 @@ void BgPoEvent_BlockIdle(BgPoEvent* this, PlayState* play) {
|
|||
if (sPuzzleState == 0x10) {
|
||||
sPuzzleState = 0x40;
|
||||
Audio_PlayActorSfx2(&this->dyna.actor, NA_SE_EV_BLOCK_RISING);
|
||||
func_8002DF54(play, &player->actor, 8);
|
||||
func_8002DF54(play, &player->actor, PLAYER_CSMODE_8);
|
||||
}
|
||||
} else if (this->dyna.unk_150 != 0.0f) {
|
||||
if (this->direction == 0) {
|
||||
|
@ -449,7 +449,7 @@ void BgPoEvent_AmyWait(BgPoEvent* this, PlayState* play) {
|
|||
if (this->collider.base.acFlags & AC_HIT) {
|
||||
sPuzzleState |= 0x20;
|
||||
this->timer = 5;
|
||||
Actor_SetColorFilter(&this->dyna.actor, 0x4000, 0xFF, 0, 5);
|
||||
Actor_SetColorFilter(&this->dyna.actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 5);
|
||||
Audio_PlayActorSfx2(&this->dyna.actor, NA_SE_EN_PO_LAUGH2);
|
||||
this->actionFunc = BgPoEvent_AmyPuzzle;
|
||||
}
|
||||
|
|
|
@ -218,7 +218,7 @@ void BgSpot00Hanebasi_Update(Actor* thisx, PlayState* play) {
|
|||
SET_EVENTCHKINF(EVENTCHKINF_80);
|
||||
Flags_SetEventChkInf(EVENTCHKINF_82);
|
||||
this->actionFunc = BgSpot00Hanebasi_DoNothing;
|
||||
func_8002DF54(play, &player->actor, 8);
|
||||
func_8002DF54(play, &player->actor, PLAYER_CSMODE_8);
|
||||
play->nextEntranceIndex = ENTR_HYRULE_FIELD_0;
|
||||
gSaveContext.nextCutsceneIndex = 0xFFF1;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
|
|
|
@ -114,7 +114,7 @@ void func_808BAF40(BgTokiSwd* this, PlayState* play) {
|
|||
BgTokiSwd_SetupAction(this, func_808BB0AC);
|
||||
} else {
|
||||
if (Actor_IsFacingPlayer(&this->actor, 0x2000)) {
|
||||
func_8002F580(&this->actor, play);
|
||||
Actor_OfferCarry(&this->actor, play);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -269,7 +269,7 @@ void BossDodongo_IntroCutscene(BossDodongo* this, PlayState* play) {
|
|||
break;
|
||||
case 1:
|
||||
func_80064520(play, &play->csCtx);
|
||||
func_8002DF54(play, &this->actor, 1);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_1);
|
||||
Play_ClearAllSubCameras(play);
|
||||
this->subCamId = Play_CreateSubCamera(play);
|
||||
Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_WAIT);
|
||||
|
@ -297,11 +297,11 @@ void BossDodongo_IntroCutscene(BossDodongo* this, PlayState* play) {
|
|||
}
|
||||
|
||||
if (this->unk_198 == 110) {
|
||||
func_8002DF54(play, &this->actor, 9);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_9);
|
||||
}
|
||||
|
||||
if (this->unk_198 == 5) {
|
||||
func_8002DF54(play, &this->actor, 12);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_12);
|
||||
}
|
||||
|
||||
if (this->unk_198 < 6) {
|
||||
|
@ -417,7 +417,7 @@ void BossDodongo_IntroCutscene(BossDodongo* this, PlayState* play) {
|
|||
func_800C08AC(play, this->subCamId, 0);
|
||||
this->subCamId = SUB_CAM_ID_DONE;
|
||||
func_80064534(play, &play->csCtx);
|
||||
func_8002DF54(play, &this->actor, 7);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_7);
|
||||
BossDodongo_SetupWalk(this);
|
||||
this->unk_1DA = 50;
|
||||
this->unk_1BC = 0;
|
||||
|
@ -950,7 +950,7 @@ void BossDodongo_Update(Actor* thisx, PlayState* play2) {
|
|||
magmaScale = ((s16)(Rand_ZeroOne() * 50)) - 50;
|
||||
}
|
||||
|
||||
if (player2->csMode >= 10) {
|
||||
if (player2->csMode >= PLAYER_CSMODE_10) {
|
||||
phi_s0_3 = -1;
|
||||
}
|
||||
|
||||
|
@ -1305,7 +1305,7 @@ void BossDodongo_DeathCutscene(BossDodongo* this, PlayState* play) {
|
|||
case 0:
|
||||
this->csState = 5;
|
||||
func_80064520(play, &play->csCtx);
|
||||
func_8002DF54(play, &this->actor, 1);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_1);
|
||||
this->subCamId = Play_CreateSubCamera(play);
|
||||
Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_UNK3);
|
||||
Play_ChangeCameraStatus(play, this->subCamId, CAM_STAT_ACTIVE);
|
||||
|
@ -1615,7 +1615,7 @@ void BossDodongo_DeathCutscene(BossDodongo* this, PlayState* play) {
|
|||
this->csState = 100;
|
||||
Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_ACTIVE);
|
||||
func_80064534(play, &play->csCtx);
|
||||
func_8002DF54(play, &this->actor, 7);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_7);
|
||||
Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_DOOR_WARP1, -890.0f, -1523.76f, -3304.0f,
|
||||
0, 0, 0, WARP_DUNGEON_CHILD);
|
||||
this->skelAnime.playSpeed = 0.0f;
|
||||
|
|
|
@ -312,7 +312,7 @@ void BossFd_Fly(BossFd* this, PlayState* play) {
|
|||
|
||||
this->introState = BFD_CS_START;
|
||||
func_80064520(play, &play->csCtx);
|
||||
func_8002DF54(play, &this->actor, 8);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_8);
|
||||
this->subCamId = Play_CreateSubCamera(play);
|
||||
Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_WAIT);
|
||||
Play_ChangeCameraStatus(play, this->subCamId, CAM_STAT_ACTIVE);
|
||||
|
@ -389,7 +389,7 @@ void BossFd_Fly(BossFd* this, PlayState* play) {
|
|||
Math_ApproachF(&this->subCamShake, 2.0f, 1.0f, 0.8 * 0.01f);
|
||||
}
|
||||
if (this->timers[0] == 40) {
|
||||
func_8002DF54(play, &this->actor, 0x13);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_19);
|
||||
}
|
||||
if (this->timers[0] == 0) {
|
||||
this->introState = BFD_CS_LOOK_GROUND;
|
||||
|
@ -418,7 +418,7 @@ void BossFd_Fly(BossFd* this, PlayState* play) {
|
|||
this->timers[0] = 170;
|
||||
this->subCamVelFactor = 0.0f;
|
||||
this->subCamAccel = 0.0f;
|
||||
func_8002DF54(play, &this->actor, 0x14);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_20);
|
||||
}
|
||||
break;
|
||||
case BFD_CS_COLLAPSE:
|
||||
|
@ -468,7 +468,7 @@ void BossFd_Fly(BossFd* this, PlayState* play) {
|
|||
if (this->timers[3] == 190) {
|
||||
this->subCamAtMaxVelFrac.x = this->subCamAtMaxVelFrac.y = this->subCamAtMaxVelFrac.z = 0.05f;
|
||||
this->platformSignal = VBSIMA_KILL;
|
||||
func_8002DF54(play, &this->actor, 1);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_1);
|
||||
}
|
||||
if (this->actor.world.pos.y > 120.0f) {
|
||||
this->subCamAtNext = this->actor.world.pos;
|
||||
|
@ -538,7 +538,7 @@ void BossFd_Fly(BossFd* this, PlayState* play) {
|
|||
// BFD_CS_NONE / BOSSFD_FLY_MAIN / SUB_CAM_ID_DONE
|
||||
this->introState = this->introFlyState = this->subCamId = 0;
|
||||
func_80064534(play, &play->csCtx);
|
||||
func_8002DF54(play, &this->actor, 7);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_7);
|
||||
this->actionFunc = BossFd_Wait;
|
||||
this->handoffSignal = FD2_SIGNAL_GROUND;
|
||||
SET_EVENTCHKINF(EVENTCHKINF_73);
|
||||
|
@ -847,7 +847,7 @@ void BossFd_Fly(BossFd* this, PlayState* play) {
|
|||
Audio_PlaySfxGeneral(NA_SE_EN_VALVAISA_LAND2, &this->actor.projectedPos, 4,
|
||||
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
|
||||
&gSfxDefaultReverb);
|
||||
func_8002DF54(play, &this->actor, 5);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_5);
|
||||
for (i1 = 0; i1 < 15; i1++) {
|
||||
Vec3f sp144 = { 0.0f, 0.0f, 0.0f };
|
||||
Vec3f sp138 = { 0.0f, 0.0f, 0.0f };
|
||||
|
|
|
@ -653,7 +653,7 @@ void BossFd2_Death(BossFd2* this, PlayState* play) {
|
|||
case DEATH_START:
|
||||
this->deathState = DEATH_RETREAT;
|
||||
func_80064520(play, &play->csCtx);
|
||||
func_8002DF54(play, &this->actor, 1);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_1);
|
||||
this->subCamId = Play_CreateSubCamera(play);
|
||||
Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_WAIT);
|
||||
Play_ChangeCameraStatus(play, this->subCamId, CAM_STAT_ACTIVE);
|
||||
|
@ -747,7 +747,7 @@ void BossFd2_Death(BossFd2* this, PlayState* play) {
|
|||
this->work[FD2_ACTION_STATE]++;
|
||||
this->subCamVelFactor = 0.0f;
|
||||
this->subCamAccel = 0.02f;
|
||||
func_8002DF54(play, &bossFd->actor, 1);
|
||||
func_8002DF54(play, &bossFd->actor, PLAYER_CSMODE_1);
|
||||
}
|
||||
}
|
||||
if ((bossFd->work[BFD_ACTION_STATE] == BOSSFD_BONES_FALL) && (bossFd->timers[0] == 5)) {
|
||||
|
@ -781,7 +781,7 @@ void BossFd2_Death(BossFd2* this, PlayState* play) {
|
|||
func_800C08AC(play, this->subCamId, 0);
|
||||
this->subCamId = SUB_CAM_ID_DONE;
|
||||
func_80064534(play, &play->csCtx);
|
||||
func_8002DF54(play, &this->actor, 7);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_7);
|
||||
Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_DOOR_WARP1, 0.0f, 100.0f, 0.0f, 0, 0, 0,
|
||||
WARP_DUNGEON_ADULT);
|
||||
Flags_SetClear(play, play->roomCtx.curRoom.num);
|
||||
|
|
|
@ -558,7 +558,7 @@ void BossGanon_IntroCutscene(BossGanon* this, PlayState* play) {
|
|||
this->actor.shape.rot.y = 0;
|
||||
|
||||
func_80064520(play, &play->csCtx);
|
||||
func_8002DF54(play, &this->actor, 8);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_8);
|
||||
this->csCamIndex = Play_CreateSubCamera(play);
|
||||
Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_WAIT);
|
||||
Play_ChangeCameraStatus(play, this->csCamIndex, CAM_STAT_ACTIVE);
|
||||
|
@ -600,7 +600,7 @@ void BossGanon_IntroCutscene(BossGanon* this, PlayState* play) {
|
|||
BossGanon_SetIntroCsCamera(this, 1);
|
||||
|
||||
if (this->csTimer == 10) {
|
||||
func_8002DF54(play, &this->actor, 5);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_5);
|
||||
}
|
||||
|
||||
if (this->csTimer == 13) {
|
||||
|
@ -633,7 +633,7 @@ void BossGanon_IntroCutscene(BossGanon* this, PlayState* play) {
|
|||
break;
|
||||
}
|
||||
|
||||
func_8002DF54(play, &this->actor, 8);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_8);
|
||||
this->csState = 4;
|
||||
BossGanon_SetIntroCsCamera(this, 2);
|
||||
this->csTimer = 0;
|
||||
|
@ -665,7 +665,7 @@ void BossGanon_IntroCutscene(BossGanon* this, PlayState* play) {
|
|||
}
|
||||
|
||||
if (this->csTimer == 10) {
|
||||
func_8002DF54(play, &this->actor, 0x4B);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_75);
|
||||
}
|
||||
|
||||
if (this->csTimer == 70) {
|
||||
|
@ -731,7 +731,7 @@ void BossGanon_IntroCutscene(BossGanon* this, PlayState* play) {
|
|||
|
||||
this->csState = 9;
|
||||
this->csTimer = 0;
|
||||
func_8002DF54(play, &this->actor, 8);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_8);
|
||||
sZelda->unk_3C8 = 0;
|
||||
this->triforceType = GDF_TRIFORCE_ZELDA;
|
||||
this->fwork[GDF_TRIFORCE_SCALE] = 10.0f;
|
||||
|
@ -785,7 +785,7 @@ void BossGanon_IntroCutscene(BossGanon* this, PlayState* play) {
|
|||
player->actor.world.pos.z = 20.0f;
|
||||
|
||||
if (this->csTimer == 20) {
|
||||
func_8002DF54(play, &this->actor, 0x17);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_23);
|
||||
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_HEARTS);
|
||||
}
|
||||
|
||||
|
@ -1005,7 +1005,7 @@ void BossGanon_IntroCutscene(BossGanon* this, PlayState* play) {
|
|||
}
|
||||
|
||||
if (this->csTimer == 30) {
|
||||
func_8002DF54(play, &this->actor, 0x4A);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_74);
|
||||
}
|
||||
|
||||
if (this->csTimer <= 50) {
|
||||
|
@ -1128,7 +1128,7 @@ void BossGanon_IntroCutscene(BossGanon* this, PlayState* play) {
|
|||
func_800C08AC(play, this->csCamIndex, 0);
|
||||
this->csState = this->csCamIndex = 0;
|
||||
func_80064534(play, &play->csCtx);
|
||||
func_8002DF54(play, &this->actor, 7);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_7);
|
||||
BossGanon_SetupWait(this, play);
|
||||
}
|
||||
|
||||
|
@ -1234,7 +1234,7 @@ void BossGanon_DeathAndTowerCutscene(BossGanon* this, PlayState* play) {
|
|||
switch (this->csState) {
|
||||
case 0:
|
||||
func_80064520(play, &play->csCtx);
|
||||
func_8002DF54(play, &this->actor, 8);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_8);
|
||||
this->csCamIndex = Play_CreateSubCamera(play);
|
||||
Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_WAIT);
|
||||
Play_ChangeCameraStatus(play, this->csCamIndex, CAM_STAT_ACTIVE);
|
||||
|
@ -1469,7 +1469,7 @@ void BossGanon_DeathAndTowerCutscene(BossGanon* this, PlayState* play) {
|
|||
Audio_PlayActorSfx2(&this->actor, NA_SE_EN_GANON_BODY_SPARK - SFX_FLAG);
|
||||
|
||||
if (this->csTimer == 2) {
|
||||
func_8002DF54(play, &this->actor, 0x39);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_57);
|
||||
}
|
||||
|
||||
if (this->csTimer > 50) {
|
||||
|
@ -1505,7 +1505,7 @@ void BossGanon_DeathAndTowerCutscene(BossGanon* this, PlayState* play) {
|
|||
|
||||
case 100:
|
||||
func_80064520(play, &play->csCtx);
|
||||
func_8002DF54(play, &this->actor, 8);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_8);
|
||||
this->csCamIndex = Play_CreateSubCamera(play);
|
||||
Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_WAIT);
|
||||
Play_ChangeCameraStatus(play, this->csCamIndex, CAM_STAT_ACTIVE);
|
||||
|
@ -1594,11 +1594,11 @@ void BossGanon_DeathAndTowerCutscene(BossGanon* this, PlayState* play) {
|
|||
this->csCamAt.z = -135.0f;
|
||||
|
||||
if (this->csTimer == 5) {
|
||||
func_8002DF54(play, &this->actor, 0x4C);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_76);
|
||||
}
|
||||
|
||||
if (this->csTimer == 70) {
|
||||
func_8002DF54(play, &this->actor, 0x4D);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_77);
|
||||
}
|
||||
|
||||
if (this->csTimer == 90) {
|
||||
|
@ -1683,7 +1683,7 @@ void BossGanon_DeathAndTowerCutscene(BossGanon* this, PlayState* play) {
|
|||
|
||||
if (this->csTimer == 20) {
|
||||
sZelda->unk_3C8 = 5;
|
||||
func_8002DF54(play, &this->actor, 0x39);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_57);
|
||||
}
|
||||
|
||||
if (this->csTimer == 40) {
|
||||
|
@ -1750,7 +1750,7 @@ void BossGanon_DeathAndTowerCutscene(BossGanon* this, PlayState* play) {
|
|||
this->csState = 107;
|
||||
this->csTimer = 0;
|
||||
Message_StartTextbox(play, 0x70D2, NULL);
|
||||
func_8002DF54(play, &this->actor, 0x39);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_57);
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -1792,7 +1792,7 @@ void BossGanon_DeathAndTowerCutscene(BossGanon* this, PlayState* play) {
|
|||
this->csState = 109;
|
||||
this->csCamIndex = 0;
|
||||
func_80064534(play, &play->csCtx);
|
||||
func_8002DF54(play, &this->actor, 7);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_7);
|
||||
Flags_SetSwitch(play, 0x37);
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -196,7 +196,7 @@ void func_808FD5F4(BossGanon2* this, PlayState* play) {
|
|||
objectIdx = Object_GetIndex(&play->objectCtx, OBJECT_GANON_ANIME3);
|
||||
if (Object_IsLoaded(&play->objectCtx, objectIdx)) {
|
||||
func_80064520(play, &play->csCtx);
|
||||
func_8002DF54(play, &this->actor, 8);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_8);
|
||||
this->subCamId = Play_CreateSubCamera(play);
|
||||
Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_WAIT);
|
||||
Play_ChangeCameraStatus(play, this->subCamId, CAM_STAT_ACTIVE);
|
||||
|
@ -267,11 +267,11 @@ void func_808FD5F4(BossGanon2* this, PlayState* play) {
|
|||
}
|
||||
if (this->unk_398 == 40) {
|
||||
sZelda->unk_3C8 = 1;
|
||||
func_8002DF54(play, &this->actor, 0x4E);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_78);
|
||||
}
|
||||
if (this->unk_398 == 85) {
|
||||
sZelda->unk_3C8 = 2;
|
||||
func_8002DF54(play, &this->actor, 0x4F);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_79);
|
||||
}
|
||||
this->subCamEye.x = 930.0f;
|
||||
this->subCamEye.y = 1129.0f;
|
||||
|
@ -300,14 +300,14 @@ void func_808FD5F4(BossGanon2* this, PlayState* play) {
|
|||
}
|
||||
if (this->unk_398 == 20) {
|
||||
sZelda->unk_3C8 = 3;
|
||||
func_8002DF54(play, &this->actor, 0x50);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_80);
|
||||
}
|
||||
if (this->unk_398 == 55) {
|
||||
this->unk_39C = 4;
|
||||
this->unk_398 = 0;
|
||||
this->unk_410.x = 0.0f;
|
||||
sZelda->unk_3C8 = 4;
|
||||
func_8002DF54(play, &this->actor, 0x50);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_80);
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
|
@ -324,7 +324,7 @@ void func_808FD5F4(BossGanon2* this, PlayState* play) {
|
|||
func_800C08AC(play, this->subCamId, 0);
|
||||
this->subCamId = SUB_CAM_ID_DONE;
|
||||
func_80064534(play, &play->csCtx);
|
||||
func_8002DF54(play, &this->actor, 7);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_7);
|
||||
this->unk_39C = 5;
|
||||
this->unk_398 = 0;
|
||||
}
|
||||
|
@ -371,7 +371,7 @@ void func_808FD5F4(BossGanon2* this, PlayState* play) {
|
|||
}
|
||||
if (this->unk_398 == 30) {
|
||||
sZelda->unk_3C8 = 5;
|
||||
func_8002DF54(play, &this->actor, 0x51);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_81);
|
||||
}
|
||||
if (this->unk_398 == 50) {
|
||||
this->unk_398 = 0;
|
||||
|
@ -402,7 +402,7 @@ void func_808FD5F4(BossGanon2* this, PlayState* play) {
|
|||
func_80078884(NA_SE_EV_STONE_BOUND);
|
||||
}
|
||||
if (this->unk_398 == 30) {
|
||||
func_8002DF54(play, &this->actor, 0x52);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_82);
|
||||
}
|
||||
if (this->unk_398 == 50) {
|
||||
this->unk_398 = 0;
|
||||
|
@ -469,7 +469,7 @@ void func_808FD5F4(BossGanon2* this, PlayState* play) {
|
|||
this->subCamAt.y = player->actor.world.pos.y;
|
||||
this->subCamAt.z = player->actor.world.pos.z - 200.0f;
|
||||
if (this->unk_398 == 20) {
|
||||
func_8002DF54(play, &this->actor, 0x1E);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_30);
|
||||
}
|
||||
if (this->unk_398 == 60) {
|
||||
this->subCamEye.x = (this->actor.world.pos.x + 200.0f) - 154.0f;
|
||||
|
@ -558,7 +558,7 @@ void func_808FD5F4(BossGanon2* this, PlayState* play) {
|
|||
SkelAnime_Free(&this->skelAnime, play);
|
||||
SkelAnime_InitFlex(play, &this->skelAnime, &gGanonSkel, NULL, NULL, NULL, 0);
|
||||
BossGanon2_SetObjectSegment(this, play, OBJECT_GANON_ANIME3, false);
|
||||
func_8002DF54(play, &this->actor, 0x54);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_84);
|
||||
this->unk_314 = 3;
|
||||
}
|
||||
// fake, tricks the compiler into using stack the way we need it to
|
||||
|
@ -614,7 +614,7 @@ void func_808FD5F4(BossGanon2* this, PlayState* play) {
|
|||
this->actor.world.pos.x += 250;
|
||||
this->actor.world.pos.y = 1886.0f;
|
||||
this->unk_394 = 0.0f;
|
||||
func_8002DF54(play, &this->actor, 0x53);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_83);
|
||||
this->unk_30C = 5.0f;
|
||||
this->unk_228 = 1.0f;
|
||||
}
|
||||
|
@ -699,7 +699,7 @@ void func_808FD5F4(BossGanon2* this, PlayState* play) {
|
|||
if (this->unk_398 == 215) {
|
||||
this->unk_39C = 23;
|
||||
this->unk_224 = 0.0f;
|
||||
func_8002DF54(play, &this->actor, 0x55);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_85);
|
||||
}
|
||||
break;
|
||||
case 23:
|
||||
|
@ -719,7 +719,7 @@ void func_808FD5F4(BossGanon2* this, PlayState* play) {
|
|||
this->subCamAt.z = player->actor.world.pos.z;
|
||||
if (this->unk_398 == 228) {
|
||||
func_80078884(NA_SE_IT_SHIELD_REFLECT_SW);
|
||||
func_8002DF54(play, &this->actor, 0x56);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_86);
|
||||
Rumble_Override(0.0f, 255, 10, 50);
|
||||
}
|
||||
if (this->unk_398 >= 229) {
|
||||
|
@ -756,7 +756,7 @@ void func_808FD5F4(BossGanon2* this, PlayState* play) {
|
|||
func_80078884(NA_SE_IT_SWORD_SWING);
|
||||
}
|
||||
if (this->unk_398 == 25) {
|
||||
func_8002DF54(play, &this->actor, 0x57);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_87);
|
||||
this->unk_39C = 25;
|
||||
this->unk_398 = 0;
|
||||
}
|
||||
|
@ -804,7 +804,7 @@ void func_808FD5F4(BossGanon2* this, PlayState* play) {
|
|||
case 27:
|
||||
this->subCamUp.z = 0.0f;
|
||||
if (this->unk_398 == 4) {
|
||||
func_8002DF54(play, &this->actor, 0x58);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_88);
|
||||
}
|
||||
this->subCamEye.x = player->actor.world.pos.x - 20.0f;
|
||||
this->subCamEye.y = player->actor.world.pos.y + 50.0f;
|
||||
|
@ -877,7 +877,7 @@ void func_808FD5F4(BossGanon2* this, PlayState* play) {
|
|||
func_800C08AC(play, this->subCamId, 0);
|
||||
this->subCamId = SUB_CAM_ID_DONE;
|
||||
func_80064534(play, &play->csCtx);
|
||||
func_8002DF54(play, &this->actor, 7);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_7);
|
||||
this->unk_39C = 0;
|
||||
this->unk_337 = 1;
|
||||
func_808FFDB0(this, play);
|
||||
|
@ -1299,7 +1299,7 @@ void func_80900890(BossGanon2* this, PlayState* play) {
|
|||
this->subCamId = Play_CreateSubCamera(play);
|
||||
Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_WAIT);
|
||||
Play_ChangeCameraStatus(play, this->subCamId, CAM_STAT_ACTIVE);
|
||||
func_8002DF54(play, &this->actor, 8);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_8);
|
||||
this->unk_39C = 1;
|
||||
this->subCamEye = mainCam1->eye;
|
||||
this->subCamAt = mainCam1->at;
|
||||
|
@ -1348,7 +1348,7 @@ void func_80900890(BossGanon2* this, PlayState* play) {
|
|||
func_800C08AC(play, this->subCamId, 0);
|
||||
this->subCamId = SUB_CAM_ID_DONE;
|
||||
func_80064534(play, &play->csCtx);
|
||||
func_8002DF54(play, &this->actor, 7);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_7);
|
||||
this->unk_39C = 3;
|
||||
}
|
||||
break;
|
||||
|
@ -1359,7 +1359,7 @@ void func_80900890(BossGanon2* this, PlayState* play) {
|
|||
Play_ChangeCameraStatus(play, this->subCamId, CAM_STAT_ACTIVE);
|
||||
this->unk_39C = 11;
|
||||
this->unk_334 = 1;
|
||||
func_8002DF54(play, &this->actor, 0x60);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_96);
|
||||
this->unk_398 = 0;
|
||||
FALLTHROUGH;
|
||||
case 11:
|
||||
|
@ -1381,7 +1381,7 @@ void func_80900890(BossGanon2* this, PlayState* play) {
|
|||
func_800C08AC(play, this->subCamId, 0);
|
||||
this->subCamId = SUB_CAM_ID_DONE;
|
||||
func_80064534(play, &play->csCtx);
|
||||
func_8002DF54(play, &this->actor, 7);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_7);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -1485,7 +1485,7 @@ void func_8090120C(BossGanon2* this, PlayState* play) {
|
|||
this->subCamId = Play_CreateSubCamera(play);
|
||||
Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_WAIT);
|
||||
Play_ChangeCameraStatus(play, this->subCamId, CAM_STAT_ACTIVE);
|
||||
func_8002DF54(play, &this->actor, 8);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_8);
|
||||
this->unk_39C = 1;
|
||||
this->unk_398 = 0;
|
||||
sZelda->unk_3C8 = 9;
|
||||
|
@ -1522,7 +1522,7 @@ void func_8090120C(BossGanon2* this, PlayState* play) {
|
|||
this->skelAnime.playSpeed = 3.0f;
|
||||
}
|
||||
if (this->unk_398 == 120) {
|
||||
func_8002DF54(play, &this->actor, 0x63);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_99);
|
||||
}
|
||||
this->actor.world.rot.y = 0x4000;
|
||||
this->actor.world.pos.x = this->actor.world.pos.z = 0.0f;
|
||||
|
@ -1590,7 +1590,7 @@ void func_8090120C(BossGanon2* this, PlayState* play) {
|
|||
this->unk_39C = 5;
|
||||
this->unk_398 = 40;
|
||||
this->skelAnime.playSpeed = 1.0f;
|
||||
func_8002DF54(play, &this->actor, 0x64);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_100);
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
|
@ -1604,10 +1604,10 @@ void func_8090120C(BossGanon2* this, PlayState* play) {
|
|||
Math_ApproachZeroF(&this->unk_38C, 1.0f, 8.0f);
|
||||
}
|
||||
if (this->unk_398 == 70) {
|
||||
func_8002DF54(play, &this->actor, 0x65);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_101);
|
||||
}
|
||||
if (this->unk_398 == 150) {
|
||||
func_8002DF54(play, &this->actor, 0x66);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_102);
|
||||
}
|
||||
this->unk_30C = 10.0f;
|
||||
player->actor.world.pos.x = 250.0f;
|
||||
|
@ -1626,7 +1626,7 @@ void func_8090120C(BossGanon2* this, PlayState* play) {
|
|||
func_800C08AC(play, this->subCamId, 0);
|
||||
this->subCamId = SUB_CAM_ID_DONE;
|
||||
func_80064534(play, &play->csCtx);
|
||||
func_8002DF54(play, &this->actor, 7);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_7);
|
||||
this->unk_39C = 6;
|
||||
}
|
||||
break;
|
||||
|
@ -1645,7 +1645,7 @@ void func_8090120C(BossGanon2* this, PlayState* play) {
|
|||
this->unk_398 = 0;
|
||||
Animation_MorphToPlayOnce(&this->skelAnime, &gGanonFinalBlowAnim, 0.0f);
|
||||
this->unk_194 = Animation_GetLastFrame(&gGanonFinalBlowAnim);
|
||||
play->startPlayerCutscene(play, &this->actor, 0x61);
|
||||
play->startPlayerCutscene(play, &this->actor, PLAYER_CSMODE_97);
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
|
@ -1712,7 +1712,7 @@ void func_8090120C(BossGanon2* this, PlayState* play) {
|
|||
if (this->unk_398 == 55) {
|
||||
Animation_MorphToPlayOnce(&this->skelAnime, &gGanonDeadStartAnim, 0.0f);
|
||||
this->unk_194 = Animation_GetLastFrame(&gGanonDeadStartAnim);
|
||||
func_8002DF54(play, &this->actor, 0x62);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_98);
|
||||
this->unk_39C = 8;
|
||||
this->unk_398 = 1000;
|
||||
}
|
||||
|
|
|
@ -956,7 +956,7 @@ void BossGanondrof_Death(BossGanondrof* this, PlayState* play) {
|
|||
switch (this->deathState) {
|
||||
case DEATH_START:
|
||||
func_80064520(play, &play->csCtx);
|
||||
func_8002DF54(play, &this->actor, 1);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_1);
|
||||
this->subCamId = Play_CreateSubCamera(play);
|
||||
Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_WAIT);
|
||||
osSyncPrintf("7\n");
|
||||
|
@ -1118,7 +1118,7 @@ void BossGanondrof_Death(BossGanondrof* this, PlayState* play) {
|
|||
func_800C08AC(play, this->subCamId, 0);
|
||||
this->subCamId = SUB_CAM_ID_DONE;
|
||||
func_80064534(play, &play->csCtx);
|
||||
func_8002DF54(play, &this->actor, 7);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_7);
|
||||
Actor_Spawn(&play->actorCtx, play, ACTOR_ITEM_B_HEART, GND_BOSSROOM_CENTER_X, GND_BOSSROOM_CENTER_Y,
|
||||
GND_BOSSROOM_CENTER_Z + 200.0f, 0, 0, 0, 0);
|
||||
this->actor.child = &horse->actor;
|
||||
|
|
|
@ -629,7 +629,7 @@ void BossGoma_SetupEncounterState4(BossGoma* this, PlayState* play) {
|
|||
this->actionState = 4;
|
||||
this->actor.flags |= ACTOR_FLAG_0;
|
||||
func_80064520(play, &play->csCtx);
|
||||
func_8002DF54(play, &this->actor, 1);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_1);
|
||||
this->subCamId = Play_CreateSubCamera(play);
|
||||
Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_UNK3);
|
||||
Play_ChangeCameraStatus(play, this->subCamId, CAM_STAT_ACTIVE);
|
||||
|
@ -686,7 +686,7 @@ void BossGoma_Encounter(BossGoma* this, PlayState* play) {
|
|||
Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_DOOR_SHUTTER, 164.72f, -480.0f,
|
||||
397.68002f, 0, -0x705C, 0, 0x180);
|
||||
} else {
|
||||
func_8002DF54(play, &this->actor, 8);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_8);
|
||||
this->actionState = 1;
|
||||
}
|
||||
}
|
||||
|
@ -757,7 +757,7 @@ void BossGoma_Encounter(BossGoma* this, PlayState* play) {
|
|||
}
|
||||
|
||||
if (this->frameCount == 190) {
|
||||
func_8002DF54(play, &this->actor, 2);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_2);
|
||||
}
|
||||
|
||||
if (this->frameCount >= 228) {
|
||||
|
@ -768,7 +768,7 @@ void BossGoma_Encounter(BossGoma* this, PlayState* play) {
|
|||
func_800C08AC(play, this->subCamId, 0);
|
||||
this->subCamId = SUB_CAM_ID_DONE;
|
||||
func_80064534(play, &play->csCtx);
|
||||
func_8002DF54(play, &this->actor, 7);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_7);
|
||||
this->actionState = 3;
|
||||
}
|
||||
break;
|
||||
|
@ -964,7 +964,7 @@ void BossGoma_Encounter(BossGoma* this, PlayState* play) {
|
|||
this->disableGameplayLogic = false;
|
||||
this->patienceTimer = 200;
|
||||
func_80064534(play, &play->csCtx);
|
||||
func_8002DF54(play, &this->actor, 7);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_7);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -1053,7 +1053,7 @@ void BossGoma_Defeated(BossGoma* this, PlayState* play) {
|
|||
case 0:
|
||||
this->actionState = 1;
|
||||
func_80064520(play, &play->csCtx);
|
||||
func_8002DF54(play, &this->actor, 1);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_1);
|
||||
this->subCamId = Play_CreateSubCamera(play);
|
||||
Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_UNK3);
|
||||
Play_ChangeCameraStatus(play, this->subCamId, CAM_STAT_ACTIVE);
|
||||
|
@ -1181,7 +1181,7 @@ void BossGoma_Defeated(BossGoma* this, PlayState* play) {
|
|||
func_800C08AC(play, this->subCamId, 0);
|
||||
this->subCamId = SUB_CAM_ID_DONE;
|
||||
func_80064534(play, &play->csCtx);
|
||||
func_8002DF54(play, &this->actor, 7);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_7);
|
||||
Actor_Kill(&this->actor);
|
||||
}
|
||||
|
||||
|
|
|
@ -835,7 +835,7 @@ void BossMo_Tentacle(BossMo* this, PlayState* play) {
|
|||
if (&this->actor == player->actor.parent) {
|
||||
player->unk_850 = 0x65;
|
||||
player->actor.parent = NULL;
|
||||
player->csMode = 0;
|
||||
player->csMode = PLAYER_CSMODE_NONE;
|
||||
if (this->timers[0] == 0) {
|
||||
func_8002F6D4(play, &this->actor, 20.0f, this->actor.shape.rot.y + 0x8000, 10.0f, 0);
|
||||
}
|
||||
|
@ -865,7 +865,7 @@ void BossMo_Tentacle(BossMo* this, PlayState* play) {
|
|||
if (&this->actor == player->actor.parent) {
|
||||
player->unk_850 = 0x65;
|
||||
player->actor.parent = NULL;
|
||||
player->csMode = 0;
|
||||
player->csMode = PLAYER_CSMODE_NONE;
|
||||
}
|
||||
Math_ApproachF(&this->tentRippleSize, 0.15f, 0.5f, 0.01);
|
||||
if (this->meltIndex < 41) {
|
||||
|
@ -1225,7 +1225,7 @@ void BossMo_IntroCs(BossMo* this, PlayState* play) {
|
|||
(fabsf(player->actor.world.pos.x - -180.0f) < 40.0f))) {
|
||||
// checks if Link is on one of the four platforms
|
||||
func_80064520(play, &play->csCtx);
|
||||
func_8002DF54(play, &this->actor, 8);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_8);
|
||||
this->subCamId = Play_CreateSubCamera(play);
|
||||
Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_WAIT);
|
||||
Play_ChangeCameraStatus(play, this->subCamId, CAM_STAT_ACTIVE);
|
||||
|
@ -1333,11 +1333,11 @@ void BossMo_IntroCs(BossMo* this, PlayState* play) {
|
|||
Math_ApproachF(&this->actor.speedXZ, sp80, 1.0f, sp78);
|
||||
Math_ApproachF(&this->subCamYawRate, sp7C, 1.0f, 128.0f);
|
||||
if (this->work[MO_TENT_MOVE_TIMER] == 525) {
|
||||
func_8002DF54(play, &this->actor, 2);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_2);
|
||||
}
|
||||
if (this->work[MO_TENT_MOVE_TIMER] > 540) {
|
||||
this->csState = MO_INTRO_REVEAL;
|
||||
func_8002DF54(play, &this->actor, 1);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_1);
|
||||
sMorphaTent1->drawActor = true;
|
||||
player->actor.world.pos.x = 180.0f;
|
||||
player->actor.world.pos.z = -210.0f;
|
||||
|
@ -1446,7 +1446,7 @@ void BossMo_IntroCs(BossMo* this, PlayState* play) {
|
|||
// MO_BATTLE / SUB_CAM_ID_DONE
|
||||
this->csState = this->subCamId = 0;
|
||||
func_80064534(play, &play->csCtx);
|
||||
func_8002DF54(play, &this->actor, 7);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_7);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -1511,7 +1511,7 @@ void BossMo_DeathCs(BossMo* this, PlayState* play) {
|
|||
switch (this->csState) {
|
||||
case MO_DEATH_START:
|
||||
func_80064520(play, &play->csCtx);
|
||||
func_8002DF54(play, &this->actor, 8);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_8);
|
||||
this->subCamId = Play_CreateSubCamera(play);
|
||||
Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_WAIT);
|
||||
Play_ChangeCameraStatus(play, this->subCamId, CAM_STAT_ACTIVE);
|
||||
|
@ -1681,7 +1681,7 @@ void BossMo_DeathCs(BossMo* this, PlayState* play) {
|
|||
func_800C08AC(play, this->subCamId, 0);
|
||||
this->subCamId = SUB_CAM_ID_DONE;
|
||||
func_80064534(play, &play->csCtx);
|
||||
func_8002DF54(play, &this->actor, 7);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_7);
|
||||
sMorphaTent1->actor.world.pos.y = -1000.0f;
|
||||
}
|
||||
} else {
|
||||
|
@ -1786,7 +1786,7 @@ void BossMo_CoreCollisionCheck(BossMo* this, PlayState* play) {
|
|||
if (player->actor.parent != NULL) {
|
||||
player->unk_850 = 0x65;
|
||||
player->actor.parent = NULL;
|
||||
player->csMode = 0;
|
||||
player->csMode = PLAYER_CSMODE_NONE;
|
||||
}
|
||||
} else {
|
||||
this->actor.colChkInfo.health = 1;
|
||||
|
@ -1805,7 +1805,7 @@ void BossMo_CoreCollisionCheck(BossMo* this, PlayState* play) {
|
|||
if (player->actor.parent == &sMorphaTent1->actor) {
|
||||
player->unk_850 = 0x65;
|
||||
player->actor.parent = NULL;
|
||||
player->csMode = 0;
|
||||
player->csMode = PLAYER_CSMODE_NONE;
|
||||
}
|
||||
}
|
||||
this->work[MO_TENT_ACTION_STATE] = MO_CORE_STUNNED;
|
||||
|
|
|
@ -371,7 +371,7 @@ void BossSst_HeadSetupIntro(BossSst* this, PlayState* play) {
|
|||
player->stateFlags1 |= PLAYER_STATE1_5;
|
||||
|
||||
func_80064520(play, &play->csCtx);
|
||||
func_8002DF54(play, &this->actor, 8);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_8);
|
||||
sSubCamId = Play_CreateSubCamera(play);
|
||||
Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_WAIT);
|
||||
Play_ChangeCameraStatus(play, sSubCamId, CAM_STAT_ACTIVE);
|
||||
|
@ -404,7 +404,7 @@ void BossSst_HeadIntro(BossSst* this, PlayState* play) {
|
|||
sHands[LEFT]->actor.flags |= ACTOR_FLAG_0;
|
||||
player->stateFlags1 &= ~PLAYER_STATE1_5;
|
||||
func_80064534(play, &play->csCtx);
|
||||
func_8002DF54(play, &this->actor, 7);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_7);
|
||||
sSubCamAt.y += 30.0f;
|
||||
sSubCamAt.z += 300.0f;
|
||||
Play_CameraSetAtEye(play, sSubCamId, &sSubCamAt, &sSubCamEye);
|
||||
|
@ -814,7 +814,8 @@ void BossSst_HeadUnfreezeHand(BossSst* this, PlayState* play) {
|
|||
|
||||
void BossSst_HeadSetupStunned(BossSst* this) {
|
||||
Animation_MorphToPlayOnce(&this->skelAnime, &gBongoHeadKnockoutAnim, -5.0f);
|
||||
Actor_SetColorFilter(&this->actor, 0, 0xFF, 0, Animation_GetLastFrame(&gBongoHeadKnockoutAnim));
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 255, COLORFILTER_BUFFLAG_OPA,
|
||||
Animation_GetLastFrame(&gBongoHeadKnockoutAnim));
|
||||
this->colliderJntSph.base.atFlags &= ~(AT_ON | AT_HIT);
|
||||
this->colliderCyl.base.acFlags &= ~AC_ON;
|
||||
this->vVanish = false;
|
||||
|
@ -904,9 +905,12 @@ void BossSst_HeadVulnerable(BossSst* this, PlayState* play) {
|
|||
|
||||
void BossSst_HeadSetupDamage(BossSst* this) {
|
||||
Animation_MorphToPlayOnce(&this->skelAnime, &gBongoHeadDamageAnim, -3.0f);
|
||||
Actor_SetColorFilter(&this->actor, 0x4000, 0xFF, 0, Animation_GetLastFrame(&gBongoHeadDamageAnim));
|
||||
Actor_SetColorFilter(&sHands[LEFT]->actor, 0x4000, 0xFF, 0, Animation_GetLastFrame(&gBongoHeadDamageAnim));
|
||||
Actor_SetColorFilter(&sHands[RIGHT]->actor, 0x4000, 0xFF, 0, Animation_GetLastFrame(&gBongoHeadDamageAnim));
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA,
|
||||
Animation_GetLastFrame(&gBongoHeadDamageAnim));
|
||||
Actor_SetColorFilter(&sHands[LEFT]->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA,
|
||||
Animation_GetLastFrame(&gBongoHeadDamageAnim));
|
||||
Actor_SetColorFilter(&sHands[RIGHT]->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA,
|
||||
Animation_GetLastFrame(&gBongoHeadDamageAnim));
|
||||
this->colliderCyl.base.acFlags &= ~AC_ON;
|
||||
BossSst_HeadSfx(this, NA_SE_EN_SHADEST_DAMAGE);
|
||||
this->actionFunc = BossSst_HeadDamage;
|
||||
|
@ -1007,9 +1011,9 @@ void BossSst_HeadSetupDeath(BossSst* this, PlayState* play) {
|
|||
|
||||
Animation_MorphToLoop(&this->skelAnime, &gBongoHeadEyeOpenIdleAnim, -5.0f);
|
||||
BossSst_HeadSfx(this, NA_SE_EN_SHADEST_DEAD);
|
||||
Actor_SetColorFilter(&this->actor, 0x4000, 0xFF, 0, 60);
|
||||
Actor_SetColorFilter(&sHands[LEFT]->actor, 0x4000, 0xFF, 0, 60);
|
||||
Actor_SetColorFilter(&sHands[RIGHT]->actor, 0x4000, 0xFF, 0, 60);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 60);
|
||||
Actor_SetColorFilter(&sHands[LEFT]->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 60);
|
||||
Actor_SetColorFilter(&sHands[RIGHT]->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 60);
|
||||
this->timer = 60;
|
||||
this->colliderCyl.base.acFlags &= ~AC_ON;
|
||||
this->colliderJntSph.base.ocFlags1 &= ~OC1_ON;
|
||||
|
@ -1020,7 +1024,7 @@ void BossSst_HeadSetupDeath(BossSst* this, PlayState* play) {
|
|||
Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_WAIT);
|
||||
Play_ChangeCameraStatus(play, sSubCamId, CAM_STAT_ACTIVE);
|
||||
Play_CopyCamera(play, sSubCamId, CAM_ID_MAIN);
|
||||
func_8002DF54(play, &player->actor, 8);
|
||||
func_8002DF54(play, &player->actor, PLAYER_CSMODE_8);
|
||||
func_80064520(play, &play->csCtx);
|
||||
Math_Vec3f_Copy(&sSubCamEye, &GET_ACTIVE_CAM(play)->eye);
|
||||
this->actionFunc = BossSst_HeadDeath;
|
||||
|
@ -1183,7 +1187,7 @@ void BossSst_HeadFinish(BossSst* this, PlayState* play) {
|
|||
Play_ChangeCameraStatus(play, sSubCamId, CAM_STAT_WAIT);
|
||||
Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_ACTIVE);
|
||||
Play_ClearCamera(play, sSubCamId);
|
||||
func_8002DF54(play, &GET_PLAYER(play)->actor, 7);
|
||||
func_8002DF54(play, &GET_PLAYER(play)->actor, PLAYER_CSMODE_7);
|
||||
func_80064534(play, &play->csCtx);
|
||||
Actor_Kill(&this->actor);
|
||||
Actor_Kill(&sHands[LEFT]->actor);
|
||||
|
@ -1962,7 +1966,7 @@ void BossSst_HandSetupReel(BossSst* this) {
|
|||
Animation_MorphToPlayOnce(&this->skelAnime, sHandFlatPoses[this->actor.params], 4.0f);
|
||||
this->timer = 36;
|
||||
Math_Vec3f_Copy(&this->center, &this->actor.world.pos);
|
||||
Actor_SetColorFilter(&this->actor, 0, 0xFF, 0, 200);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 255, COLORFILTER_BUFFLAG_OPA, 200);
|
||||
this->actionFunc = BossSst_HandReel;
|
||||
}
|
||||
|
||||
|
@ -2086,7 +2090,8 @@ void BossSst_HandSetupStunned(BossSst* hand) {
|
|||
hand->colliderJntSph.base.atFlags &= ~(AT_ON | AT_HIT);
|
||||
hand->colliderJntSph.base.acFlags |= AC_ON;
|
||||
BossSst_HandSetInvulnerable(hand, true);
|
||||
Actor_SetColorFilter(&hand->actor, 0, 0xFF, 0, Animation_GetLastFrame(&gBongoHeadKnockoutAnim));
|
||||
Actor_SetColorFilter(&hand->actor, COLORFILTER_COLORFLAG_BLUE, 255, COLORFILTER_BUFFLAG_OPA,
|
||||
Animation_GetLastFrame(&gBongoHeadKnockoutAnim));
|
||||
hand->actionFunc = BossSst_HandStunned;
|
||||
}
|
||||
|
||||
|
@ -2286,7 +2291,7 @@ void BossSst_HandSetupFrozen(BossSst* this) {
|
|||
}
|
||||
|
||||
BossSst_SpawnIceCrystal(this, 0);
|
||||
Actor_SetColorFilter(&this->actor, 0, 0xFF, 0, 0xA);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 255, COLORFILTER_BUFFLAG_OPA, 10);
|
||||
this->handAngSpeed = 0;
|
||||
this->actionFunc = BossSst_HandFrozen;
|
||||
}
|
||||
|
|
|
@ -1499,7 +1499,7 @@ void BossTw_TwinrovaMergeCS(BossTw* this, PlayState* play) {
|
|||
case 0:
|
||||
this->csState2 = 1;
|
||||
func_80064520(play, &play->csCtx);
|
||||
func_8002DF54(play, &this->actor, 0x39);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_57);
|
||||
this->subCamId = Play_CreateSubCamera(play);
|
||||
Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_WAIT);
|
||||
Play_ChangeCameraStatus(play, this->subCamId, CAM_STAT_ACTIVE);
|
||||
|
@ -1639,7 +1639,7 @@ void BossTw_TwinrovaMergeCS(BossTw* this, PlayState* play) {
|
|||
Animation_MorphToPlayOnce(&this->skelAnime, &gTwinrovaIntroAnim, 0.0f);
|
||||
this->workf[ANIM_SW_TGT] = Animation_GetLastFrame(&gTwinrovaIntroAnim);
|
||||
this->timers[0] = 50;
|
||||
func_8002DF54(play, &this->actor, 2);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_2);
|
||||
Audio_PlayActorSfx2(&this->actor, NA_SE_EN_TWINROBA_TRANSFORM);
|
||||
SEQCMD_PLAY_SEQUENCE(SEQ_PLAYER_BGM_MAIN, 0, 0, NA_BGM_BOSS);
|
||||
}
|
||||
|
@ -1682,7 +1682,7 @@ void BossTw_TwinrovaMergeCS(BossTw* this, PlayState* play) {
|
|||
}
|
||||
|
||||
if (this->timers[3] == 19) {
|
||||
func_8002DF54(play, &this->actor, 5);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_5);
|
||||
}
|
||||
|
||||
if (this->timers[3] == 16) {
|
||||
|
@ -1715,7 +1715,7 @@ void BossTw_TwinrovaMergeCS(BossTw* this, PlayState* play) {
|
|||
this->subCamId = SUB_CAM_ID_DONE;
|
||||
this->csState2 = this->subCamId;
|
||||
func_80064534(play, &play->csCtx);
|
||||
func_8002DF54(play, &this->actor, 7);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_7);
|
||||
this->work[TW_PLLR_IDX] = 0;
|
||||
this->targetPos = sTwinrovaPillarPos[0];
|
||||
BossTw_TwinrovaSetupFly(this, play);
|
||||
|
@ -1795,7 +1795,7 @@ void BossTw_TwinrovaIntroCS(BossTw* this, PlayState* play) {
|
|||
player->actor.world.pos.x = player->actor.world.pos.z = .0f;
|
||||
this->csState2 = 1;
|
||||
func_80064520(play, &play->csCtx);
|
||||
func_8002DF54(play, &this->actor, 0x39);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_57);
|
||||
this->subCamId = Play_CreateSubCamera(play);
|
||||
Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_WAIT);
|
||||
Play_ChangeCameraStatus(play, this->subCamId, CAM_STAT_ACTIVE);
|
||||
|
@ -2278,7 +2278,7 @@ void BossTw_TwinrovaIntroCS(BossTw* this, PlayState* play) {
|
|||
this->subCamId = SUB_CAM_ID_DONE;
|
||||
this->csState2 = this->subCamId;
|
||||
func_80064534(play, &play->csCtx);
|
||||
func_8002DF54(play, &this->actor, 7);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_7);
|
||||
BossTw_SetupWait(this, play);
|
||||
}
|
||||
break;
|
||||
|
@ -2682,7 +2682,7 @@ void BossTw_TwinrovaDeathCS(BossTw* this, PlayState* play) {
|
|||
case 0:
|
||||
this->csState2 = 1;
|
||||
func_80064520(play, &play->csCtx);
|
||||
func_8002DF54(play, &this->actor, 8);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_8);
|
||||
this->subCamId = Play_CreateSubCamera(play);
|
||||
Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_WAIT);
|
||||
Play_ChangeCameraStatus(play, this->subCamId, CAM_STAT_ACTIVE);
|
||||
|
@ -2721,7 +2721,7 @@ void BossTw_TwinrovaDeathCS(BossTw* this, PlayState* play) {
|
|||
sKoumePtr->actor.world.pos.z = sKotakePtr->actor.world.pos.z;
|
||||
sKoumePtr->work[YAW_TGT] = sKotakePtr->work[YAW_TGT] = sKoumePtr->actor.shape.rot.x =
|
||||
sKotakePtr->actor.shape.rot.x = sKoumePtr->actor.shape.rot.y = sKotakePtr->actor.shape.rot.y = 0;
|
||||
func_8002DF54(play, &sKoumePtr->actor, 1);
|
||||
func_8002DF54(play, &sKoumePtr->actor, PLAYER_CSMODE_1);
|
||||
sKoumePtr->actor.flags |= ACTOR_FLAG_0;
|
||||
}
|
||||
break;
|
||||
|
@ -2810,7 +2810,7 @@ void BossTw_TwinrovaDeathCS(BossTw* this, PlayState* play) {
|
|||
this->csState2 = 4;
|
||||
this->subCamId = SUB_CAM_ID_DONE;
|
||||
func_80064534(play, &play->csCtx);
|
||||
func_8002DF54(play, &this->actor, 7);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_7);
|
||||
SEQCMD_PLAY_SEQUENCE(SEQ_PLAYER_BGM_MAIN, 0, 0, NA_BGM_BOSS_CLEAR);
|
||||
Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_DOOR_WARP1, 600.0f, 230.0f, 0.0f, 0, 0, 0,
|
||||
WARP_DUNGEON_ADULT);
|
||||
|
|
|
@ -640,7 +640,7 @@ void BossVa_Init(Actor* thisx, PlayState* play2) {
|
|||
if (GET_EVENTCHKINF(EVENTCHKINF_76)) {
|
||||
sCsState = INTRO_CALL_BARI;
|
||||
sDoorState = 100;
|
||||
func_8002DF54(play, &this->actor, 1);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_1);
|
||||
play->envCtx.screenFillColor[0] = 0xDC;
|
||||
play->envCtx.screenFillColor[1] = 0xDC;
|
||||
play->envCtx.screenFillColor[2] = 0xBE;
|
||||
|
@ -781,7 +781,7 @@ void BossVa_BodyIntro(BossVa* this, PlayState* play) {
|
|||
play->envCtx.screenFillColor[1] = 0xDC;
|
||||
play->envCtx.screenFillColor[2] = 0xBE;
|
||||
play->envCtx.screenFillColor[3] = 0xD2;
|
||||
func_8002DF54(play, &this->actor, 8);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_8);
|
||||
player->actor.world.rot.y = player->actor.shape.rot.y = 0x7FFF;
|
||||
sCsState++;
|
||||
break;
|
||||
|
@ -809,7 +809,7 @@ void BossVa_BodyIntro(BossVa* this, PlayState* play) {
|
|||
case INTRO_CLOSE_DOOR:
|
||||
this->timer--;
|
||||
if (this->timer == 0) {
|
||||
func_8002DF54(play, &this->actor, 2);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_2);
|
||||
sCsState++;
|
||||
this->timer = 30;
|
||||
}
|
||||
|
@ -824,7 +824,7 @@ void BossVa_BodyIntro(BossVa* this, PlayState* play) {
|
|||
}
|
||||
break;
|
||||
case INTRO_CRACKLE:
|
||||
func_8002DF54(play, &this->actor, 1);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_1);
|
||||
sCsState++;
|
||||
break;
|
||||
case INTRO_SPAWN_BARI:
|
||||
|
@ -955,7 +955,7 @@ void BossVa_BodyIntro(BossVa* this, PlayState* play) {
|
|||
sSubCamAtMaxVelFrac = sSubCamEyeMaxVelFrac;
|
||||
if (this->timer >= 45000) {
|
||||
play->envCtx.lightSettingOverride = 1;
|
||||
func_8002DF54(play, &this->actor, 8);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_8);
|
||||
} else if (this->timer >= 35000) {
|
||||
SEQCMD_PLAY_SEQUENCE(SEQ_PLAYER_BGM_MAIN, 0, 0, NA_BGM_BOSS);
|
||||
}
|
||||
|
@ -1012,7 +1012,7 @@ void BossVa_BodyIntro(BossVa* this, PlayState* play) {
|
|||
sSubCamId = SUB_CAM_ID_DONE;
|
||||
func_80064534(play, &play->csCtx);
|
||||
Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_ACTIVE);
|
||||
func_8002DF54(play, &this->actor, 7);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_7);
|
||||
sCsState++;
|
||||
SET_EVENTCHKINF(EVENTCHKINF_76);
|
||||
player->actor.shape.rot.y = player->actor.world.rot.y = this->actor.yawTowardsPlayer + 0x8000;
|
||||
|
@ -1075,7 +1075,7 @@ void BossVa_BodyPhase1(BossVa* this, PlayState* play) {
|
|||
|
||||
if (sBodyState & 0x7F) {
|
||||
this->skelAnime.curFrame = 0.0f;
|
||||
Actor_SetColorFilter(&this->actor, 0, 255, 0, 12);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 255, COLORFILTER_BUFFLAG_OPA, 12);
|
||||
Audio_PlayActorSfx2(&this->actor, NA_SE_EN_BALINADE_DAMAGE);
|
||||
}
|
||||
|
||||
|
@ -1126,7 +1126,7 @@ void BossVa_BodyPhase2(BossVa* this, PlayState* play) {
|
|||
if (this->actor.colorFilterTimer == 0) {
|
||||
sPhase2Timer++;
|
||||
if ((this->invincibilityTimer != 0) && (this->actor.colorFilterParams & 0x4000)) {
|
||||
Actor_SetColorFilter(&this->actor, 0, 255, 0, 160);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 255, COLORFILTER_BUFFLAG_OPA, 160);
|
||||
this->actor.colorFilterTimer = this->invincibilityTimer;
|
||||
} else {
|
||||
this->colliderBody.info.bumper.dmgFlags = DMG_BOOMERANG;
|
||||
|
@ -1138,7 +1138,7 @@ void BossVa_BodyPhase2(BossVa* this, PlayState* play) {
|
|||
|
||||
if (this->colliderBody.base.ac->id == ACTOR_EN_BOOM) {
|
||||
sPhase2Timer &= 0xFE00;
|
||||
Actor_SetColorFilter(&this->actor, 0, 255, 0, 160);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 255, COLORFILTER_BUFFLAG_OPA, 160);
|
||||
this->colliderBody.info.bumper.dmgFlags = DMG_SWORD | DMG_BOOMERANG | DMG_DEKU_STICK;
|
||||
} else {
|
||||
sKillBari++;
|
||||
|
@ -1149,7 +1149,7 @@ void BossVa_BodyPhase2(BossVa* this, PlayState* play) {
|
|||
}
|
||||
}
|
||||
|
||||
Actor_SetColorFilter(&this->actor, 0x4000, 255, 0, 12);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 12);
|
||||
}
|
||||
|
||||
Audio_PlayActorSfx2(&this->actor, NA_SE_EN_BALINADE_FAINT);
|
||||
|
@ -1243,7 +1243,7 @@ void BossVa_BodyPhase3(BossVa* this, PlayState* play) {
|
|||
|
||||
if (this->colliderBody.base.acFlags & AC_HIT) {
|
||||
this->skelAnime.curFrame = 0.0f;
|
||||
Actor_SetColorFilter(&this->actor, 0, 255, 0, 12);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 255, COLORFILTER_BUFFLAG_OPA, 12);
|
||||
Audio_PlayActorSfx2(&this->actor, NA_SE_EN_BALINADE_FAINT);
|
||||
sBodyState = 1;
|
||||
this->timer = 131;
|
||||
|
@ -1374,7 +1374,7 @@ void BossVa_BodyPhase4(BossVa* this, PlayState* play) {
|
|||
if (this->actor.colChkInfo.damageEffect != 1) {
|
||||
this->actor.world.rot.y = this->actor.yawTowardsPlayer;
|
||||
Audio_PlayActorSfx2(&this->actor, NA_SE_EN_BALINADE_DAMAGE);
|
||||
Actor_SetColorFilter(&this->actor, 0x4000, 255, 0, 12);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 12);
|
||||
sPhase4HP -= this->actor.colChkInfo.damage;
|
||||
if (sPhase4HP <= 0) {
|
||||
this->timer = 0;
|
||||
|
@ -1392,7 +1392,7 @@ void BossVa_BodyPhase4(BossVa* this, PlayState* play) {
|
|||
this->timer = (s16)Rand_CenteredFloat(40.0f) + 160;
|
||||
this->vaBodySpinRate = 0;
|
||||
this->actor.speedXZ = 0.0f;
|
||||
Actor_SetColorFilter(&this->actor, 0, 125, 0, 255);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 125, COLORFILTER_BUFFLAG_OPA, 255);
|
||||
Audio_PlayActorSfx2(&this->actor, NA_SE_EN_BALINADE_FAINT);
|
||||
}
|
||||
}
|
||||
|
@ -1530,7 +1530,7 @@ void BossVa_BodyDeath(BossVa* this, PlayState* play) {
|
|||
|
||||
switch (sCsState) {
|
||||
case DEATH_START:
|
||||
func_8002DF54(play, &this->actor, 1);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_1);
|
||||
func_80064520(play, &play->csCtx);
|
||||
sSubCamId = Play_CreateSubCamera(play);
|
||||
Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_WAIT);
|
||||
|
@ -1592,7 +1592,7 @@ void BossVa_BodyDeath(BossVa* this, PlayState* play) {
|
|||
EffectSsDeadSound_SpawnStationary(play, &this->actor.projectedPos, NA_SE_EN_BALINADE_DEAD, 1, 1, 0x28);
|
||||
this->onCeiling = 2; // Not used by body
|
||||
BossVa_SetDeathEnv(play);
|
||||
func_8002DF54(play, &this->actor, 8);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_8);
|
||||
}
|
||||
break;
|
||||
case DEATH_CORE_BURST:
|
||||
|
@ -1633,7 +1633,7 @@ void BossVa_BodyDeath(BossVa* this, PlayState* play) {
|
|||
|
||||
mainCam->at = sSubCamAt;
|
||||
|
||||
func_8002DF54(play, &this->actor, 7);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_7);
|
||||
sCsState++;
|
||||
|
||||
Actor_Spawn(&play->actorCtx, play, ACTOR_ITEM_B_HEART, this->actor.world.pos.x, this->actor.world.pos.y,
|
||||
|
@ -1718,7 +1718,7 @@ void BossVa_SetupSupportAttached(BossVa* this, PlayState* play) {
|
|||
void BossVa_SupportAttached(BossVa* this, PlayState* play) {
|
||||
this->timer++;
|
||||
if (sBodyState & 0x7F) {
|
||||
Actor_SetColorFilter(&this->actor, 0, 255, 0, 12);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 255, COLORFILTER_BUFFLAG_OPA, 12);
|
||||
if (Rand_ZeroOne() > 0.5f) {
|
||||
Animation_Change(&this->skelAnime, &gBarinadeSupportDamage1Anim, 1.0f, 0.0f,
|
||||
Animation_GetLastFrame(&gBarinadeSupportDamage1Anim), ANIMMODE_ONCE, 0.0f);
|
||||
|
@ -2114,7 +2114,7 @@ void BossVa_SetupZapperDamaged(BossVa* this, PlayState* play) {
|
|||
Animation_GetLastFrame(&gBarinadeZapperDamage2Anim), ANIMMODE_ONCE_INTERP, 4.0f);
|
||||
}
|
||||
|
||||
Actor_SetColorFilter(&this->actor, 0, 255, 0, 12);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 255, COLORFILTER_BUFFLAG_OPA, 12);
|
||||
this->burst = false;
|
||||
BossVa_SetupAction(this, BossVa_ZapperDamaged);
|
||||
}
|
||||
|
@ -2417,7 +2417,7 @@ void BossVa_BariIntro(BossVa* this, PlayState* play) {
|
|||
switch (sCsState) {
|
||||
case INTRO_LOOK_BARI:
|
||||
if (this->actor.params == BOSSVA_BARI_UPPER_1) {
|
||||
func_8002DF54(play, &this->actor, 1);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_1);
|
||||
if (Math_SmoothStepToF(&this->actor.world.pos.y, 60.0f, 0.3f, 1.0f, 0.15f) == 0.0f) {
|
||||
this->timer--;
|
||||
if (this->timer == 0) {
|
||||
|
@ -2687,7 +2687,8 @@ void BossVa_BariPhase2Attack(BossVa* this, PlayState* play) {
|
|||
} else {
|
||||
this->unk_1AC = 0;
|
||||
if (this->actor.colorFilterTimer == 0) {
|
||||
Actor_SetColorFilter(&this->actor, 0, 255, 0x2000, GET_BODY(this)->actor.colorFilterTimer);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 255, COLORFILTER_BUFFLAG_XLU,
|
||||
GET_BODY(this)->actor.colorFilterTimer);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2722,7 +2723,7 @@ void BossVa_BariPhase2Attack(BossVa* this, PlayState* play) {
|
|||
void BossVa_SetupBariPhase3Stunned(BossVa* this, PlayState* play) {
|
||||
this->actor.flags |= ACTOR_FLAG_0;
|
||||
this->timer = GET_BODY(this)->timer;
|
||||
Actor_SetColorFilter(&this->actor, 0, 255, 0x2000, this->timer);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 255, COLORFILTER_BUFFLAG_XLU, this->timer);
|
||||
BossVa_SetupAction(this, BossVa_BariPhase3Stunned);
|
||||
}
|
||||
|
||||
|
|
|
@ -868,7 +868,7 @@ void func_80986B2C(PlayState* play) {
|
|||
play->nextEntranceIndex = ENTR_HYRULE_FIELD_0;
|
||||
play->transitionType = TRANS_TYPE_CIRCLE(TCA_STARBURST, TCC_BLACK, TCS_FAST);
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
func_8002DF54(play, &player->actor, 8);
|
||||
func_8002DF54(play, &player->actor, PLAYER_CSMODE_8);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -118,7 +118,7 @@ void DoorAna_WaitClosed(DoorAna* this, PlayState* play) {
|
|||
Audio_PlaySfxGeneral(NA_SE_SY_CORRECT_CHIME, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
|
||||
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
|
||||
}
|
||||
func_8002F5F0(&this->actor, play);
|
||||
Actor_SetClosestSecretDistance(&this->actor, play);
|
||||
}
|
||||
|
||||
// update routine for grottos that are open
|
||||
|
|
|
@ -750,7 +750,7 @@ void func_80997220(DoorShutter* this, PlayState* play) {
|
|||
this->dyna.actor.velocity.y = 0.0f;
|
||||
if (DoorShutter_SetupDoor(this, play) && !(player->stateFlags1 & PLAYER_STATE1_11)) {
|
||||
DoorShutter_SetupAction(this, func_80997568);
|
||||
func_8002DF54(play, NULL, 2);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_2);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -784,7 +784,7 @@ void DoorShutter_JabuDoorClose(DoorShutter* this, PlayState* play) {
|
|||
|
||||
void func_80997568(DoorShutter* this, PlayState* play) {
|
||||
if (this->unk_16F++ > 30) {
|
||||
func_8002DF54(play, NULL, 7);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_7);
|
||||
DoorShutter_SetupDoor(this, play);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -466,7 +466,7 @@ void DoorWarp1_ChildWarpIdle(DoorWarp1* this, PlayState* play) {
|
|||
Audio_PlaySfxGeneral(NA_SE_EV_LINK_WARP, &player->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
|
||||
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
|
||||
OnePointCutscene_Init(play, 0x25E7, 999, &this->actor, CAM_ID_MAIN);
|
||||
func_8002DF54(play, &this->actor, 10);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_10);
|
||||
|
||||
player->unk_450.x = this->actor.world.pos.x;
|
||||
player->unk_450.z = this->actor.world.pos.z;
|
||||
|
@ -542,7 +542,7 @@ void DoorWarp1_RutoWarpIdle(DoorWarp1* this, PlayState* play) {
|
|||
|
||||
if (this->rutoWarpState != WARP_BLUE_RUTO_STATE_INITIAL && DoorWarp1_PlayerInRange(this, play)) {
|
||||
this->rutoWarpState = WARP_BLUE_RUTO_STATE_ENTERED;
|
||||
func_8002DF54(play, &this->actor, 10);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_10);
|
||||
this->unk_1B2 = 1;
|
||||
DoorWarp1_SetupAction(this, func_80999EE0);
|
||||
}
|
||||
|
@ -650,7 +650,7 @@ void DoorWarp1_AdultWarpIdle(DoorWarp1* this, PlayState* play) {
|
|||
player = GET_PLAYER(play);
|
||||
|
||||
OnePointCutscene_Init(play, 0x25E8, 999, &this->actor, CAM_ID_MAIN);
|
||||
func_8002DF54(play, &this->actor, 10);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_10);
|
||||
player->unk_450.x = this->actor.world.pos.x;
|
||||
player->unk_450.z = this->actor.world.pos.z;
|
||||
this->unk_1B2 = 20;
|
||||
|
|
|
@ -379,7 +379,7 @@ void EnAm_Sleep(EnAm* this, PlayState* play) {
|
|||
if (this->textureBlend == 0) {
|
||||
Audio_PlayActorSfx2(&this->dyna.actor, NA_SE_EN_AMOS_WAVE);
|
||||
Audio_PlayActorSfx2(&this->dyna.actor, NA_SE_EN_AMOS_VOICE);
|
||||
Actor_SetColorFilter(&this->dyna.actor, 0x4000, 255, 0, 8);
|
||||
Actor_SetColorFilter(&this->dyna.actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 8);
|
||||
}
|
||||
|
||||
if (this->textureBlend >= 240) {
|
||||
|
@ -717,7 +717,7 @@ void EnAm_SetupStunned(EnAm* this, PlayState* play) {
|
|||
this->dyna.actor.speedXZ = -6.0f;
|
||||
}
|
||||
|
||||
Actor_SetColorFilter(&this->dyna.actor, 0, 120, 0, 100);
|
||||
Actor_SetColorFilter(&this->dyna.actor, COLORFILTER_COLORFLAG_BLUE, 120, COLORFILTER_BUFFLAG_OPA, 100);
|
||||
|
||||
if (this->damageEffect == AM_DMGEFF_ICE) {
|
||||
this->iceTimer = 48;
|
||||
|
@ -881,7 +881,7 @@ void EnAm_Update(Actor* thisx, PlayState* play) {
|
|||
}
|
||||
|
||||
if ((this->deathTimer % 4) == 0) {
|
||||
Actor_SetColorFilter(&this->dyna.actor, 0x4000, 255, 0, 4);
|
||||
Actor_SetColorFilter(&this->dyna.actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 4);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -125,7 +125,7 @@ void func_809B0558(EnAni* this, PlayState* play) {
|
|||
}
|
||||
SET_ITEMGETINF(ITEMGETINF_15);
|
||||
} else {
|
||||
func_8002F434(&this->actor, play, GI_HEART_PIECE, 10000.0f, 200.0f);
|
||||
Actor_OfferGetItem(&this->actor, play, GI_HEART_PIECE, 10000.0f, 200.0f);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -133,7 +133,7 @@ void func_809B05F0(EnAni* this, PlayState* play) {
|
|||
if (Actor_TextboxIsClosing(&this->actor, play)) {
|
||||
EnAni_SetupAction(this, func_809B0558);
|
||||
}
|
||||
func_8002F434(&this->actor, play, GI_HEART_PIECE, 10000.0f, 200.0f);
|
||||
Actor_OfferGetItem(&this->actor, play, GI_HEART_PIECE, 10000.0f, 200.0f);
|
||||
}
|
||||
|
||||
void func_809B064C(EnAni* this, PlayState* play) {
|
||||
|
|
|
@ -344,7 +344,7 @@ void EnAnubice_Die(EnAnubice* this, PlayState* play) {
|
|||
rotatedFireEffectPos.x += this->actor.world.pos.x + Rand_CenteredFloat(40.0f);
|
||||
rotatedFireEffectPos.y += this->actor.world.pos.y + Rand_CenteredFloat(40.0f);
|
||||
rotatedFireEffectPos.z += this->actor.world.pos.z + Rand_CenteredFloat(30.0f);
|
||||
Actor_SetColorFilter(&this->actor, 0x4000, 128, 0, 8);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 128, COLORFILTER_BUFFLAG_OPA, 8);
|
||||
EffectSsEnFire_SpawnVec3f(play, &this->actor, &rotatedFireEffectPos, 100, 0, 0, -1);
|
||||
|
||||
if ((this->animLastFrame <= curFrame) && (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND)) {
|
||||
|
|
|
@ -325,7 +325,7 @@ void func_809B7174(EnBa* this) {
|
|||
this->actor.colChkInfo.mass = MASS_IMMOVABLE;
|
||||
this->actor.speedXZ = 10.0f;
|
||||
Audio_PlayActorSfx2(&this->actor, NA_SE_EN_BALINADE_HAND_DAMAGE);
|
||||
Actor_SetColorFilter(&this->actor, 0x4000, 255, 0, 12);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 12);
|
||||
EnBa_SetupAction(this, EnBa_RecoilFromDamage);
|
||||
}
|
||||
|
||||
|
|
|
@ -516,7 +516,7 @@ void EnBb_SetupDamage(EnBb* this) {
|
|||
if (this->actor.params == ENBB_RED) {
|
||||
EnBb_KillFlameTrail(this);
|
||||
}
|
||||
Actor_SetColorFilter(&this->actor, 0x4000, 0xFF, 0, 0xC);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 12);
|
||||
this->timer = 5;
|
||||
EnBb_SetupAction(this, EnBb_Damage);
|
||||
}
|
||||
|
@ -1083,14 +1083,14 @@ void EnBb_SetupStunned(EnBb* this) {
|
|||
}
|
||||
switch (this->dmgEffect) {
|
||||
case 8:
|
||||
Actor_SetColorFilter(&this->actor, -0x8000, 0xC8, 0, 0x50);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_GRAY, 200, COLORFILTER_BUFFLAG_OPA, 80);
|
||||
break;
|
||||
case 9:
|
||||
this->fireIceTimer = 0x30;
|
||||
FALLTHROUGH;
|
||||
case 15:
|
||||
Audio_PlayActorSfx2(&this->actor, NA_SE_EN_GOMA_JR_FREEZE);
|
||||
Actor_SetColorFilter(&this->actor, 0, 0xB4, 0, 0x50);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 180, COLORFILTER_BUFFLAG_OPA, 80);
|
||||
break;
|
||||
}
|
||||
this->actor.bgCheckFlags &= ~BGCHECKFLAG_GROUND;
|
||||
|
@ -1205,7 +1205,7 @@ void EnBb_CollisionCheck(EnBb* this, PlayState* play) {
|
|||
//! the bug in EnBb_Draw below to crash the game.
|
||||
} else if ((this->actor.params == ENBB_WHITE) &&
|
||||
((this->action == BB_WHITE) || (this->action == BB_STUNNED))) {
|
||||
Actor_SetColorFilter(&this->actor, 0x4000, 0xFF, 0, 0xC);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 12);
|
||||
this->actor.speedXZ = -8.0f;
|
||||
this->maxSpeed = 0.0f;
|
||||
this->actor.world.rot.y = this->actor.yawTowardsPlayer;
|
||||
|
|
|
@ -340,7 +340,7 @@ void func_809BD524(EnBigokuta* this) {
|
|||
this->unk_195 = false;
|
||||
this->unk_196 = 80;
|
||||
}
|
||||
Actor_SetColorFilter(&this->actor, 0, 255, 0, this->unk_196);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 255, COLORFILTER_BUFFLAG_OPA, this->unk_196);
|
||||
this->actionFunc = func_809BE058;
|
||||
}
|
||||
|
||||
|
@ -349,7 +349,7 @@ void func_809BD5E0(EnBigokuta* this) {
|
|||
this->unk_196 = 24;
|
||||
this->unk_19A = 0;
|
||||
this->cylinder[0].base.atFlags &= ~AT_ON;
|
||||
Actor_SetColorFilter(&this->actor, 0x4000, 255, 0, 24);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 24);
|
||||
this->actionFunc = func_809BE180;
|
||||
}
|
||||
void func_809BD658(EnBigokuta* this) {
|
||||
|
|
|
@ -221,7 +221,7 @@ void EnBili_SetupBurnt(EnBili* this) {
|
|||
this->collider.base.acFlags &= ~AC_ON;
|
||||
this->actor.flags |= ACTOR_FLAG_4;
|
||||
this->actor.speedXZ = 0.0f;
|
||||
Actor_SetColorFilter(&this->actor, 0x4000, 0xC8, 0x2000, 0x14);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 200, COLORFILTER_BUFFLAG_XLU, 20);
|
||||
this->actionFunc = EnBili_Burnt;
|
||||
}
|
||||
|
||||
|
@ -240,7 +240,7 @@ void EnBili_SetupStunned(EnBili* this) {
|
|||
this->collider.info.bumper.effect = 0;
|
||||
this->actor.gravity = -1.0f;
|
||||
this->actor.speedXZ = 0.0f;
|
||||
Actor_SetColorFilter(&this->actor, 0, 0x96, 0x2000, 0x50);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 150, COLORFILTER_BUFFLAG_XLU, 80);
|
||||
Audio_PlayActorSfx2(&this->actor, NA_SE_EN_GOMA_JR_FREEZE);
|
||||
this->collider.base.atFlags &= ~AT_ON;
|
||||
this->actionFunc = EnBili_Stunned;
|
||||
|
@ -268,7 +268,7 @@ void EnBili_SetupFrozen(EnBili* this, PlayState* play) {
|
|||
}
|
||||
|
||||
this->actor.speedXZ = 0.0f;
|
||||
Actor_SetColorFilter(&this->actor, 0, 0x96, 0x2000, 0xA);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 150, COLORFILTER_BUFFLAG_XLU, 10);
|
||||
this->collider.base.atFlags &= ~AT_ON;
|
||||
this->collider.base.acFlags &= ~AC_ON;
|
||||
this->timer = 300;
|
||||
|
@ -566,7 +566,7 @@ void EnBili_UpdateDamage(EnBili* this, PlayState* play) {
|
|||
}
|
||||
} else if (damageEffect == BIRI_DMGEFF_SWORD) {
|
||||
if (this->actionFunc != EnBili_Stunned) {
|
||||
Actor_SetColorFilter(&this->actor, 0x4000, 0xC8, 0x2000, 0xA);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 200, COLORFILTER_BUFFLAG_XLU, 10);
|
||||
|
||||
if (this->actor.colChkInfo.health == 0) {
|
||||
this->actor.params = EN_BILI_TYPE_DYING;
|
||||
|
|
|
@ -150,7 +150,7 @@ void EnBom_Move(EnBom* this, PlayState* play) {
|
|||
this->actor.velocity.y *= -0.3f;
|
||||
this->actor.bgCheckFlags &= ~BGCHECKFLAG_GROUND_TOUCH;
|
||||
} else if (this->timer >= 4) {
|
||||
func_8002F580(&this->actor, play);
|
||||
Actor_OfferCarry(&this->actor, play);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -262,7 +262,7 @@ void EnBomBowMan_RunGame(EnBomBowlMan* this, PlayState* play) {
|
|||
Message_StartTextbox(play, this->actor.textId, NULL);
|
||||
|
||||
if (this->gameResult == 2) {
|
||||
func_8002DF54(play, NULL, 8);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_8);
|
||||
}
|
||||
this->actionFunc = EnBomBowlMan_HandlePlayChoice;
|
||||
} else {
|
||||
|
@ -307,7 +307,7 @@ void EnBomBowlMan_HandlePlayChoice(EnBomBowlMan* this, PlayState* play) {
|
|||
Message_ContinueTextbox(play, this->actor.textId);
|
||||
this->dialogState = TEXT_STATE_EVENT;
|
||||
OnePointCutscene_Init(play, 8010, -99, NULL, CAM_ID_MAIN);
|
||||
func_8002DF54(play, NULL, 8);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_8);
|
||||
this->actionFunc = EnBomBowMan_SetupChooseShowPrize;
|
||||
}
|
||||
} else {
|
||||
|
@ -343,11 +343,11 @@ void func_809C41FC(EnBomBowlMan* this, PlayState* play) {
|
|||
Message_ContinueTextbox(play, this->actor.textId);
|
||||
this->dialogState = TEXT_STATE_EVENT;
|
||||
OnePointCutscene_Init(play, 8010, -99, NULL, CAM_ID_MAIN);
|
||||
func_8002DF54(play, NULL, 8);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_8);
|
||||
this->actionFunc = EnBomBowMan_SetupChooseShowPrize;
|
||||
} else {
|
||||
if (this->gameResult == 2) {
|
||||
func_8002DF54(play, NULL, 7);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_7);
|
||||
}
|
||||
this->actionFunc = EnBomBowMan_SetupRunGame;
|
||||
}
|
||||
|
@ -459,7 +459,7 @@ void EnBomBowlMan_BeginPlayGame(EnBomBowlMan* this, PlayState* play) {
|
|||
|
||||
// "Wow"
|
||||
osSyncPrintf(VT_FGCOL(YELLOW) "☆ わー ☆ %d\n" VT_RST, play->bombchuBowlingStatus);
|
||||
func_8002DF54(play, NULL, 7);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_7);
|
||||
this->actionFunc = EnBomBowMan_SetupRunGame;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -67,7 +67,7 @@ void EnBomBowlPit_DetectHit(EnBomBowlPit* this, PlayState* play) {
|
|||
|
||||
if (((fabsf(chuPosDiff.x) < 40.0f) || (BREG(2))) && ((fabsf(chuPosDiff.y) < 40.0f) || (BREG(2))) &&
|
||||
((fabsf(chuPosDiff.z) < 40.0f) || (BREG(2)))) {
|
||||
func_8002DF54(play, NULL, 8);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_8);
|
||||
chu->timer = 1;
|
||||
|
||||
this->subCamId = Play_CreateSubCamera(play);
|
||||
|
@ -106,7 +106,7 @@ void EnBomBowlPit_DetectHit(EnBomBowlPit* this, PlayState* play) {
|
|||
Message_StartTextbox(play, this->actor.textId, NULL);
|
||||
this->unk_154 = TEXT_STATE_EVENT;
|
||||
func_80078884(NA_SE_EV_HIT_SOUND);
|
||||
func_8002DF54(play, NULL, 8);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_8);
|
||||
this->status = 1;
|
||||
this->actionFunc = EnBomBowlPit_CameraDollyIn;
|
||||
break;
|
||||
|
@ -169,7 +169,7 @@ void EnBomBowlPit_SetupGivePrize(EnBomBowlPit* this, PlayState* play) {
|
|||
|
||||
Play_ClearCamera(play, this->subCamId);
|
||||
Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_ACTIVE);
|
||||
func_8002DF54(play, NULL, 8);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_8);
|
||||
this->actionFunc = EnBomBowlPit_GivePrize;
|
||||
}
|
||||
}
|
||||
|
@ -177,7 +177,7 @@ void EnBomBowlPit_SetupGivePrize(EnBomBowlPit* this, PlayState* play) {
|
|||
void EnBomBowlPit_GivePrize(EnBomBowlPit* this, PlayState* play) {
|
||||
Player* player = GET_PLAYER(play);
|
||||
|
||||
func_8002DF54(play, NULL, 7);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_7);
|
||||
this->getItemId = sGetItemIds[this->prizeIndex];
|
||||
|
||||
if ((this->getItemId == GI_BOMB_BAG_30) && (CUR_CAPACITY(UPG_BOMB_BAG) == 30)) {
|
||||
|
@ -186,7 +186,7 @@ void EnBomBowlPit_GivePrize(EnBomBowlPit* this, PlayState* play) {
|
|||
|
||||
player->stateFlags1 &= ~PLAYER_STATE1_29;
|
||||
this->actor.parent = NULL;
|
||||
func_8002F434(&this->actor, play, this->getItemId, 2000.0f, 1000.0f);
|
||||
Actor_OfferGetItem(&this->actor, play, this->getItemId, 2000.0f, 1000.0f);
|
||||
player->stateFlags1 |= PLAYER_STATE1_29;
|
||||
this->actionFunc = EnBomBowlPit_WaitTillPrizeGiven;
|
||||
}
|
||||
|
@ -195,7 +195,7 @@ void EnBomBowlPit_WaitTillPrizeGiven(EnBomBowlPit* this, PlayState* play) {
|
|||
if (Actor_HasParent(&this->actor, play)) {
|
||||
this->actionFunc = EnBomBowlPit_Reset;
|
||||
} else {
|
||||
func_8002F434(&this->actor, play, this->getItemId, 2000.0f, 1000.0f);
|
||||
Actor_OfferGetItem(&this->actor, play, this->getItemId, 2000.0f, 1000.0f);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -191,7 +191,7 @@ void EnBombf_GrowBomb(EnBombf* this, PlayState* play) {
|
|||
}
|
||||
} else {
|
||||
if (!Actor_HasParent(&this->actor, play)) {
|
||||
func_8002F580(&this->actor, play);
|
||||
Actor_OfferCarry(&this->actor, play);
|
||||
} else {
|
||||
player->actor.child = NULL;
|
||||
player->heldActor = NULL;
|
||||
|
@ -241,7 +241,7 @@ void EnBombf_Move(EnBombf* this, PlayState* play) {
|
|||
func_8002F850(play, &this->actor);
|
||||
this->actor.velocity.y *= -0.5f;
|
||||
} else if (this->timer >= 4) {
|
||||
func_8002F580(&this->actor, play);
|
||||
Actor_OfferCarry(&this->actor, play);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -267,7 +267,7 @@ void EnBox_FallOnSwitchFlag(EnBox* this, PlayState* play) {
|
|||
s32 treasureFlag = this->dyna.actor.params & 0x1F;
|
||||
|
||||
if (treasureFlag >= ENBOX_TREASURE_FLAG_UNK_MIN && treasureFlag < ENBOX_TREASURE_FLAG_UNK_MAX) {
|
||||
func_8002F5F0(&this->dyna.actor, play);
|
||||
Actor_SetClosestSecretDistance(&this->dyna.actor, play);
|
||||
}
|
||||
|
||||
if (this->unk_1A8 >= 0) {
|
||||
|
@ -287,7 +287,7 @@ void func_809C9700(EnBox* this, PlayState* play) {
|
|||
Player* player = GET_PLAYER(play);
|
||||
|
||||
if (treasureFlag >= ENBOX_TREASURE_FLAG_UNK_MIN && treasureFlag < ENBOX_TREASURE_FLAG_UNK_MAX) {
|
||||
func_8002F5F0(&this->dyna.actor, play);
|
||||
Actor_SetClosestSecretDistance(&this->dyna.actor, play);
|
||||
}
|
||||
|
||||
if (Math3D_Vec3fDistSq(&this->dyna.actor.world.pos, &player->actor.world.pos) > SQ(150.0f)) {
|
||||
|
@ -323,7 +323,7 @@ void EnBox_AppearOnSwitchFlag(EnBox* this, PlayState* play) {
|
|||
s32 treasureFlag = this->dyna.actor.params & 0x1F;
|
||||
|
||||
if (treasureFlag >= ENBOX_TREASURE_FLAG_UNK_MIN && treasureFlag < ENBOX_TREASURE_FLAG_UNK_MAX) {
|
||||
func_8002F5F0(&this->dyna.actor, play);
|
||||
Actor_SetClosestSecretDistance(&this->dyna.actor, play);
|
||||
}
|
||||
|
||||
if (Flags_GetSwitch(play, this->switchFlag)) {
|
||||
|
@ -337,7 +337,7 @@ void EnBox_AppearOnRoomClear(EnBox* this, PlayState* play) {
|
|||
s32 treasureFlag = this->dyna.actor.params & 0x1F;
|
||||
|
||||
if (treasureFlag >= ENBOX_TREASURE_FLAG_UNK_MIN && treasureFlag < ENBOX_TREASURE_FLAG_UNK_MAX) {
|
||||
func_8002F5F0(&this->dyna.actor, play);
|
||||
Actor_SetClosestSecretDistance(&this->dyna.actor, play);
|
||||
}
|
||||
|
||||
if (Flags_GetTempClear(play, this->dyna.actor.room) && !Player_InCsMode(play)) {
|
||||
|
@ -424,7 +424,7 @@ void EnBox_WaitOpen(EnBox* this, PlayState* play) {
|
|||
func_8002DBD0(&this->dyna.actor, &sp4C, &player->actor.world.pos);
|
||||
if (sp4C.z > -50.0f && sp4C.z < 0.0f && fabsf(sp4C.y) < 10.0f && fabsf(sp4C.x) < 20.0f &&
|
||||
Player_IsFacingActor(&this->dyna.actor, 0x3000, play)) {
|
||||
func_8002F554(&this->dyna.actor, play, 0 - (this->dyna.actor.params >> 5 & 0x7F));
|
||||
Actor_OfferGetItemNearby(&this->dyna.actor, play, 0 - (this->dyna.actor.params >> 5 & 0x7F));
|
||||
}
|
||||
if (Flags_GetTreasure(play, this->dyna.actor.params & 0x1F)) {
|
||||
EnBox_SetupAction(this, EnBox_Open);
|
||||
|
|
|
@ -127,7 +127,7 @@ void func_809CAEA0(EnBrob* this) {
|
|||
void func_809CAEF4(EnBrob* this) {
|
||||
Animation_MorphToPlayOnce(&this->skelAnime, &object_brob_Anim_000290, -5.0f);
|
||||
this->unk_1AE -= 125.0f;
|
||||
Actor_SetColorFilter(&this->dyna.actor, 0, 0xFF, 0, 0x50);
|
||||
Actor_SetColorFilter(&this->dyna.actor, COLORFILTER_COLORFLAG_BLUE, 255, COLORFILTER_BUFFLAG_OPA, 80);
|
||||
Audio_PlayActorSfx2(&this->dyna.actor, NA_SE_EN_GOMA_JR_FREEZE);
|
||||
this->actionFunc = func_809CB2B8;
|
||||
}
|
||||
|
|
|
@ -694,7 +694,7 @@ void func_809D0584(EnBw* this, PlayState* play) {
|
|||
if ((this->damageEffect == 1) || (this->damageEffect == 0xE)) {
|
||||
if (this->unk_23C == 0) {
|
||||
Actor_ApplyDamage(&this->actor);
|
||||
Actor_SetColorFilter(&this->actor, 0, 0x78, 0, 0x50);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 120, COLORFILTER_BUFFLAG_OPA, 80);
|
||||
func_809D03CC(this);
|
||||
this->unk_248 = 0.0f;
|
||||
}
|
||||
|
@ -705,7 +705,7 @@ void func_809D0584(EnBw* this, PlayState* play) {
|
|||
}
|
||||
if (((this->unk_221 == 1) || (this->unk_221 == 4)) && (this->actor.colChkInfo.health == 0)) {
|
||||
if (this->unk_220 != 0) {
|
||||
Actor_SetColorFilter(&this->actor, 0x4000, 0xFF, 0, 8);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 8);
|
||||
if (func_800355E4(play, &this->collider2.base)) {
|
||||
this->unk_230 = 0;
|
||||
this->actor.scale.y -= 0.009f;
|
||||
|
@ -719,7 +719,7 @@ void func_809D0584(EnBw* this, PlayState* play) {
|
|||
}
|
||||
} else if ((this->unk_220 != 1) && (this->unk_220 != 6)) {
|
||||
Audio_PlayActorSfx2(&this->actor, NA_SE_EN_BUBLEWALK_DAMAGE);
|
||||
Actor_SetColorFilter(&this->actor, 0x4000, 0xFF, 0, 8);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 8);
|
||||
if (this->unk_220 != 5) {
|
||||
func_809D01CC(this);
|
||||
}
|
||||
|
|
|
@ -348,7 +348,7 @@ void EnClearTag_Update(Actor* thisx, PlayState* play2) {
|
|||
|
||||
this->collider.base.acFlags &= ~AC_HIT;
|
||||
this->crashingTimer = 20;
|
||||
Actor_SetColorFilter(&this->actor, 0x4000, 255, 0, 5);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 5);
|
||||
this->acceleration.x = Rand_CenteredFloat(15.0f);
|
||||
this->acceleration.y = Rand_CenteredFloat(15.0f);
|
||||
this->acceleration.z = Rand_CenteredFloat(15.0f);
|
||||
|
|
|
@ -213,7 +213,7 @@ void func_809DF778(EnCow* this, PlayState* play) {
|
|||
this->actor.parent = NULL;
|
||||
this->actionFunc = func_809DF730;
|
||||
} else {
|
||||
func_8002F434(&this->actor, play, GI_MILK, 10000.0f, 100.0f);
|
||||
Actor_OfferGetItem(&this->actor, play, GI_MILK, 10000.0f, 100.0f);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -222,7 +222,7 @@ void func_809DF7D8(EnCow* this, PlayState* play) {
|
|||
this->actor.flags &= ~ACTOR_FLAG_16;
|
||||
Message_CloseTextbox(play);
|
||||
this->actionFunc = func_809DF778;
|
||||
func_8002F434(&this->actor, play, GI_MILK, 10000.0f, 100.0f);
|
||||
Actor_OfferGetItem(&this->actor, play, GI_MILK, 10000.0f, 100.0f);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -157,7 +157,7 @@ void EnCrow_SetupDamaged(EnCrow* this, PlayState* play) {
|
|||
Audio_PlayActorSfx2(&this->actor, NA_SE_EN_KAICHO_DEAD);
|
||||
|
||||
if (this->actor.colChkInfo.damageEffect == 3) { // Ice arrows
|
||||
Actor_SetColorFilter(&this->actor, 0, 255, 0, 40);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 255, COLORFILTER_BUFFLAG_OPA, 40);
|
||||
for (i = 0; i < 8; i++) {
|
||||
iceParticlePos.x = ((i & 1 ? 7.0f : -7.0f) * scale) + this->actor.world.pos.x;
|
||||
iceParticlePos.y = ((i & 2 ? 7.0f : -7.0f) * scale) + this->actor.world.pos.y;
|
||||
|
@ -166,13 +166,13 @@ void EnCrow_SetupDamaged(EnCrow* this, PlayState* play) {
|
|||
((Rand_ZeroOne() * 0.15f) + 0.85f) * scale);
|
||||
}
|
||||
} else if (this->actor.colChkInfo.damageEffect == 2) { // Fire arrows and Din's Fire
|
||||
Actor_SetColorFilter(&this->actor, 0x4000, 255, 0, 40);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 40);
|
||||
|
||||
for (i = 0; i < 4; i++) {
|
||||
EffectSsEnFire_SpawnVec3f(play, &this->actor, &this->actor.world.pos, 50.0f * scale, 0, 0, i);
|
||||
}
|
||||
} else {
|
||||
Actor_SetColorFilter(&this->actor, 0x4000, 255, 0, 40);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 40);
|
||||
}
|
||||
|
||||
if (this->actor.flags & ACTOR_FLAG_15) {
|
||||
|
@ -196,7 +196,7 @@ void EnCrow_SetupTurnAway(EnCrow* this) {
|
|||
this->aimRotX = -0x1000;
|
||||
this->aimRotY = this->actor.yawTowardsPlayer + 0x8000;
|
||||
this->skelAnime.playSpeed = 2.0f;
|
||||
Actor_SetColorFilter(&this->actor, 0, 255, 0, 5);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 255, COLORFILTER_BUFFLAG_OPA, 5);
|
||||
Audio_PlayActorSfx2(&this->actor, NA_SE_EN_GOMA_JR_FREEZE);
|
||||
this->actionFunc = EnCrow_TurnAway;
|
||||
}
|
||||
|
|
|
@ -469,7 +469,7 @@ void EnDaiku_InitSubCamera(EnDaiku* this, PlayState* play) {
|
|||
|
||||
Play_CameraSetAtEye(play, this->subCamId, &this->subCamAt, &this->subCamEye);
|
||||
Play_CameraSetFov(play, this->subCamId, play->mainCamera.fov);
|
||||
func_8002DF54(play, &this->actor, 1);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_1);
|
||||
}
|
||||
|
||||
void EnDaiku_UpdateSubCamera(EnDaiku* this, PlayState* play) {
|
||||
|
@ -505,7 +505,7 @@ void EnDaiku_EscapeSuccess(EnDaiku* this, PlayState* play) {
|
|||
Actor_Kill(&this->actor);
|
||||
}
|
||||
} else {
|
||||
func_8002DF54(play, &this->actor, 7);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_7);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -386,9 +386,9 @@ void EnDekubaba_SetupHit(EnDekubaba* this, s32 arg1) {
|
|||
Actor_SetScale(&this->actor, this->size * 0.01f);
|
||||
|
||||
if (arg1 == 2) {
|
||||
Actor_SetColorFilter(&this->actor, 0, 155, 0, 62);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 155, COLORFILTER_BUFFLAG_OPA, 62);
|
||||
} else {
|
||||
Actor_SetColorFilter(&this->actor, 0x4000, 255, 0, 42);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 42);
|
||||
}
|
||||
|
||||
this->actionFunc = EnDekubaba_Hit;
|
||||
|
@ -442,7 +442,7 @@ void EnDekubaba_SetupSway(EnDekubaba* this) {
|
|||
this->stemSectionAngle[1] = -0x4800;
|
||||
|
||||
EnDekubaba_DisableHitboxes(this);
|
||||
Actor_SetColorFilter(&this->actor, 0x4000, 255, 0, 35);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 35);
|
||||
this->collider.base.acFlags &= ~AC_ON;
|
||||
this->actionFunc = EnDekubaba_Sway;
|
||||
}
|
||||
|
@ -1020,7 +1020,7 @@ void EnDekubaba_DeadStickDrop(EnDekubaba* this, PlayState* play) {
|
|||
return;
|
||||
}
|
||||
|
||||
func_8002F554(&this->actor, play, GI_DEKU_STICKS_1);
|
||||
Actor_OfferGetItemNearby(&this->actor, play, GI_DEKU_STICKS_1);
|
||||
}
|
||||
|
||||
// Update and associated functions
|
||||
|
|
|
@ -214,7 +214,8 @@ void EnDekunuts_SetupBeDamaged(EnDekunuts* this) {
|
|||
this->actor.speedXZ = 10.0f;
|
||||
Audio_PlayActorSfx2(&this->actor, NA_SE_EN_NUTS_DAMAGE);
|
||||
Audio_PlayActorSfx2(&this->actor, NA_SE_EN_NUTS_CUTBODY);
|
||||
Actor_SetColorFilter(&this->actor, 0x4000, 0xFF, 0, Animation_GetLastFrame(&gDekuNutsDamageAnim));
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA,
|
||||
Animation_GetLastFrame(&gDekuNutsDamageAnim));
|
||||
}
|
||||
|
||||
void EnDekunuts_SetupBeStunned(EnDekunuts* this) {
|
||||
|
@ -223,7 +224,7 @@ void EnDekunuts_SetupBeStunned(EnDekunuts* this) {
|
|||
this->actionFunc = EnDekunuts_BeStunned;
|
||||
this->actor.speedXZ = 0.0f;
|
||||
Audio_PlayActorSfx2(&this->actor, NA_SE_EN_GOMA_JR_FREEZE);
|
||||
Actor_SetColorFilter(&this->actor, 0, 0xFF, 0,
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 255, COLORFILTER_BUFFLAG_OPA,
|
||||
Animation_GetLastFrame(&gDekuNutsDamageAnim) * this->animFlagAndTimer);
|
||||
}
|
||||
|
||||
|
|
|
@ -482,7 +482,7 @@ void EnDh_CollisionCheck(EnDh* this, PlayState* play) {
|
|||
if (player->unk_844 != 0) {
|
||||
this->unk_258 = player->unk_845;
|
||||
}
|
||||
Actor_SetColorFilter(&this->actor, 0x4000, 0xFF, 0, 8);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 8);
|
||||
lastHealth = this->actor.colChkInfo.health;
|
||||
if (Actor_ApplyDamage(&this->actor) == 0) {
|
||||
EnDh_SetupDeath(this);
|
||||
|
|
|
@ -383,7 +383,7 @@ void EnDha_UpdateHealth(EnDha* this, PlayState* play) {
|
|||
if (this->actor.colChkInfo.damageEffect == 0 || this->actor.colChkInfo.damageEffect == 6) {
|
||||
return;
|
||||
} else {
|
||||
Actor_SetColorFilter(&this->actor, 0x4000, 0xFF, 0, 8);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 8);
|
||||
if (Actor_ApplyDamage(&this->actor) == 0) {
|
||||
EnDha_SetupDeath(this);
|
||||
this->actor.colChkInfo.health = 8;
|
||||
|
|
|
@ -134,7 +134,7 @@ s32 EnDivingGame_HasMinigameFinished(EnDivingGame* this, PlayState* play) {
|
|||
Message_StartTextbox(play, this->actor.textId, NULL);
|
||||
this->unk_292 = TEXT_STATE_EVENT;
|
||||
this->allRupeesThrown = this->state = this->phase = this->unk_2A2 = this->grabbedRupeesCounter = 0;
|
||||
func_8002DF54(play, NULL, 8);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_8);
|
||||
this->actionFunc = func_809EE048;
|
||||
return true;
|
||||
} else {
|
||||
|
@ -159,7 +159,7 @@ s32 EnDivingGame_HasMinigameFinished(EnDivingGame* this, PlayState* play) {
|
|||
this->unk_292 = TEXT_STATE_EVENT;
|
||||
func_800F5B58();
|
||||
Audio_PlayFanfare(NA_BGM_SMALL_ITEM_GET);
|
||||
func_8002DF54(play, NULL, 8);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_8);
|
||||
if (!GET_EVENTCHKINF(EVENTCHKINF_38)) {
|
||||
this->actionFunc = func_809EE96C;
|
||||
} else {
|
||||
|
@ -187,7 +187,7 @@ void EnDivingGame_Talk(EnDivingGame* this, PlayState* play) {
|
|||
if (this->unk_292 != TEXT_STATE_DONE) {
|
||||
switch (this->state) {
|
||||
case ENDIVINGGAME_STATE_NOTPLAYING:
|
||||
func_8002DF54(play, NULL, 8);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_8);
|
||||
this->actionFunc = EnDivingGame_HandlePlayChoice;
|
||||
break;
|
||||
case ENDIVINGGAME_STATE_AWARDPRIZE:
|
||||
|
@ -254,7 +254,7 @@ void EnDivingGame_HandlePlayChoice(EnDivingGame* this, PlayState* play) {
|
|||
this->actionFunc = func_809EE048;
|
||||
} else {
|
||||
play->msgCtx.msgMode = MSGMODE_PAUSED;
|
||||
func_8002DF54(play, NULL, 8);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_8);
|
||||
this->actionFunc = func_809EE0FC;
|
||||
}
|
||||
}
|
||||
|
@ -266,11 +266,11 @@ void func_809EE048(EnDivingGame* this, PlayState* play) {
|
|||
if (this->unk_292 == Message_GetState(&play->msgCtx) && Message_ShouldAdvance(play)) {
|
||||
if (this->phase == ENDIVINGGAME_PHASE_ENDED) {
|
||||
Message_CloseTextbox(play);
|
||||
func_8002DF54(play, NULL, 7);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_7);
|
||||
this->actionFunc = func_809EDCB0;
|
||||
} else {
|
||||
play->msgCtx.msgMode = MSGMODE_PAUSED;
|
||||
func_8002DF54(play, NULL, 8);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_8);
|
||||
this->actionFunc = func_809EE0FC;
|
||||
}
|
||||
}
|
||||
|
@ -423,7 +423,7 @@ void func_809EE800(EnDivingGame* this, PlayState* play) {
|
|||
Interface_SetTimer(50 + BREG(2));
|
||||
}
|
||||
func_800F5ACC(NA_BGM_TIMED_MINI_GAME);
|
||||
func_8002DF54(play, NULL, 7);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_7);
|
||||
this->actor.textId = 0x405B;
|
||||
this->unk_292 = TEXT_STATE_EVENT;
|
||||
this->state = ENDIVINGGAME_STATE_PLAYING;
|
||||
|
@ -446,7 +446,7 @@ void func_809EE96C(EnDivingGame* this, PlayState* play) {
|
|||
SkelAnime_Update(&this->skelAnime);
|
||||
if ((this->unk_292 == Message_GetState(&play->msgCtx) && Message_ShouldAdvance(play))) {
|
||||
Message_CloseTextbox(play);
|
||||
func_8002DF54(play, NULL, 7);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_7);
|
||||
this->actor.textId = 0x4056;
|
||||
this->unk_292 = TEXT_STATE_EVENT;
|
||||
this->state = ENDIVINGGAME_STATE_AWARDPRIZE;
|
||||
|
@ -459,7 +459,7 @@ void func_809EEA00(EnDivingGame* this, PlayState* play) {
|
|||
if ((this->unk_292 == Message_GetState(&play->msgCtx) && Message_ShouldAdvance(play))) {
|
||||
Message_CloseTextbox(play);
|
||||
this->actor.parent = NULL;
|
||||
func_8002F434(&this->actor, play, GI_SCALE_SILVER, 90.0f, 10.0f);
|
||||
Actor_OfferGetItem(&this->actor, play, GI_SCALE_SILVER, 90.0f, 10.0f);
|
||||
this->actionFunc = func_809EEA90;
|
||||
}
|
||||
}
|
||||
|
@ -469,7 +469,7 @@ void func_809EEA90(EnDivingGame* this, PlayState* play) {
|
|||
if (Actor_HasParent(&this->actor, play)) {
|
||||
this->actionFunc = func_809EEAF8;
|
||||
} else {
|
||||
func_8002F434(&this->actor, play, GI_SCALE_SILVER, 90.0f, 10.0f);
|
||||
Actor_OfferGetItem(&this->actor, play, GI_SCALE_SILVER, 90.0f, 10.0f);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -370,18 +370,18 @@ void EnDns_Talk(EnDns* this, PlayState* play) {
|
|||
void func_809EFDD0(EnDns* this, PlayState* play) {
|
||||
if (this->actor.params == 0x9) {
|
||||
if (CUR_UPG_VALUE(UPG_DEKU_STICKS) < 2) {
|
||||
func_8002F434(&this->actor, play, GI_DEKU_STICK_UPGRADE_20, 130.0f, 100.0f);
|
||||
Actor_OfferGetItem(&this->actor, play, GI_DEKU_STICK_UPGRADE_20, 130.0f, 100.0f);
|
||||
} else {
|
||||
func_8002F434(&this->actor, play, GI_DEKU_STICK_UPGRADE_30, 130.0f, 100.0f);
|
||||
Actor_OfferGetItem(&this->actor, play, GI_DEKU_STICK_UPGRADE_30, 130.0f, 100.0f);
|
||||
}
|
||||
} else if (this->actor.params == 0xA) {
|
||||
if (CUR_UPG_VALUE(UPG_DEKU_NUTS) < 2) {
|
||||
func_8002F434(&this->actor, play, GI_DEKU_NUT_UPGRADE_30, 130.0f, 100.0f);
|
||||
Actor_OfferGetItem(&this->actor, play, GI_DEKU_NUT_UPGRADE_30, 130.0f, 100.0f);
|
||||
} else {
|
||||
func_8002F434(&this->actor, play, GI_DEKU_NUT_UPGRADE_40, 130.0f, 100.0f);
|
||||
Actor_OfferGetItem(&this->actor, play, GI_DEKU_NUT_UPGRADE_40, 130.0f, 100.0f);
|
||||
}
|
||||
} else {
|
||||
func_8002F434(&this->actor, play, this->dnsItemEntry->getItemId, 130.0f, 100.0f);
|
||||
Actor_OfferGetItem(&this->actor, play, this->dnsItemEntry->getItemId, 130.0f, 100.0f);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -119,7 +119,7 @@ void EnDntJiji_Wait(EnDntJiji* this, PlayState* play) {
|
|||
!(player->stateFlags1 & PLAYER_STATE1_11)) {
|
||||
OnePointCutscene_Init(play, 2230, -99, &this->actor, CAM_ID_MAIN);
|
||||
this->timer = 0;
|
||||
func_8002DF54(play, NULL, 8);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_8);
|
||||
this->actionFunc = EnDntJiji_SetupUnburrow;
|
||||
}
|
||||
}
|
||||
|
@ -253,9 +253,9 @@ void EnDntJiji_Talk(EnDntJiji* this, PlayState* play) {
|
|||
if ((Message_GetState(&play->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(play)) {
|
||||
func_8005B1A4(GET_ACTIVE_CAM(play));
|
||||
Message_CloseTextbox(play);
|
||||
func_8002DF54(play, NULL, 7);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_7);
|
||||
this->actor.parent = NULL;
|
||||
func_8002F434(&this->actor, play, this->getItemId, 400.0f, 200.0f);
|
||||
Actor_OfferGetItem(&this->actor, play, this->getItemId, 400.0f, 200.0f);
|
||||
this->actionFunc = EnDntJiji_SetupGivePrize;
|
||||
}
|
||||
}
|
||||
|
@ -265,7 +265,7 @@ void EnDntJiji_SetupGivePrize(EnDntJiji* this, PlayState* play) {
|
|||
if (Actor_HasParent(&this->actor, play)) {
|
||||
this->actionFunc = EnDntJiji_GivePrize;
|
||||
} else {
|
||||
func_8002F434(&this->actor, play, this->getItemId, 400.0f, 200.0f);
|
||||
Actor_OfferGetItem(&this->actor, play, this->getItemId, 400.0f, 200.0f);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -250,7 +250,7 @@ void EnDntNomal_TargetWait(EnDntNomal* this, PlayState* play) {
|
|||
this->hitCounter++;
|
||||
if (this->hitCounter >= 3) {
|
||||
OnePointCutscene_Init(play, 4140, -99, &this->actor, CAM_ID_MAIN);
|
||||
func_8002DF54(play, &this->actor, 1);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_1);
|
||||
this->timer4 = 50;
|
||||
this->actionFunc = EnDntNomal_SetupTargetUnburrow;
|
||||
}
|
||||
|
@ -339,7 +339,7 @@ void EnDntNomal_TargetTalk(EnDntNomal* this, PlayState* play) {
|
|||
Message_CloseTextbox(play);
|
||||
func_8005B1A4(GET_ACTIVE_CAM(play));
|
||||
GET_ACTIVE_CAM(play)->csId = 0;
|
||||
func_8002DF54(play, NULL, 8);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_8);
|
||||
this->actionFunc = EnDntNomal_SetupTargetGivePrize;
|
||||
}
|
||||
}
|
||||
|
@ -361,7 +361,7 @@ void EnDntNomal_TargetGivePrize(EnDntNomal* this, PlayState* play) {
|
|||
|
||||
if (Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_EN_EX_ITEM, itemX, itemY, itemZ, 0, 0, 0,
|
||||
EXITEM_BULLET_BAG) == NULL) {
|
||||
func_8002DF54(play, NULL, 7);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_7);
|
||||
Actor_Kill(&this->actor);
|
||||
}
|
||||
this->spawnedItem = true;
|
||||
|
|
|
@ -91,7 +91,7 @@ void EnDodojr_Destroy(Actor* thisx, PlayState* play) {
|
|||
|
||||
void EnDodojr_DoSwallowedBombEffects(EnDodojr* this) {
|
||||
Audio_PlayActorSfx2(&this->actor, NA_SE_IT_BOMB_EXPLOSION);
|
||||
Actor_SetColorFilter(&this->actor, 0x4000, 200, 0, 8);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 200, COLORFILTER_BUFFLAG_OPA, 8);
|
||||
}
|
||||
|
||||
void EnDodojr_SpawnLargeDust(EnDodojr* this, PlayState* play, s32 count) {
|
||||
|
@ -359,7 +359,7 @@ s32 EnDodojr_CheckDamaged(EnDodojr* this, PlayState* play) {
|
|||
(this->actionFunc != EnDodojr_StunnedBounce)) {
|
||||
Audio_PlayActorSfx2(&this->actor, NA_SE_EN_GOMA_JR_FREEZE);
|
||||
this->stunTimer = 120;
|
||||
Actor_SetColorFilter(&this->actor, 0, 200, 0, 120);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 200, COLORFILTER_BUFFLAG_OPA, 120);
|
||||
EnDodojr_SetupFlipBounce(this);
|
||||
this->actionFunc = EnDodojr_StunnedBounce;
|
||||
}
|
||||
|
@ -577,7 +577,7 @@ void EnDodojr_DeathSequence(EnDodojr* this, PlayState* play) {
|
|||
|
||||
if (this->counter != 0) {
|
||||
if (this->actor.colorFilterTimer == 0) {
|
||||
Actor_SetColorFilter(&this->actor, 0x4000, 200, 0, this->counter);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 200, COLORFILTER_BUFFLAG_OPA, this->counter);
|
||||
this->counter--;
|
||||
}
|
||||
} else {
|
||||
|
|
|
@ -497,7 +497,7 @@ void EnDodongo_SwallowBomb(EnDodongo* this, PlayState* play) {
|
|||
&this->bombSmokeEnvColor, 400, 10, 10);
|
||||
}
|
||||
Audio_PlayActorSfx2(&this->actor, NA_SE_IT_BOMB_EXPLOSION);
|
||||
Actor_SetColorFilter(&this->actor, 0x4000, 0x78, 0, 8);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 120, COLORFILTER_BUFFLAG_OPA, 8);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -676,7 +676,7 @@ void EnDodongo_Death(EnDodongo* this, PlayState* play) {
|
|||
EnDodongo_SpawnBombSmoke(this, play);
|
||||
}
|
||||
} else if (this->actor.colorFilterTimer == 0) {
|
||||
Actor_SetColorFilter(&this->actor, 0x4000, 0x78, 0, 4);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 120, COLORFILTER_BUFFLAG_OPA, 4);
|
||||
}
|
||||
if (SkelAnime_Update(&this->skelAnime)) {
|
||||
if (this->timer == 0) {
|
||||
|
@ -721,12 +721,12 @@ void EnDodongo_CollisionCheck(EnDodongo* this, PlayState* play) {
|
|||
this->damageEffect = this->actor.colChkInfo.damageEffect;
|
||||
if ((this->actor.colChkInfo.damageEffect == 1) || (this->actor.colChkInfo.damageEffect == 0xF)) {
|
||||
if (this->actionState != DODONGO_STUNNED) {
|
||||
Actor_SetColorFilter(&this->actor, 0, 0x78, 0, 0x50);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 120, COLORFILTER_BUFFLAG_OPA, 80);
|
||||
Actor_ApplyDamage(&this->actor);
|
||||
EnDodongo_SetupStunned(this);
|
||||
}
|
||||
} else {
|
||||
Actor_SetColorFilter(&this->actor, 0x4000, 0x78, 0, 8);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 120, COLORFILTER_BUFFLAG_OPA, 8);
|
||||
if (Actor_ApplyDamage(&this->actor) == 0) {
|
||||
EnDodongo_SetupDeath(this, play);
|
||||
} else {
|
||||
|
|
|
@ -90,7 +90,7 @@ void EnDs_GiveOddPotion(EnDs* this, PlayState* play) {
|
|||
this->actionFunc = EnDs_DisplayOddPotionText;
|
||||
gSaveContext.subTimerState = SUBTIMER_STATE_OFF;
|
||||
} else {
|
||||
func_8002F434(&this->actor, play, GI_ODD_POTION, 10000.0f, 50.0f);
|
||||
Actor_OfferGetItem(&this->actor, play, GI_ODD_POTION, 10000.0f, 50.0f);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -98,7 +98,7 @@ void EnDs_TalkAfterBrewOddPotion(EnDs* this, PlayState* play) {
|
|||
if ((Message_GetState(&play->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(play)) {
|
||||
Message_CloseTextbox(play);
|
||||
this->actionFunc = EnDs_GiveOddPotion;
|
||||
func_8002F434(&this->actor, play, GI_ODD_POTION, 10000.0f, 50.0f);
|
||||
Actor_OfferGetItem(&this->actor, play, GI_ODD_POTION, 10000.0f, 50.0f);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -170,7 +170,7 @@ void EnDs_GiveBluePotion(EnDs* this, PlayState* play) {
|
|||
this->actor.parent = NULL;
|
||||
this->actionFunc = EnDs_Talk;
|
||||
} else {
|
||||
func_8002F434(&this->actor, play, GI_BOTTLE_POTION_BLUE, 10000.0f, 50.0f);
|
||||
Actor_OfferGetItem(&this->actor, play, GI_BOTTLE_POTION_BLUE, 10000.0f, 50.0f);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -189,7 +189,7 @@ void EnDs_OfferBluePotion(EnDs* this, PlayState* play) {
|
|||
case 2: // have 100 rupees and empty bottle
|
||||
Rupees_ChangeBy(-100);
|
||||
this->actor.flags &= ~ACTOR_FLAG_16;
|
||||
func_8002F434(&this->actor, play, GI_BOTTLE_POTION_BLUE, 10000.0f, 50.0f);
|
||||
Actor_OfferGetItem(&this->actor, play, GI_BOTTLE_POTION_BLUE, 10000.0f, 50.0f);
|
||||
this->actionFunc = EnDs_GiveBluePotion;
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -328,7 +328,7 @@ void func_809FE3C0(EnDu* this, PlayState* play) {
|
|||
return;
|
||||
}
|
||||
if (this->interactInfo.talkState == NPC_TALK_STATE_ACTION) {
|
||||
func_8002DF54(play, &this->actor, 7);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_7);
|
||||
this->interactInfo.talkState = NPC_TALK_STATE_IDLE;
|
||||
}
|
||||
if (this->actor.xzDistToPlayer < 116.0f + this->collider.dim.radius) {
|
||||
|
@ -423,7 +423,7 @@ void func_809FE890(EnDu* this, PlayState* play) {
|
|||
CsCmdActorAction* csAction;
|
||||
|
||||
if (play->csCtx.state == CS_STATE_IDLE) {
|
||||
func_8002DF54(play, &this->actor, 1);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_1);
|
||||
EnDu_SetupAction(this, func_809FEB08);
|
||||
return;
|
||||
}
|
||||
|
@ -490,7 +490,7 @@ void func_809FEB08(EnDu* this, PlayState* play) {
|
|||
this->unk_1EE = 0;
|
||||
|
||||
if (this->unk_1E8 == 1) {
|
||||
func_8002DF54(play, &this->actor, 7);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_7);
|
||||
Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ENDU_ANIM_1);
|
||||
EnDu_SetupAction(this, func_809FE3C0);
|
||||
return;
|
||||
|
@ -509,7 +509,7 @@ void func_809FEB08(EnDu* this, PlayState* play) {
|
|||
|
||||
void func_809FEC14(EnDu* this, PlayState* play) {
|
||||
if (this->interactInfo.talkState == NPC_TALK_STATE_ACTION) {
|
||||
func_8002DF54(play, &this->actor, 7);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_7);
|
||||
EnDu_SetupAction(this, func_809FEC70);
|
||||
func_809FEC70(this, play);
|
||||
}
|
||||
|
@ -522,7 +522,7 @@ void func_809FEC70(EnDu* this, PlayState* play) {
|
|||
} else {
|
||||
f32 xzRange = this->actor.xzDistToPlayer + 1.0f;
|
||||
|
||||
func_8002F434(&this->actor, play, GI_GORONS_BRACELET, xzRange, fabsf(this->actor.yDistToPlayer) + 1.0f);
|
||||
Actor_OfferGetItem(&this->actor, play, GI_GORONS_BRACELET, xzRange, fabsf(this->actor.yDistToPlayer) + 1.0f);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -281,14 +281,14 @@ void EnEiyer_SetupHurt(EnEiyer* this) {
|
|||
this->actor.gravity = 0.0f;
|
||||
this->actor.velocity.y = 0.0f;
|
||||
this->actor.speedXZ = 5.0f;
|
||||
Actor_SetColorFilter(&this->actor, 0x4000, 200, 0, 40);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 200, COLORFILTER_BUFFLAG_OPA, 40);
|
||||
this->collider.base.acFlags &= ~AC_ON;
|
||||
this->actionFunc = EnEiyer_Hurt;
|
||||
}
|
||||
|
||||
void EnEiyer_SetupDie(EnEiyer* this) {
|
||||
this->timer = 20;
|
||||
Actor_SetColorFilter(&this->actor, 0x4000, 200, 0, 40);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 200, COLORFILTER_BUFFLAG_OPA, 40);
|
||||
|
||||
if (this->collider.info.bumper.dmgFlags != (DMG_BOOMERANG | DMG_EXPLOSIVE | DMG_DEKU_NUT)) {
|
||||
this->actor.speedXZ = 6.0f;
|
||||
|
@ -317,7 +317,7 @@ void EnEiyer_SetupStunned(EnEiyer* this) {
|
|||
this->actor.velocity.y = 0.0f;
|
||||
this->actor.gravity = -1.0f;
|
||||
this->collider.dim.height = sColCylInit.dim.height + 8;
|
||||
Actor_SetColorFilter(&this->actor, 0, 200, 0, 80);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 200, COLORFILTER_BUFFLAG_OPA, 80);
|
||||
this->collider.base.atFlags &= ~AT_ON;
|
||||
Audio_PlayActorSfx2(&this->actor, NA_SE_EN_GOMA_JR_FREEZE);
|
||||
this->actionFunc = EnEiyer_Stunned;
|
||||
|
|
|
@ -661,7 +661,7 @@ void func_80A0329C(EnElf* this, PlayState* play) {
|
|||
|
||||
if (!(this->fairyFlags & FAIRY_FLAG_BIG)) {
|
||||
// GI_MAX in this case allows the player to catch the actor in a bottle
|
||||
func_8002F434(&this->actor, play, GI_MAX, 80.0f, 60.0f);
|
||||
Actor_OfferGetItem(&this->actor, play, GI_MAX, 80.0f, 60.0f);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -386,14 +386,14 @@ void EnExItem_TargetPrizeApproach(EnExItem* this, PlayState* play) {
|
|||
s32 getItemId;
|
||||
|
||||
this->actor.draw = NULL;
|
||||
func_8002DF54(play, NULL, 7);
|
||||
func_8002DF54(play, NULL, PLAYER_CSMODE_7);
|
||||
this->actor.parent = NULL;
|
||||
if (CUR_UPG_VALUE(UPG_BULLET_BAG) == 1) {
|
||||
getItemId = GI_BULLET_BAG_40;
|
||||
} else {
|
||||
getItemId = GI_BULLET_BAG_50;
|
||||
}
|
||||
func_8002F434(&this->actor, play, getItemId, 2000.0f, 1000.0f);
|
||||
Actor_OfferGetItem(&this->actor, play, getItemId, 2000.0f, 1000.0f);
|
||||
this->actionFunc = EnExItem_TargetPrizeGive;
|
||||
}
|
||||
}
|
||||
|
@ -406,7 +406,7 @@ void EnExItem_TargetPrizeGive(EnExItem* this, PlayState* play) {
|
|||
} else {
|
||||
getItemId = (CUR_UPG_VALUE(UPG_BULLET_BAG) == 2) ? GI_BULLET_BAG_50 : GI_BULLET_BAG_40;
|
||||
|
||||
func_8002F434(&this->actor, play, getItemId, 2000.0f, 1000.0f);
|
||||
Actor_OfferGetItem(&this->actor, play, getItemId, 2000.0f, 1000.0f);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -214,7 +214,7 @@ void EnFirefly_SetupFall(EnFirefly* this) {
|
|||
Animation_Change(&this->skelAnime, &gKeeseFlyAnim, 0.5f, 0.0f, 0.0f, ANIMMODE_LOOP_INTERP, -3.0f);
|
||||
Audio_PlayActorSfx2(&this->actor, NA_SE_EN_FFLY_DEAD);
|
||||
this->actor.flags |= ACTOR_FLAG_4;
|
||||
Actor_SetColorFilter(&this->actor, 0x4000, 0xFF, 0, 40);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 40);
|
||||
this->actionFunc = EnFirefly_Fall;
|
||||
}
|
||||
|
||||
|
@ -248,7 +248,7 @@ void EnFirefly_SetupFlyAway(EnFirefly* this) {
|
|||
|
||||
void EnFirefly_SetupStunned(EnFirefly* this) {
|
||||
this->timer = 80;
|
||||
Actor_SetColorFilter(&this->actor, 0, 0xFF, 0, 80);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 255, COLORFILTER_BUFFLAG_OPA, 80);
|
||||
this->auraType = KEESE_AURA_NONE;
|
||||
this->actor.velocity.y = 0.0f;
|
||||
this->skelAnime.playSpeed = 3.0f;
|
||||
|
@ -263,7 +263,7 @@ void EnFirefly_SetupFrozenFall(EnFirefly* this, PlayState* play) {
|
|||
this->actor.flags |= ACTOR_FLAG_4;
|
||||
this->auraType = KEESE_AURA_NONE;
|
||||
this->actor.speedXZ = 0.0f;
|
||||
Actor_SetColorFilter(&this->actor, 0, 0xFF, 0, 0xFF);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 255, COLORFILTER_BUFFLAG_OPA, 255);
|
||||
Audio_PlayActorSfx2(&this->actor, NA_SE_EN_FFLY_DEAD);
|
||||
|
||||
for (i = 0; i <= 7; i++) {
|
||||
|
|
|
@ -710,7 +710,7 @@ void EnFish_OrdinaryUpdate(EnFish* this, PlayState* play) {
|
|||
EnFish_BeginRespawn(this);
|
||||
} else if (EnFish_InBottleRange(this, play)) {
|
||||
// GI_MAX in this case allows the player to catch the actor in a bottle
|
||||
func_8002F434(&this->actor, play, GI_MAX, 80.0f, 20.0f);
|
||||
Actor_OfferGetItem(&this->actor, play, GI_MAX, 80.0f, 20.0f);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -395,7 +395,7 @@ void EnFloormas_SetupTakeDamage(EnFloormas* this) {
|
|||
} else {
|
||||
this->actor.world.rot.y = Actor_WorldYawTowardActor(&this->actor, this->collider.base.ac) + 0x8000;
|
||||
}
|
||||
Actor_SetColorFilter(&this->actor, 0x4000, 0xFF, 0, 0x14);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 20);
|
||||
this->actionFunc = EnFloormas_TakeDamage;
|
||||
this->actor.speedXZ = 5.0f;
|
||||
this->actor.velocity.y = 5.5f;
|
||||
|
@ -412,9 +412,9 @@ void EnFloormas_SetupFreeze(EnFloormas* this) {
|
|||
Animation_Change(&this->skelAnime, &gWallmasterJumpAnim, 1.5f, 0, 20.0f, ANIMMODE_ONCE, -3.0f);
|
||||
this->actor.speedXZ = 0.0f;
|
||||
if (this->actor.colChkInfo.damageEffect == 4) {
|
||||
Actor_SetColorFilter(&this->actor, -0x8000, 0xFF, 0, 0x50);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_GRAY, 255, COLORFILTER_BUFFLAG_OPA, 80);
|
||||
} else {
|
||||
Actor_SetColorFilter(&this->actor, 0, 0xFF, 0, 0x50);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 255, COLORFILTER_BUFFLAG_OPA, 80);
|
||||
if (this->actor.scale.x > 0.004f) {
|
||||
Audio_PlayActorSfx2(&this->actor, NA_SE_EN_GOMA_JR_FREEZE);
|
||||
} else {
|
||||
|
|
|
@ -1013,7 +1013,7 @@ void EnFr_Deactivate(EnFr* this, PlayState* play) {
|
|||
this->actionFunc = EnFr_Idle;
|
||||
} else {
|
||||
this->actionFunc = EnFr_GiveReward;
|
||||
func_8002F434(&this->actor, play, this->reward, 30.0f, 100.0f);
|
||||
Actor_OfferGetItem(&this->actor, play, this->reward, 30.0f, 100.0f);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1022,7 +1022,7 @@ void EnFr_GiveReward(EnFr* this, PlayState* play) {
|
|||
this->actor.parent = NULL;
|
||||
this->actionFunc = EnFr_SetIdle;
|
||||
} else {
|
||||
func_8002F434(&this->actor, play, this->reward, 30.0f, 100.0f);
|
||||
Actor_OfferGetItem(&this->actor, play, this->reward, 30.0f, 100.0f);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -247,7 +247,8 @@ void EnFw_Run(EnFw* this, PlayState* play) {
|
|||
Math_SmoothStepToF(&this->actor.scale.x, 0.024999999f, 0.08f, 0.6f, 0.0f);
|
||||
Actor_SetScale(&this->actor, this->actor.scale.x);
|
||||
if (this->actor.colorFilterTimer == 0) {
|
||||
Actor_SetColorFilter(&this->actor, 0x4000, 0xC8, 0, this->explosionTimer);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 200, COLORFILTER_BUFFLAG_OPA,
|
||||
this->explosionTimer);
|
||||
this->explosionTimer--;
|
||||
}
|
||||
|
||||
|
@ -265,7 +266,8 @@ void EnFw_Run(EnFw* this, PlayState* play) {
|
|||
}
|
||||
} else {
|
||||
if (!(this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) || this->actor.velocity.y > 0.0f) {
|
||||
Actor_SetColorFilter(&this->actor, 0x4000, 0xC8, 0, this->damageTimer);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 200, COLORFILTER_BUFFLAG_OPA,
|
||||
this->damageTimer);
|
||||
return;
|
||||
}
|
||||
DECR(this->damageTimer);
|
||||
|
|
|
@ -344,7 +344,7 @@ void EnFz_ApplyDamage(EnFz* this, PlayState* play) {
|
|||
switch (this->actor.colChkInfo.damageEffect) {
|
||||
case 0xF:
|
||||
Actor_ApplyDamage(&this->actor);
|
||||
Actor_SetColorFilter(&this->actor, 0x4000, 0xFF, 0x2000, 8);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_XLU, 8);
|
||||
if (this->actor.colChkInfo.health != 0) {
|
||||
Audio_PlayActorSfx2(&this->actor, NA_SE_EN_FREEZAD_DAMAGE);
|
||||
vec.x = this->actor.world.pos.x;
|
||||
|
@ -365,7 +365,7 @@ void EnFz_ApplyDamage(EnFz* this, PlayState* play) {
|
|||
|
||||
case 2:
|
||||
Actor_ApplyDamage(&this->actor);
|
||||
Actor_SetColorFilter(&this->actor, 0x4000, 0xFF, 0x2000, 8);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_XLU, 8);
|
||||
if (this->actor.colChkInfo.health == 0) {
|
||||
Audio_PlayActorSfx2(&this->actor, NA_SE_EN_FREEZAD_DEAD);
|
||||
EnFz_SetupMelt(this);
|
||||
|
|
|
@ -350,7 +350,7 @@ void func_80A2FA50(EnGb* this, PlayState* play) {
|
|||
|
||||
void func_80A2FB40(EnGb* this, PlayState* play) {
|
||||
if (Message_GetState(&play->msgCtx) == TEXT_STATE_DONE && Message_ShouldAdvance(play)) {
|
||||
func_8002F434(&this->dyna.actor, play, GI_BOTTLE_EMPTY, 100.0f, 10.0f);
|
||||
Actor_OfferGetItem(&this->dyna.actor, play, GI_BOTTLE_EMPTY, 100.0f, 10.0f);
|
||||
this->actionFunc = func_80A2FBB0;
|
||||
}
|
||||
}
|
||||
|
@ -360,7 +360,7 @@ void func_80A2FBB0(EnGb* this, PlayState* play) {
|
|||
this->dyna.actor.parent = NULL;
|
||||
this->actionFunc = func_80A2FC0C;
|
||||
} else {
|
||||
func_8002F434(&this->dyna.actor, play, GI_BOTTLE_EMPTY, 100.0f, 10.0f);
|
||||
Actor_OfferGetItem(&this->dyna.actor, play, GI_BOTTLE_EMPTY, 100.0f, 10.0f);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -242,7 +242,7 @@ void EnGe1_KickPlayer(EnGe1* this, PlayState* play) {
|
|||
void EnGe1_SpotPlayer(EnGe1* this, PlayState* play) {
|
||||
this->cutsceneTimer = 30;
|
||||
this->actionFunc = EnGe1_KickPlayer;
|
||||
func_8002DF54(play, &this->actor, 0x5F);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_95);
|
||||
func_80078884(NA_SE_SY_FOUND);
|
||||
Message_StartTextbox(play, 0x6000, &this->actor);
|
||||
}
|
||||
|
@ -512,7 +512,7 @@ void EnGe1_WaitTillItemGiven_Archery(EnGe1* this, PlayState* play) {
|
|||
} else {
|
||||
getItemId = GI_HEART_PIECE;
|
||||
}
|
||||
func_8002F434(&this->actor, play, getItemId, 10000.0f, 50.0f);
|
||||
Actor_OfferGetItem(&this->actor, play, getItemId, 10000.0f, 50.0f);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -541,7 +541,7 @@ void EnGe1_BeginGiveItem_Archery(EnGe1* this, PlayState* play) {
|
|||
getItemId = GI_HEART_PIECE;
|
||||
}
|
||||
|
||||
func_8002F434(&this->actor, play, getItemId, 10000.0f, 50.0f);
|
||||
Actor_OfferGetItem(&this->actor, play, getItemId, 10000.0f, 50.0f);
|
||||
}
|
||||
|
||||
void EnGe1_TalkWinPrize_Archery(EnGe1* this, PlayState* play) {
|
||||
|
@ -586,7 +586,7 @@ void EnGe1_BeginGame_Archery(EnGe1* this, PlayState* play) {
|
|||
SET_EVENTCHKINF(EVENTCHKINF_68);
|
||||
|
||||
if (!(player->stateFlags1 & PLAYER_STATE1_23)) {
|
||||
func_8002DF54(play, &this->actor, 1);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_1);
|
||||
} else {
|
||||
horse = Actor_FindNearby(play, &player->actor, ACTOR_EN_HORSE, ACTORCAT_BG, 1200.0f);
|
||||
player->actor.freezeTimer = 1200;
|
||||
|
|
|
@ -451,7 +451,7 @@ void EnGe2_WaitTillCardGiven(EnGe2* this, PlayState* play) {
|
|||
this->actor.parent = NULL;
|
||||
this->actionFunc = EnGe2_SetActionAfterTalk;
|
||||
} else {
|
||||
func_8002F434(&this->actor, play, GI_GERUDOS_CARD, 10000.0f, 50.0f);
|
||||
Actor_OfferGetItem(&this->actor, play, GI_GERUDOS_CARD, 10000.0f, 50.0f);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -460,7 +460,7 @@ void EnGe2_GiveCard(EnGe2* this, PlayState* play) {
|
|||
Message_CloseTextbox(play);
|
||||
this->actor.flags &= ~ACTOR_FLAG_16;
|
||||
this->actionFunc = EnGe2_WaitTillCardGiven;
|
||||
func_8002F434(&this->actor, play, GI_GERUDOS_CARD, 10000.0f, 50.0f);
|
||||
Actor_OfferGetItem(&this->actor, play, GI_GERUDOS_CARD, 10000.0f, 50.0f);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -480,7 +480,7 @@ void EnGe2_SetupCapturePlayer(EnGe2* this, PlayState* play) {
|
|||
this->stateFlags |= GE2_STATE_CAPTURING;
|
||||
this->actor.speedXZ = 0.0f;
|
||||
EnGe2_ChangeAction(this, GE2_ACTION_CAPTURETURN);
|
||||
func_8002DF54(play, &this->actor, 95);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_95);
|
||||
func_80078884(NA_SE_SY_FOUND);
|
||||
Message_StartTextbox(play, 0x6000, &this->actor);
|
||||
}
|
||||
|
@ -556,7 +556,9 @@ void EnGe2_Update(Actor* thisx, PlayState* play) {
|
|||
} else if (this->collider.base.acFlags & AC_HIT) {
|
||||
if ((this->collider.info.acHitInfo != NULL) &&
|
||||
(this->collider.info.acHitInfo->toucher.dmgFlags & DMG_HOOKSHOT)) {
|
||||
Actor_SetColorFilter(&this->actor, 0, 120, 0, 400);
|
||||
//! @bug duration parameter is larger than 255 which messes with the internal bitpacking of the colorfilter.
|
||||
//! Because of the duration being tracked as an unsigned byte it ends up being truncated to 144
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 120, COLORFILTER_BUFFLAG_OPA, 400);
|
||||
this->actor.update = EnGe2_UpdateStunned;
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -141,7 +141,7 @@ void EnGe3_WaitTillCardGiven(EnGe3* this, PlayState* play) {
|
|||
this->actor.parent = NULL;
|
||||
this->actionFunc = EnGe3_Wait;
|
||||
} else {
|
||||
func_8002F434(&this->actor, play, GI_GERUDOS_CARD, 10000.0f, 50.0f);
|
||||
Actor_OfferGetItem(&this->actor, play, GI_GERUDOS_CARD, 10000.0f, 50.0f);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -150,7 +150,7 @@ void EnGe3_GiveCard(EnGe3* this, PlayState* play) {
|
|||
Message_CloseTextbox(play);
|
||||
this->actor.flags &= ~ACTOR_FLAG_16;
|
||||
this->actionFunc = EnGe3_WaitTillCardGiven;
|
||||
func_8002F434(&this->actor, play, GI_GERUDOS_CARD, 10000.0f, 50.0f);
|
||||
Actor_OfferGetItem(&this->actor, play, GI_GERUDOS_CARD, 10000.0f, 50.0f);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -159,7 +159,7 @@ void EnGe3_ForceTalk(EnGe3* this, PlayState* play) {
|
|||
this->actionFunc = EnGe3_GiveCard;
|
||||
} else {
|
||||
if (!(this->unk_30C & 4)) {
|
||||
func_8002DF54(play, &this->actor, 7);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_7);
|
||||
this->unk_30C |= 4;
|
||||
}
|
||||
this->actor.textId = 0x6004;
|
||||
|
|
|
@ -919,7 +919,7 @@ void EnGeldB_SpinAttack(EnGeldB* this, PlayState* play) {
|
|||
if (&player->actor == this->swordCollider.base.at) {
|
||||
func_8002F71C(play, &this->actor, 6.0f, this->actor.yawTowardsPlayer, 6.0f);
|
||||
this->spinAttackState = 2;
|
||||
func_8002DF54(play, &this->actor, 0x18);
|
||||
func_8002DF54(play, &this->actor, PLAYER_CSMODE_24);
|
||||
Message_StartTextbox(play, 0x6003, &this->actor);
|
||||
this->timer = 30;
|
||||
this->actor.speedXZ = 0.0f;
|
||||
|
@ -1373,12 +1373,12 @@ void EnGeldB_CollisionCheck(EnGeldB* this, PlayState* play) {
|
|||
if ((this->actor.colChkInfo.damageEffect == GELDB_DMG_STUN) ||
|
||||
(this->actor.colChkInfo.damageEffect == GELDB_DMG_FREEZE)) {
|
||||
if (this->action != GELDB_STUNNED) {
|
||||
Actor_SetColorFilter(&this->actor, 0, 0x78, 0, 0x50);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 120, COLORFILTER_BUFFLAG_OPA, 80);
|
||||
Actor_ApplyDamage(&this->actor);
|
||||
EnGeldB_SetupStunned(this);
|
||||
}
|
||||
} else {
|
||||
Actor_SetColorFilter(&this->actor, 0x4000, 0xFF, 0, 8);
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 8);
|
||||
if (Actor_ApplyDamage(&this->actor) == 0) {
|
||||
if (this->keyFlag != 0) {
|
||||
key = Item_DropCollectible(play, &this->actor.world.pos, this->keyFlag | ITEM00_SMALL_KEY);
|
||||
|
|
|
@ -245,7 +245,7 @@ void EnGm_ProcessChoiceIndex(EnGm* this, PlayState* play) {
|
|||
Message_ContinueTextbox(play, 0xC8);
|
||||
this->actionFunc = func_80A3DD7C;
|
||||
} else {
|
||||
func_8002F434(&this->actor, play, GI_SWORD_KNIFE, 415.0f, 10.0f);
|
||||
Actor_OfferGetItem(&this->actor, play, GI_SWORD_KNIFE, 415.0f, 10.0f);
|
||||
this->actionFunc = func_80A3DF00;
|
||||
}
|
||||
break;
|
||||
|
@ -262,7 +262,7 @@ void func_80A3DF00(EnGm* this, PlayState* play) {
|
|||
this->actor.parent = NULL;
|
||||
this->actionFunc = func_80A3DF60;
|
||||
} else {
|
||||
func_8002F434(&this->actor, play, GI_SWORD_KNIFE, 415.0f, 10.0f);
|
||||
Actor_OfferGetItem(&this->actor, play, GI_SWORD_KNIFE, 415.0f, 10.0f);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -226,7 +226,7 @@ s16 EnGo_UpdateTalkState(PlayState* play, Actor* thisx) {
|
|||
unkState = NPC_TALK_STATE_IDLE;
|
||||
break;
|
||||
case 0x3036:
|
||||
func_8002F434(thisx, play, GI_TUNIC_GORON, xzRange, yRange);
|
||||
Actor_OfferGetItem(thisx, play, GI_TUNIC_GORON, xzRange, yRange);
|
||||
SET_INFTABLE(INFTABLE_10D); // EnGo exclusive flag
|
||||
unkState = NPC_TALK_STATE_ACTION;
|
||||
break;
|
||||
|
@ -972,7 +972,7 @@ void EnGo_GetItem(EnGo* this, PlayState* play) {
|
|||
|
||||
yDist = fabsf(this->actor.yDistToPlayer) + 1.0f;
|
||||
xzDist = this->actor.xzDistToPlayer + 1.0f;
|
||||
func_8002F434(&this->actor, play, getItemId, xzDist, yDist);
|
||||
Actor_OfferGetItem(&this->actor, play, getItemId, xzDist, yDist);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue