Before I had the change back to the placeholder actor id the Dummy
Player actors were spawned with, but since we grabbed the actorDB
entry before Actor_Destroy was called it didn't matter. Move it
and the requisite log statement to after Actor_Destroy.
The sampleDataStartPad and aligned variables existed solely to satisfy
the N64 RSP DMA requirement that source addresses be 16-byte aligned.
On PC, aLoadBuffer is a plain memcpy with no such constraint.
The alignment dance caused aLoadBuffer to read up to 15 bytes before
sampleData and up to 8+ bytes past the end of the sample buffer. On
platforms with strict allocator guard pages (e.g. OpenBSD), this
triggers a SIGSEGV.
A second issue remains after removing the alignment dance: nFramesToDecode
is derived from sample counts (loopEnd), but size is not always a multiple
of frameSize. loopEnd and size are derived independently during encoding
and can disagree on the final partial frame, leaving nFramesToDecode *
frameSize exceeding the remaining bytes in the buffer.
Remove sampleDataStartPad and aligned entirely. Clamp the load to
min(nFramesToDecode * frameSize, audioFontSample->size - sampleDataOffset).
The ADPCM decoder operates on DMEM, so a partial last frame in DMEM
produces at most a negligible artifact at sound termination.
Change Actor_SpawnEntry to use VB
Move adult zelda collapse stalfos to a explicit hook
Move dark link to a explicit hook
Some more canRandomize that were not needed
Move bg_haka & bg_haka_tubo to explicit hooks
Move en_vali to an explicit hook
Move bg_mori_bigst to an explicit hook
Fix door opening before the enemies are killed
Remove `canRandomize` parameter
Move bg_haka_huta to explicit hooks
fix goron messages in rando
also always include "IS_RANDO" in rando shipinit dependencies
don't use rando RNG, trying std::array
avoid sprintf, std::array not necessary
fix random rupee name crash
roll random traps: don't reuse rando rng
fix better bombchu typo
Allows the rebinding for Resetting the game, Debug Map Select, and Debug No-Clip.
Also allows for Speed Modifiers to use the new button combos, instead of only the modifier buttons.
Defines the hook for OnTextLoad. Intercepts message loading with hooks. Adds file to handle the CustomMessage creation for items.
Handles Ice Traps, Triforce Pieces, and Custom Items. Handle maps, compasses, and keys
Converts gossip stone hints to hook. Handle one-off merchant messages. Convert scrubs and shop text and remove now-unused code
Convert Sheik and Ganondorf hint text. Convert skulltula people messages. Convert more static hints
Specifically Dampe, Greg, Warp Songs, Frogs, Loach, Fishing Pole, and Saria
Convert Biggoron Hint. Convert Big Poes hint. Convert Anju hint dialogue. Convert Malon hint. Convert Horseback Archery hints. Convert Mask Shop SIgn hint
Convert Lake Hylia Switch related text. Convert Shooting Gallery bow reminder message
Convert random rupee names. Convert Rando-Relevant Navi Enhancement. Convert Random Goron messages
Convert Injecting Skull token counts. Add in a way to AutoFormat with an item icon.. Fix some errors with skull tokens and apply icon
Convert heart container item counts. Convert Inject Item Count for Heart Pieces. Port Better Bombchu Shopping. Convert Market Sneak
Port Quit Fishing At Door and clean up unused stuff. Reintroduce missing Mysterious warp song hint
Make ShipInitFuncs static
Adds and uses per-item articles for get item messages
Fix Entrance Hints and port toggle from dev-copper
Fix TimeSplit crash on empty name
Initialize OptionValue::mVal to fix undefined behavior
Fix undefined behavior in GraveHoleJumps surface type copy.
The memcpy was reading 33 SurfaceTypes regardless of the actual count,
causing a buffer overread since NTSC 1.0 only has 31 surface types and
later versions have 32. Now uses the actual surfaceTypesCount from the
collision header.
Fix undefined behavior in framebuffer OTR signature check.
Use calloc instead of malloc for framebuffer allocation to zero-initialize
the memory. This fixes Valgrind warnings about reading uninitialized values
when ResourceMgr_OTRSigCheck reads from framebuffer pointers to check for
the "__OTR__" signature.
Fix undefined behavior in fontLoadStatus initialization.
Use calloc instead of malloc when allocating fontLoadStatus array
to ensure zero-initialization. This fixes Valgrind warnings about
conditional jumps depending on uninitialized values in
AudioLoad_SetFontLoadStatus.
This adds Roc's as a fully implemented item into the randomizer pool. When both Roc's and Nayru's is found, you can swap between them on the pause menu
Many people have contributed to this over time, so huge shoutout to:
- kentonm, this item is directly inspired by their Roc's Feather from their romhack Indigo. Also provided me with their GI model, icon texture and animation to use.
- PurpleHato, for providing the images for the item name shown on the kaleidoscope.
- Dana The Elf, providing another custom animation for the item.
- Reppan, for helping to tweak the animation and exporting the GI model for me.
Implements object_custom_equip objects that adds more support to have items modified by modders without having to export with hands or do xml edits to load hands. This is autonomous if exported as a object_custom_equip
Also adds non existing DisplayList for items that originally did not have a DisplayList. Longshot and Big Goron Sword Sheath is 2 examples
- The "firstInput" stat is set on first input in game. Used for RTA
Timing.
- The "fileCreatedAt" stat is now set when then save file is created
(After the player is done entering the file name). Useful for seeding
non rando randomizers like Mirrorworld, Enemy Randomizer, extraTraps,
etc.
* Adds new Progressive Bombchu Bags option
Also changes existing code to account for Bombchu Bags becoming
a drop down with 3 values instead of a checkbox
* Handle the new lower capacities for ammo refills
* Handle what happens when receiving a bombchu bag
* Remove the trick name of Progressive Bombchu Bag
Since, you know, that's an actual thing now.
* Implements Bombchu Bag handling next to Progressive Bombchu Handling
* clang-formatting
* Add extra bag for plentiful items
* Address review comment
* Move bombchu upgrade level to gSaveContext and add save/load
* Use logic's saveContext for correct logic calculations
* Remove RG_PROGRESSIVE_BOMBCHU
* Fix Bombchu Refill obtainability
* Don't add normal chus to the pool if chu bags are on.
* cmake-format
* Properly reset bombchuUpgradeLevel on savefile init
* Fix error with va_arg on linux
* Fixes small error in the Bombchu Bag description
* Fix bug with bombchu obtainability
* clang-format
* Fix infinite bombchu text
* fix clang-format
- Returned support for custom tunic colors
- Ocarina playback now audible
- Fixed movement translation issue when climbing or going through crawlspaces
- Fixed issue preventing some items from being visible in Dummy hands (namely ocarina)
- Fixed stick length not correctly syncing
* Modularize Hurt Container mode hook
* Hook condition was wrong - fixed it
* Change type of hurtEnabled for clarity
* Change type back to bool
* Add VB hook
* Don't duplicate health capacity modifier calculation
* Add constants, replace magic numbers
* Clang format
* Publicize more health unit macros
* Make mod file self-contained
* Add function to be able to feed specific path into to process programmatically, and setup drag and drop functionality.
* Encapsulate dropped file functionality from Switch and Wii U.
* Fix dropped file detection, and fix ShowYesNowBox return checking.
* Bump LUS to include FileDropMgr's new registration system and initial cursor visibility changes.
* New LUS ref.
* Remove default on for cursor always visible.
Add option to camera controls next to enable mouse input for autocapture.
Set autocapture on startup.
* next LUS
* clang again
* Add "EnableMouse" CVar check to startup SetAutoCaptureMouse.
* Back to LUS main.
* lus version with fixes we need
* very wip
* get it building
* soh otr
* bump lus before fixing soh side stuff
* build
* still builds
* mac error
* bump otrexporter
* bump to lus main
* upstream otrexporter
---------
Co-authored-by: Malkierian <malkierian@gmail.com>
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
* Adds ability for Notifiations to not make a noise
This is probably the only feature that will use it, the noise makes sense for most things we want to use notifications for, but it playing on every scene transition was a bit distracting.
* Adds a hook for OnSeqPlayerInit
* Uses new hook and displays notification instead of overlay text
* Changes names to prevent collisions
Will be registering other types of hooks that will need different ShipInitFuncs in this same file later.
* Change Icon
* Change CVarName and remove now-unused duration slider
* Update ConfigMigrator for CVar changes.
* clang-format
* fix
* bring back duration control
* config v4
* fix v4 migration
---------
Co-authored-by: Christopher Leggett <chris@leggett.dev>
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
* Hard removal 2D ones for now
* override some scene values for prerender tests (#46)
* Adult Link Cloudy
* Fix: Child Link Night ToT Exterior
* Fix for real now
* Tweak: Skybox castle courtyard
* WIP - adjusting for patterns
* Hooked all code, needs testing
* Hookified
* Clean up
* Update Fog Control
* clang
* Fix skybox override to only affect 3D pre-rendered scenes
Prevent the 3D scene renderer from overriding skyboxes on all scenes
Previously, the function was applying skybox changes to every scene, overriding the intended skyboxes throughout the game (Example: Kokiri Forest with a blue sky instead of it's original "greyish" one)
Now it only applies custom skybox settings to scenes in the skyboxControlList, preserving original skyboxes for other scenes
* Remove commentary and forgot to add Zelda's courtyard skybox
* Move code to shipInit.
* Early return for VB_SHOULD.
* clang
* Fix missing !
* Feedback fixes.
* clang
* Fix CVAR
* Modify Skybox for scenes with multiple viewpoints.
* setting position change to blend in the "modder stuff can do"
* Adressed review
* tooltip space missing, oops
* InitFunc
---------
Co-authored-by: Archez <Archez@users.noreply.github.com>
Co-authored-by: Caladius <clatini88@gmail.com>
* entrance shuffle: sign hints
* update entrance tracker with hint
* show sign hints when any entrances shuffled
* only hint when entrance shuffled
* avoid crash when loading rando file
* fix kf exit
* correct hint from sign outside kokiri forest
* 3 signs on DMT
* improve naming