Commit Graph

166 Commits

Author SHA1 Message Date
Sarge-117
52f22275e3
Fix Giant's Knife unexpected behaviours (#834)
* Giant's Knife Behaviour Fixes

Fixes a case where Giant's Knife (specifically, breaking and re-buying it) can behave unexpectedly if you don't have a Kokiri Sword in your inventory.  Also fixes the broken icon not showing up in inventory after you break it.

* less whitespace

* fix 0xE check

Accidentally committed with the wrong check

* Move the grayscale code up

Moved the grayscaling portion up higher in the function and renamed "bool not_acquired" to "bool age_restricted".  Thanks to @vaguerant for the suggestion!
2022-07-22 00:39:04 +02:00
briaguya
eb49053e73
Prevent unrestricted items camera crash (#852) 2022-07-22 00:35:30 +02:00
PurpleHato
235cef6abf
FIX: RetrictItem SunSong issue (#839)
Thanks @vaguerant
2022-07-18 22:47:37 -04:00
MelonSpeedruns
e871b53afc
Free cam collision v2 (#836) 2022-07-18 22:47:23 -04:00
GaryOderNichts
660897ff63
Avoid UB on ocarinaAction shifts (#809) 2022-07-18 19:29:24 -04:00
briaguya
9e8335c1f0
fix non-rando non-3d-drops small key crash (#789)
Co-authored-by: briaguya <briaguya@alice>
2022-07-18 19:22:12 -04:00
briaguya
d45968270a
Address rando pr comments (#742)
* prefix randomizer methods with Randomizer_

* make filename a local var

* remove unused file, update malon to use new names

* move randomizertypes to randomizer directory

* rename to Randomizer_GetSettingValue

Co-authored-by: briaguya <briaguya@alice>
2022-07-18 19:20:07 -04:00
KiritoDev
219804cbe4
Controller Configuration UI and JSON Config (#760)
* Initial controller hud ui

* Reverted fbdemo changes

* Moved config to json and implemented controller config

* fix build on linux, gitignore new config file

* fix build

* Fix compilation and file directory paths

* Call save on cvar save

* Fixed cvar loading and added deck slots to the config

* Changed control deck port 0 to use a physical device by default

* Added gyro and rumble & fixed loading errors

* Save config on toggle menubar

* fix linux build

* Fixed drift calculation

* Controller config now saves when pressing F1

* Removed ExitGame hook from ImGuiImpl

* Moved mappings to a map

* Added GetKeyName

* untranslate scancodes

* Fixed hud layout on keyboard device

* Fixed keyboard read on hud

* Fixed crash when reloading controllers

* Removed ConfigFile and changed file extension

* Changed Dummy to Disconnected and fixed filters

* Removed function leftover

* Changed ControllerHud to InputEditor

Co-authored-by: briaguya <briaguya@alice>
Co-authored-by: David Chavez <david@dcvz.io>
2022-07-13 23:12:11 -04:00
Nicholas Estelami
379649bead Fixed soundfont issues 2022-07-13 21:36:19 -04:00
Christopher Leggett
7c6d8a6b9c
Fixes Maps, Compasses, and Boss Keys in Vanilla. (#751) 2022-07-13 19:38:25 -04:00
vaguerant
97ad234c8c
Hide debug overlay behind gDebugEnabled (#660) 2022-07-12 23:58:24 -04:00
aMannus
c9fdf8a480
Fix Rando Water Temple Softlock (#665)
We use 3DS logic to generate item placement, but didn't have this specific door in Water Temple unlocked from the beginning like 3DS does.

This meant that if people took specific paths through the temple, they could softlock themselves by missing a key.
2022-07-12 18:55:01 -04:00
MelonSpeedruns
66ec623542
Free Camera (#337)
* wip free cam

* Almost done, needs collision still

* Added free cam behind cvar

* added WIP collision

* Fixed & implemented "Manual mode" from WW & TP

* Fixed camera not rotating when Link is moving

* fixed initialized camera rotation

* Fixed camera getting stuck + made it smoother

* reduced deadzone

* fixed epona camera height + added WW z-target free camera

* Adjusted player camera height & fixed fov

* Fixed camera roll

* fixed fov when moving the camera while in z-target

* Camera resets to Auto when going through doors or changing maps

* Fixed building

* touch

* more touch work

* Added WIP mouse support to the free cam

* gui stuff

* fixed building

* fixed building error

* ok fixed building for real this time

* oops

* Fix compilation issues

* removed mouse stuff that magically appeared in this branch

* smoothed out stick values & removed remains of mouse support

* re-added manual camera when pressing Z

* reduced minimum Y position of camera

* Addressed dcsv's nitpicks

* part 2

* oops

Co-authored-by: David Chavez <david@dcvz.io>
2022-07-12 18:40:18 -04:00
Nicholas Estelami
3aa93b9855
Removed legacy audio mode and fixed ganon sound bug (#657) 2022-07-11 22:37:39 -04:00
briaguya
eab3b5bd7f
add descriptive todo for death crash bandaid (#655)
Co-authored-by: briaguya <briaguya@alice>
2022-07-11 21:58:31 -04:00
briaguya
c25089b98f
testing out item replacement (#416)
* skip learning song of storms

* don't set flag when getting goron tunic as child

* Initiates prelude check when master sword unloads.

Not quite how N64 rando does it but so far it's the only way I've found to make it trigger without also triggering the time travel again.

* Stops Shadow Temple lore prompts from appearing in rando.

* Skips cutscene of royal tomb explosion in rando.

Explosion sound doesn't play correctly and I think the debris appears in the wrong place, but the functionality is here.

* Improves visual of exploding gravestone.

* Adds some comments explaining the rando differences

* Skip ruto text box in jabu blue warp

For rando

* skip intro cutscene in dodongo's cavern

* load spoiler files on boot, fix spoilerfile existing check when making new saves

* name entry dropped spoiler logic

* make sure to actually init the cvar

* no chime on load

* uncomment

* Skip ganondrof cutscene

Skip to scream part of the death animation, skipping the text boxes etc. For rando

* Update z_boss_ganondrof.c

* skip owl flight cutscenes in rando

* Fixes skipped text so it only applies to shadow temple.

Earlier fix inadvertently applied to some other text as well, changed logic so that only specified sceneNums and textIds can have this enabled, and text skipped by sceneNum can have the skip overriden by textId if needed. Currently there are no overrides so the textId section of the logic is commented out to avoid compilation errors.

* Adds a default to the switch case statements that leaves the randoSkipText variable unchanged, just in case.

* TEST: Text for item

* Adding ganon flavor text

* ADD: AMMO Count

* format ganon text/hint text

* Autoskip the tower cutscene if settings call for tower collapse.

* ganon hint text logic

* Improved prelude after time travel fix

* swapped the sizes between ganon hint text and ganon text, as they were set to the wrong things.

* this is all i did

* not the cleanest code ever but it's working

* ADD: GS Count

* ADD: Wallter (crash for now)

* TWEAK: Wallet check

* FIX: Use DrawItem instread of DrawUpgrade... b-baka!

* Fixes some vanilla bugs introduced by rando code.

* Added cutscene skip for zelda escaping

Using the debug cutscene skipping function. Also added a conditional so the bridge doesn't spawn closed when cutscene is ready to trigger

* ADD: X Spacing + Placeholders for song

* ADD: default case for items

* TWEAK: Spacing

* FIX: Light Arrow

* ADD: Ammo Option

* use groups instead

* ADD: More spacing logic

* songs and names

* TWEAK: Color on wallet

* colors

* Added flags cutscene before nabooru fight

* ADD: ChromaKey text

* First attempt skip cs after nabooru defeat

* Better implementation for specific rando cutscene skips

* use pulseaudio defaults

* spaces/tabs

* move color push/pop to stop crash

* make the colors work again

* the real bottle fix

* pulseaudio values tuned for n64 audio at 44.1khz

* update tlength

* remove one hardcoded samplerate

* Cleaned up and fixed zelda escape skip

The if statement is a freaking monster, but unless we want to skip more cutscenes in the same way later, this is the most compact way of doing it that I know of.

* Revert one line to match original

nothing functional

* another hint line that breaks autonewline logic

* don't autospawn epona if we don't have the song/ocarina

* Trying to use iron knuckle death effects

not working yet

* Streamlined OoT cutscene skip for future additions

Also cleaned up if statement in general

* Made if statement more readable

Also added clarity for what cutscene was skipped

* Fixed typo in comment

* Janky nabooru defeat cs skip

* altar text formatting (gonna need help shortening some of the french ones)

* more altar text formatting

* english altar text formatting complete

* make gtg blocking guard check for card not bridge

* FIX: Typo!

* FIX: Uppercases

* FIX: Typo

* TWEAK: Alter + some names

* TWEAK: More caps!

* ADD: Missing string

TWEAK more uppercases and namefixe
s

* Hide nabooru death by covering her in flames

* bandaid fix for death crash issue

* Twinrova defeat cs skip

Skips the animation and manually calls the function to show the "beam" around the sisters

* fix crash

* fix caps to match

* fix great fairy reward mashing/shielding issue

* TWEAK : Typo clé to Clé

* TWEAK: Some Altar hints

TWEAK: Some capitals

* TWEAK: Unmatching text + some cap again

* TWEAK: More tweaks

* fix build

* remove extra json.hpp, add hint

* Update randomizer_item_tracker.cpp

* TWEAK: Double Defense with RedParticles instead of white

* make sure we don't optimize out the check to ensure a spoilerfile exists

* vanilla ganon boss key hint formatting

* TWEAK: FR- better way of the hero text

* fix

* and again

* Initializes dungeonsDone items in gSaveContext to 0.

* Replaces sizeof calculation with a NUM_DUNGEONS constant.

* Fixes Saria's Gift on the LW Bridge from getting killed when holding shield.

* More airtight fix for Saria's Gift on the Bridge.

* Lifts one of the conditions in the if statement a little higher to prevent unnecessary lookups of getItemId.

* Invalidate text box icon before drawing

* Fixes the case where Saria's gift is an Ice Trap.

We still get the Ice Trap once, but never again. This does mean you can now hold R while walking in to avoid the ice trap, but everything else seems to work fine.

* Initial commit

Might need changing when we change the settings in the future

* Fixes Door of Time opening cutscene after warping with prelude.

* Initial waterfall skip

Very rudimentary way of doing things but it seems to work so 🤷

* inital rework

* fixed default rotation for 2D sprites

* fix tab/space issues

* 3d drops rando merge fix again

* Allows Impa to appear in the Lullaby check post drawbridge escape.

* Changes Ganon's Trials Count setting to a checkbox

The checkbox is whether or not to skip all of them. Leaving the box unchecked will mean doing all of them. Eventually this will be switched back to a slider once we implement the logic for which trials start out completed.

* Sets all Ganon's Trials to incomplete in new saves.

Fixes https://github.com/briaguya-ai/rando-issue-tracker/issues/131

* fix castle guards when oot throw cutscene has already played in rando

* Properly removes the beams when trials are cleared.

* Removes Question Mark from Skip Ganon's Trials UI.

* Adds a todo comment about when to change back to slider.

* make deku seeds check for bullet bag

* Various tweaks

TWEAK: Altar Text
TWEAK: Hint names
TWEAK: Replace more problematic œ to oe

* upgrade ocarina on both child and adult equips

* FIX: Jabu Item

* update equipped hookshot/longshot when obtained as other age

* add hint

* don't give the bgs check without the claim check

* Skips Darunia Cutscene in Fire Temple

* Added a TODO note about not skipping the cutscene.

There is a setting we will want to have eventually that will require this cutscene to not be skipped since it is used during a glitch.

* remove todo

* restore fast ocarina option in imgui that was lost in merge

* Fixes grey screen issue + tooltip for 2 handed shield

* update to use dg instead of g for textures in item tracker

* TWEAK: Default color for cosmetic RAND button was not the corect one

* fix texture crash, remove unused item tracker code

* don't open mask shop until we get zelda's letter

* Update README.md

* Prevents "correct" chime under incorrect conditions.

* Fixes typo in conditional and adds "bonk" sound effect.

"Bonk" sound is NA_SE_SY_OCARINA_ERROR and it plays when conditions for the Door of Time have not been met after playing Song of Time. This is only possible in rando's "Intended" Door of Time option, in which the Ocarina of Time and all 3 spritual stones are required to open the door, instead of the vanilla requirements of just having the song of time.

* remove modify dpad equips toggle, replace with checks for dpad menu

* remove extra check

* add ability to hold c-up to assign to dpad when dpad menuing is enabled

* disable d-pad navigation on item menu when holding c-up to equip

* dpad+c-up stuff for equipment menu

* ADD: Checbox for songs colors

* TWEAK: RandoColors for normal songs

* kind of quick and dirty but it works

* TWEAK: Clarity of the tooltip

Co-authored-by: briaguya <briaguya@alice>
Co-authored-by: Christopher Leggett <chris@leggett.dev>
Co-authored-by: aMannus <mannusmenting@gmail.com>
Co-authored-by: PurpleHato <linkvssangoku.jr@gmail.com>
Co-authored-by: Dog <5172592+Dog@users.noreply.github.com>
Co-authored-by: Vague Rant <vaguerant@users.noreply.github.com>
Co-authored-by: Baoulettes <perlouzerie@hotmail.fr>
Co-authored-by: Ada <60364512+GreatArgorath@users.noreply.github.com>
2022-07-11 20:11:07 -04:00
Kenix3
6b50b50a6c
Fixes crash on Biggoron trade failure screen wipe
Resolves #621
2022-07-11 00:20:03 -04:00
Jeffrey Crowell
d4c1c40c1d
add support for clang compiler (#592)
* hacks to align strings for clang... wow just wow

* start work to getting built with clang

* fix issues with struct constructors, all builds, doesn't link still

* fix some narrowing issues that clang complains about

* fix compliation of zapd

* fix null deref in VersionInfo

* builds with clang

* make stringbuilding use StringHelper instead of addition

* fix linking

* add CLANG SHIP overlay on clang built versions

* doesn't need to be volatile

* mark unknown strings as extern

* rename some stuff

* can't align extern

* hopefully fix compilation for everythign

* expandtab

* allow setting LD

* Revert "allow setting LD"

This reverts commit 711aba6db2.

maybe to use lld it should be a LDFLAG?

* -Wno-deprecated-declarations is required for newer versions of clang

on macOS 13 beta sdk, the version of apple clang requires this

* Add jenkins support for clang

* Forward CXX flags to stormlib compilation

* Move GCC only flags to check

* use exports to set multiarch setup

* Fix Jenkins forever

* use make instead of cmake --build

add some flags to build with clang-11 as well

* address review coments

- rework extraction to allow multi thread
- misc readability cleanup

* update makefile to add WARN on linux+clang

Co-authored-by: David Chavez <david@dcvz.io>
2022-07-10 10:51:12 -04:00
Sirius902
89e07f8dbb
Dodongo's Cavern blue warp crash fix (#622)
* Doodong's Cavern blue warp crash fix

* >= not >

* Don't waste a line of space
2022-07-10 09:30:19 -04:00
Baoulettes
d1a2f98524
New drops shadows & rotation fixes (#627)
* fixes

* forgot to add heart pieces in rotation logic
2022-07-09 20:38:59 -04:00
Sirius902
4371b58223
Fix 0xabababab crash (#617)
* Unconditionally setup the normal skybox

* Only call Skybox_Setup once ever
2022-07-08 17:39:50 -04:00
Sirius902
ee184b5a51
Checkered room crash workaround (#615)
* Increase poly and vertex count for dyna actors

* Add TODO

* Only apply fix in Forest Temple

* Enable globally
2022-07-07 22:21:14 -04:00
vaguerant
a1f92d76ab
Fix Ganon's Castle title cards (#606) 2022-07-07 22:19:41 -04:00
Baoulettes
60e713855a
New drop runtime fix (#614)
* inital rework

* fixed default rotation for 2D sprites

* fix tab/space issues
2022-07-07 22:19:08 -04:00
vaguerant
1c9195373d
Invalidate text box icon before drawing (#607) 2022-07-07 22:18:11 -04:00
Sirius902
e8bfa61fc2
Add N64 weird frames and OOB Bombchus cvars (#602)
* Add gN64WeirdFrames and gBombchuOOB cvars

* Rename gBombchuOOB to gBombchusOOB

* Fix pipeline
2022-07-06 18:46:01 -04:00
Baoulettes
a2d64864dd
Cosmetics menu rework (#589)
* -

* DPad/some margin fix(left side)

* various ImGui stuff and fixes

* disabled kaleido menu (non working)

* fix win being dumb

* same for C btn this time

* Fix windows build

* Beating hearts fix

* Default win size and some placement fix

* Fix Dpad Ammo & C notes, Kaleido, white dog

* some texts fix and tab move

* Add stone of agony, some fixes and build correctly

* precise item place with Dpad

* Gamecube -> GameCube

Co-authored-by: Baoulettes <iMacWin10>
2022-07-05 20:52:01 -04:00
Baoulettes
2fbdd056ed
3D Drops & Projectiles update (#548)
* Fix remaining rupee and keys

* fix tabs -> spaces

* more fix about tabs -> spaces

* Better up <-> down mouvement for hearts

* remove useless comment
2022-07-05 20:46:21 -04:00
vaguerant
0b7137b8b0
Cheat: Infinite Epona Boost (#577)
* Cheat: Infinite Epona Boost

* Edit for readability
2022-07-05 19:30:17 -04:00
Baoulettes
a5df9dddf0
Use Macro for __FILE__ & __LINE__ when possible (#559)
* First batch some overlay

* Almost all overlay

* effect & gamestate

* kaleido stuffs

* more overlay

* more left over from code folder

* remaining hardcoded line and file

* Open & Close _DISP __FILE__ & __LINE__ clean up

* Some if (1) {} remove

* LOG_xxxx __FILE__ , __LINE__ cleaned

* ASSERT macro __FILE__ __LINE__

* mtx without line/file in functions

* " if (1) {} " & "if (0) {}" and tab/white place

* LogUtils as macro

* GameState_, GameAlloc_, SystemArena_ & ZeldaArena_

* Revert "GameState_, GameAlloc_, SystemArena_ & ZeldaArena_"

This reverts commit 0d85caaf7e.

* Like last commit but as macro

* Fix matrix not using macros

* use function not macro

* DebugArena_* functions
GameAlloc_MallocDebug
BgCheck_PosErrorCheck as macros
removed issues with ; in macro file
2022-07-05 19:29:34 -04:00
louist103
e7c2aff97e Fix audio, boot commands, and save staes. 2022-07-04 10:44:31 -04:00
earthcrafterman
818d5f90a8
Add toggles for disabling heart drops and random drops (#507)
* Adds toggles for disabling random drops and fixed heart drops

* Changed the "No Fixed Heart Drops" toggle to the more useful "No Random Heart Drops" toggle

* Adds an explanation that the no heart drops option is similar to Hero Mode

* Moved difficulty options into their own sub-menu
Moved time saver options into their own sub-menu
Moved clutter reducing options into their own sub-menu

* fixed the tag name of mweep speed

* Moved Skip Text to Experimental
2022-07-04 10:42:43 -04:00
rozlette
39a50a406b Update names 2022-06-27 23:17:37 -04:00
rozlette
0f84682bc0 Add margins for dpad 2022-06-26 12:06:31 -04:00
rozlette
284a7fba95 Invalidate message item icon texture before drawing 2022-06-26 12:06:19 -04:00
rozlette
b96bd4ea9d Fix title cards for market potion shop and bombchu shop 2022-06-26 12:06:04 -04:00
rozlette
375932f43b Move UI location arrays from static to global to accomodate customizable UI 2022-06-22 23:13:32 -04:00
rozlette
fd06827e2b DPad items 2022-06-22 23:13:32 -04:00
David Chavez
e42b18cf71
Add Support for macOS (#441)
* Fixed soh filters

* add more makefile changes

* almost ready

* more updates

* update

* update

* Update Makefiles to handle both platforms

* Allow for overriding the CXX and CC executables

* Restore original structure while supporting custom CXX flags

* Remove some platform specific libs

* Dynamic target name

* Make X11 paths package-agnostic

* Remove changes to `gfx_opengl.cpp`

* Use OpenGL2 on MacOS instead of OpenGL3

* make it actually render something

* render at least the first texture, still need to figure out the second
one

* Let’s use OpenGL 3 again

* maybe this works to get the right texture? link's eyes still look off a bit

* did this work?

* set the platform to macos

* actual numbers are right, but logic is ugly XXX/TODO, i know

* add zlib to ldflags for ZAPDUtils

* A bit of cleanup

* Revert unneeded changes

* Remove GL_CHECK

* Fix issues with z64 branch

* use an std::map instead of a giant array

* three point filter fix (#2)

* Fix mac compilation

* fix audio for 64 bit

* revert audio heap size, keep bigger pools

* Add more Apple specific checks to our modifications

* Add building instructions for macOS

* Remove unecessary step from building instructions

* Add missing SDL2 & GLEW to Linux LDLIBS

* Update BUILDING.md

Co-authored-by: BountyChocolate123456 <101743444+BountyChocolate123456@users.noreply.github.com>

* Update soh/.gitignore to include other arch binaries

Co-authored-by: BountyChocolate123456 <101743444+BountyChocolate123456@users.noreply.github.com>

* Use right platform name for debugging window

Co-authored-by: BountyChocolate123456 <101743444+BountyChocolate123456@users.noreply.github.com>

* Fix stormlib on macos (arm64)

* Simplify some of the ifdef checks

* Revert an older no longer necessary fix

* Remove remaining unecessary deviations

* Update building instructions after StormLib changes

* Feature: Use OpenGL 4.1 (#1)

* Further tweak the BUILDING

* Tidy up

* reword -j message

* Add Jenkins CI Support (#2)

* Fix type issues

* add target <appbundle> and <filledappbundle>

add makefile targets to create an .app
`filledappbundle` creates the target with the .otr included

this should perhaps be moved to Application Support though

* pull gcc's rpath from otool output

* move make target to the end so it's not default

* Add Jenkins and make exe in par with other platforms

* Actually save build artefacts

* Fix artefact path

* Remove x11 mentions and linking (not used)

* Update building instructions for generating app

* use appsupport directory

* Add new app icon

* Update target to match macOS types

* Update more audio types

* fix null deref in Audio_PlayFanfare

* Remove old import from z64

* address final nit with apple ifdefs

Co-authored-by: KiritoDev <36680385+KiritoDv@users.noreply.github.com>
Co-authored-by: Jeffrey Crowell <github@crowell.biz>
Co-authored-by: BountyChocolate123456 <101743444+BountyChocolate123456@users.noreply.github.com>
2022-06-22 14:59:21 -04:00
Kenix3
1435b5d314
Merge branch 'develop' into zelda64 2022-06-21 19:27:46 -04:00
Kenix3
a7ed748973
Update soh/src/code/audio_load.c 2022-06-20 16:03:03 -04:00
Ian Drake
39d8b77b02
Added save filename and path to config file (#130)
* Added save filename and path to config file

Closes #110

* Moved FileIO to libultraship

* Moved OOT Specific Code to OTRGlobals and made libultraship for general file IO. Combined config options.

* Moved filesystem include into GlobalCtx2.h
2022-06-20 13:54:44 -04:00
Rozelette
b4eebbbcd6
Versioned saves (#423)
* v1

* Cleanup

* Cleanup

* cleanup

* Organization

* Fixes

* Fix typos

* fixup merge

* use gLanguages

* Restore n64dd

* Fix bad merge

* Set ddflag
2022-06-20 13:41:43 -04:00
Kevin Alexis Contreras
4e75488567 Removed ifdefs for audio heap sizes 2022-06-20 12:33:38 -05:00
Kevin Alexis Contreras
e945a86d46 Added fixes based on the reviews 2022-06-19 02:03:04 -05:00
Josh Bodner
5a872f85e1
Add checkbox to make holding the D-pad act like holding the joystick on the file and pause screens (#454)
* Add checkbox to make holding the D-pad act like holding the joystick on the file and pause screens.  Also fix unguarded debug camera action.

* Removed new cvar from UI, made it enabled by default and control the D-pad hold behavior with the existing cvar instead, changed cvar for debug check too
2022-06-19 00:09:31 -04:00
briaguya
dd42cca2cf Merge branch 'develop' into z64-devmerge 2022-06-17 00:39:07 -04:00
Kevin Alexis Contreras
bb90be6748 Merge branch 'zapd_audio_support' into zelda64 2022-06-16 23:09:50 -05:00
vaguerant
ac8acaeba4
Cheat: shield with two-handed weapons (#487) 2022-06-16 21:08:32 -04:00
Nicholas Estelami
960a29e513 Fixed StormLib Forward Slash BackSlash issues 2022-06-16 20:35:52 -04:00