mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2025-08-22 06:13:45 -07:00
Merge branch 'develop' into n64colors
This commit is contained in:
commit
002ca115cc
12 changed files with 591 additions and 32 deletions
402
.gitignore
vendored
Normal file
402
.gitignore
vendored
Normal file
|
@ -0,0 +1,402 @@
|
||||||
|
# Cache files
|
||||||
|
__pycache__/
|
||||||
|
.pyc
|
||||||
|
.DS_Store
|
||||||
|
|
||||||
|
# Text editor remnants
|
||||||
|
.vscode/
|
||||||
|
.vs/
|
||||||
|
.idea/
|
||||||
|
CMakeLists.txt
|
||||||
|
cmake-build-debug
|
||||||
|
venv/
|
||||||
|
|
||||||
|
# Project-specific ignores
|
||||||
|
build/
|
||||||
|
expected/
|
||||||
|
notes/
|
||||||
|
baserom/
|
||||||
|
docs/doxygen/
|
||||||
|
*.elf
|
||||||
|
*.sra
|
||||||
|
*.z64
|
||||||
|
*.n64
|
||||||
|
*.v64
|
||||||
|
*.map
|
||||||
|
*.dump
|
||||||
|
out.txt
|
||||||
|
|
||||||
|
# Tool artifacts
|
||||||
|
tools/mipspro7.2_compiler/
|
||||||
|
tools/overlayhelpers/batchdisasm/output/*
|
||||||
|
tools/overlayhelpers/batchdisasm/output2/*
|
||||||
|
tools/overlayhelpers/batchdisasm/mipsdisasm/*
|
||||||
|
tools/disasm/output/*
|
||||||
|
tools/asmsplitter/asm/*
|
||||||
|
tools/asmsplitter/c/*
|
||||||
|
ctx.c
|
||||||
|
tools/*dSYM/
|
||||||
|
graphs/
|
||||||
|
|
||||||
|
# Assets
|
||||||
|
*.png
|
||||||
|
*.jpg
|
||||||
|
*.mdli
|
||||||
|
*.anmi
|
||||||
|
*.obj
|
||||||
|
*.mtl
|
||||||
|
*.fbx
|
||||||
|
!*_custom*
|
||||||
|
.extracted-assets.json
|
||||||
|
|
||||||
|
# Docs
|
||||||
|
!docs/tutorial/
|
||||||
|
|
||||||
|
# Per-user configuration
|
||||||
|
.python-version
|
||||||
|
|
||||||
|
|
||||||
|
## Ignore Visual Studio temporary files, build results, and
|
||||||
|
## files generated by popular Visual Studio add-ons.
|
||||||
|
##
|
||||||
|
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
|
||||||
|
|
||||||
|
# User-specific files
|
||||||
|
*.suo
|
||||||
|
*.user
|
||||||
|
*.userosscache
|
||||||
|
*.sln.docstates
|
||||||
|
|
||||||
|
# User-specific files (MonoDevelop/Xamarin Studio)
|
||||||
|
*.userprefs
|
||||||
|
|
||||||
|
# Build results
|
||||||
|
[Dd]ebug/
|
||||||
|
[Dd]ebugPublic/
|
||||||
|
[Rr]elease/
|
||||||
|
[Rr]eleases/
|
||||||
|
x64/
|
||||||
|
x86/
|
||||||
|
bld/
|
||||||
|
[Bb]in/
|
||||||
|
[Oo]bj/
|
||||||
|
[Ll]og/
|
||||||
|
|
||||||
|
# Visual Studio 2015/2017 cache/options directory
|
||||||
|
.vs/
|
||||||
|
# Uncomment if you have tasks that create the project's static files in wwwroot
|
||||||
|
#wwwroot/
|
||||||
|
|
||||||
|
# Visual Studio 2017 auto generated files
|
||||||
|
Generated\ Files/
|
||||||
|
|
||||||
|
# MSTest test Results
|
||||||
|
[Tt]est[Rr]esult*/
|
||||||
|
[Bb]uild[Ll]og.*
|
||||||
|
|
||||||
|
# NUNIT
|
||||||
|
*.VisualState.xml
|
||||||
|
TestResult.xml
|
||||||
|
|
||||||
|
# Build Results of an ATL Project
|
||||||
|
[Dd]ebugPS/
|
||||||
|
[Rr]eleasePS/
|
||||||
|
dlldata.c
|
||||||
|
|
||||||
|
# Benchmark Results
|
||||||
|
BenchmarkDotNet.Artifacts/
|
||||||
|
|
||||||
|
# .NET Core
|
||||||
|
project.lock.json
|
||||||
|
project.fragment.lock.json
|
||||||
|
artifacts/
|
||||||
|
**/Properties/launchSettings.json
|
||||||
|
|
||||||
|
# StyleCop
|
||||||
|
StyleCopReport.xml
|
||||||
|
|
||||||
|
# Files built by Visual Studio
|
||||||
|
*_i.c
|
||||||
|
*_p.c
|
||||||
|
*_i.h
|
||||||
|
*.ilk
|
||||||
|
*.meta
|
||||||
|
*.obj
|
||||||
|
*.iobj
|
||||||
|
*.pch
|
||||||
|
*.pdb
|
||||||
|
*.ipdb
|
||||||
|
*.pgc
|
||||||
|
*.pgd
|
||||||
|
*.rsp
|
||||||
|
*.sbr
|
||||||
|
*.tlb
|
||||||
|
*.tli
|
||||||
|
*.tlh
|
||||||
|
*.tmp
|
||||||
|
*.tmp_proj
|
||||||
|
*.log
|
||||||
|
*.vspscc
|
||||||
|
*.vssscc
|
||||||
|
.builds
|
||||||
|
*.pidb
|
||||||
|
*.svclog
|
||||||
|
*.scc
|
||||||
|
|
||||||
|
# Chutzpah Test files
|
||||||
|
_Chutzpah*
|
||||||
|
|
||||||
|
# Visual C++ cache files
|
||||||
|
ipch/
|
||||||
|
*.aps
|
||||||
|
*.ncb
|
||||||
|
*.opendb
|
||||||
|
*.opensdf
|
||||||
|
*.sdf
|
||||||
|
*.cachefile
|
||||||
|
*.VC.db
|
||||||
|
*.VC.VC.opendb
|
||||||
|
|
||||||
|
# Visual Studio profiler
|
||||||
|
*.psess
|
||||||
|
*.vsp
|
||||||
|
*.vspx
|
||||||
|
*.sap
|
||||||
|
|
||||||
|
# Visual Studio Trace Files
|
||||||
|
*.e2e
|
||||||
|
|
||||||
|
# TFS 2012 Local Workspace
|
||||||
|
$tf/
|
||||||
|
|
||||||
|
# Guidance Automation Toolkit
|
||||||
|
*.gpState
|
||||||
|
|
||||||
|
# ReSharper is a .NET coding add-in
|
||||||
|
_ReSharper*/
|
||||||
|
*.[Rr]e[Ss]harper
|
||||||
|
*.DotSettings.user
|
||||||
|
|
||||||
|
# JustCode is a .NET coding add-in
|
||||||
|
.JustCode
|
||||||
|
|
||||||
|
# TeamCity is a build add-in
|
||||||
|
_TeamCity*
|
||||||
|
|
||||||
|
# DotCover is a Code Coverage Tool
|
||||||
|
*.dotCover
|
||||||
|
|
||||||
|
# AxoCover is a Code Coverage Tool
|
||||||
|
.axoCover/*
|
||||||
|
!.axoCover/settings.json
|
||||||
|
|
||||||
|
# Visual Studio code coverage results
|
||||||
|
*.coverage
|
||||||
|
*.coveragexml
|
||||||
|
|
||||||
|
# NCrunch
|
||||||
|
_NCrunch_*
|
||||||
|
.*crunch*.local.xml
|
||||||
|
nCrunchTemp_*
|
||||||
|
|
||||||
|
# MightyMoose
|
||||||
|
*.mm.*
|
||||||
|
AutoTest.Net/
|
||||||
|
|
||||||
|
# Web workbench (sass)
|
||||||
|
.sass-cache/
|
||||||
|
|
||||||
|
# Installshield output folder
|
||||||
|
[Ee]xpress/
|
||||||
|
|
||||||
|
# DocProject is a documentation generator add-in
|
||||||
|
DocProject/buildhelp/
|
||||||
|
DocProject/Help/*.HxT
|
||||||
|
DocProject/Help/*.HxC
|
||||||
|
DocProject/Help/*.hhc
|
||||||
|
DocProject/Help/*.hhk
|
||||||
|
DocProject/Help/*.hhp
|
||||||
|
DocProject/Help/Html2
|
||||||
|
DocProject/Help/html
|
||||||
|
|
||||||
|
# Click-Once directory
|
||||||
|
publish/
|
||||||
|
|
||||||
|
# Publish Web Output
|
||||||
|
*.[Pp]ublish.xml
|
||||||
|
*.azurePubxml
|
||||||
|
# Note: Comment the next line if you want to checkin your web deploy settings,
|
||||||
|
# but database connection strings (with potential passwords) will be unencrypted
|
||||||
|
*.pubxml
|
||||||
|
*.publishproj
|
||||||
|
|
||||||
|
# Microsoft Azure Web App publish settings. Comment the next line if you want to
|
||||||
|
# checkin your Azure Web App publish settings, but sensitive information contained
|
||||||
|
# in these scripts will be unencrypted
|
||||||
|
PublishScripts/
|
||||||
|
|
||||||
|
# NuGet Packages
|
||||||
|
*.nupkg
|
||||||
|
# The packages folder can be ignored because of Package Restore
|
||||||
|
**/[Pp]ackages/*
|
||||||
|
# except build/, which is used as an MSBuild target.
|
||||||
|
!**/[Pp]ackages/build/
|
||||||
|
# Uncomment if necessary however generally it will be regenerated when needed
|
||||||
|
#!**/[Pp]ackages/repositories.config
|
||||||
|
# NuGet v3's project.json files produces more ignorable files
|
||||||
|
*.nuget.props
|
||||||
|
*.nuget.targets
|
||||||
|
|
||||||
|
# Microsoft Azure Build Output
|
||||||
|
csx/
|
||||||
|
*.build.csdef
|
||||||
|
|
||||||
|
# Microsoft Azure Emulator
|
||||||
|
ecf/
|
||||||
|
rcf/
|
||||||
|
|
||||||
|
# Windows Store app package directories and files
|
||||||
|
AppPackages/
|
||||||
|
BundleArtifacts/
|
||||||
|
Package.StoreAssociation.xml
|
||||||
|
_pkginfo.txt
|
||||||
|
*.appx
|
||||||
|
|
||||||
|
# Visual Studio cache files
|
||||||
|
# files ending in .cache can be ignored
|
||||||
|
*.[Cc]ache
|
||||||
|
# but keep track of directories ending in .cache
|
||||||
|
!*.[Cc]ache/
|
||||||
|
|
||||||
|
# Others
|
||||||
|
ClientBin/
|
||||||
|
~$*
|
||||||
|
*~
|
||||||
|
*.dbmdl
|
||||||
|
*.dbproj.schemaview
|
||||||
|
*.jfm
|
||||||
|
*.pfx
|
||||||
|
*.publishsettings
|
||||||
|
orleans.codegen.cs
|
||||||
|
|
||||||
|
# Including strong name files can present a security risk
|
||||||
|
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
|
||||||
|
#*.snk
|
||||||
|
|
||||||
|
# Since there are multiple workflows, uncomment next line to ignore bower_components
|
||||||
|
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
|
||||||
|
#bower_components/
|
||||||
|
|
||||||
|
# RIA/Silverlight projects
|
||||||
|
Generated_Code/
|
||||||
|
|
||||||
|
# Backup & report files from converting an old project file
|
||||||
|
# to a newer Visual Studio version. Backup files are not needed,
|
||||||
|
# because we have git ;-)
|
||||||
|
_UpgradeReport_Files/
|
||||||
|
Backup*/
|
||||||
|
UpgradeLog*.XML
|
||||||
|
UpgradeLog*.htm
|
||||||
|
ServiceFabricBackup/
|
||||||
|
*.rptproj.bak
|
||||||
|
|
||||||
|
# SQL Server files
|
||||||
|
*.mdf
|
||||||
|
*.ldf
|
||||||
|
*.ndf
|
||||||
|
|
||||||
|
# Business Intelligence projects
|
||||||
|
*.rdl.data
|
||||||
|
*.bim.layout
|
||||||
|
*.bim_*.settings
|
||||||
|
*.rptproj.rsuser
|
||||||
|
|
||||||
|
# Microsoft Fakes
|
||||||
|
FakesAssemblies/
|
||||||
|
|
||||||
|
# GhostDoc plugin setting file
|
||||||
|
*.GhostDoc.xml
|
||||||
|
|
||||||
|
# Node.js Tools for Visual Studio
|
||||||
|
.ntvs_analysis.dat
|
||||||
|
node_modules/
|
||||||
|
|
||||||
|
# Visual Studio 6 build log
|
||||||
|
*.plg
|
||||||
|
|
||||||
|
# Visual Studio 6 workspace options file
|
||||||
|
*.opt
|
||||||
|
|
||||||
|
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
|
||||||
|
*.vbw
|
||||||
|
|
||||||
|
# Visual Studio LightSwitch build output
|
||||||
|
**/*.HTMLClient/GeneratedArtifacts
|
||||||
|
**/*.DesktopClient/GeneratedArtifacts
|
||||||
|
**/*.DesktopClient/ModelManifest.xml
|
||||||
|
**/*.Server/GeneratedArtifacts
|
||||||
|
**/*.Server/ModelManifest.xml
|
||||||
|
_Pvt_Extensions
|
||||||
|
|
||||||
|
# Paket dependency manager
|
||||||
|
.paket/paket.exe
|
||||||
|
paket-files/
|
||||||
|
|
||||||
|
# FAKE - F# Make
|
||||||
|
.fake/
|
||||||
|
|
||||||
|
# JetBrains Rider
|
||||||
|
.idea/
|
||||||
|
*.sln.iml
|
||||||
|
|
||||||
|
# CodeRush
|
||||||
|
.cr/
|
||||||
|
|
||||||
|
# Python Tools for Visual Studio (PTVS)
|
||||||
|
__pycache__/
|
||||||
|
*.pyc
|
||||||
|
|
||||||
|
# Cake - Uncomment if you are using it
|
||||||
|
# tools/**
|
||||||
|
# !tools/packages.config
|
||||||
|
|
||||||
|
# Tabs Studio
|
||||||
|
*.tss
|
||||||
|
|
||||||
|
# Telerik's JustMock configuration file
|
||||||
|
*.jmconfig
|
||||||
|
|
||||||
|
# BizTalk build output
|
||||||
|
*.btp.cs
|
||||||
|
*.btm.cs
|
||||||
|
*.odx.cs
|
||||||
|
*.xsd.cs
|
||||||
|
|
||||||
|
# OpenCover UI analysis results
|
||||||
|
OpenCover/
|
||||||
|
|
||||||
|
# Azure Stream Analytics local run output
|
||||||
|
ASALocalRun/
|
||||||
|
|
||||||
|
# MSBuild Binary and Structured Log
|
||||||
|
*.binlog
|
||||||
|
|
||||||
|
# NVidia Nsight GPU debugger configuration file
|
||||||
|
*.nvuser
|
||||||
|
|
||||||
|
# MFractors (Xamarin productivity tool) working folder
|
||||||
|
.mfractor/
|
||||||
|
|
||||||
|
*.out
|
||||||
|
*.o
|
||||||
|
*.d
|
||||||
|
lib/libgfxd/libgfxd.a
|
||||||
|
ExporterTest/ExporterTest.a
|
||||||
|
ZAPDUtils/ZAPDUtils.a
|
||||||
|
.vscode/
|
||||||
|
build/
|
||||||
|
ZAPDUtils/build/
|
||||||
|
ZAPD/BuildInfo.h
|
||||||
|
|
||||||
|
DebugObj/*
|
||||||
|
ReleaseObj/*
|
|
@ -49,8 +49,11 @@ namespace Game {
|
||||||
Settings.debug.n64mode = stob(Conf[ConfSection]["n64_mode"]);
|
Settings.debug.n64mode = stob(Conf[ConfSection]["n64_mode"]);
|
||||||
|
|
||||||
// Enhancements
|
// Enhancements
|
||||||
Settings.enhancements.fast_text = stob(Conf[EnhancementSection]["fast_text"]);
|
Settings.enhancements.skip_text = stob(Conf[EnhancementSection]["skip_text"]);
|
||||||
CVar_SetS32("gFastText", Settings.enhancements.fast_text);
|
CVar_SetS32("gSkipText", Settings.enhancements.skip_text);
|
||||||
|
|
||||||
|
Settings.enhancements.text_speed = Ship::stoi(Conf[EnhancementSection]["text_speed"]);
|
||||||
|
CVar_SetS32("gTextSpeed", Settings.enhancements.text_speed);
|
||||||
|
|
||||||
Settings.enhancements.disable_lod = stob(Conf[EnhancementSection]["disable_lod"]);
|
Settings.enhancements.disable_lod = stob(Conf[EnhancementSection]["disable_lod"]);
|
||||||
CVar_SetS32("gDisableLOD", Settings.enhancements.disable_lod);
|
CVar_SetS32("gDisableLOD", Settings.enhancements.disable_lod);
|
||||||
|
@ -58,9 +61,15 @@ namespace Game {
|
||||||
Settings.enhancements.animated_pause_menu = stob(Conf[EnhancementSection]["animated_pause_menu"]);
|
Settings.enhancements.animated_pause_menu = stob(Conf[EnhancementSection]["animated_pause_menu"]);
|
||||||
CVar_SetS32("gPauseLiveLink", Settings.enhancements.animated_pause_menu);
|
CVar_SetS32("gPauseLiveLink", Settings.enhancements.animated_pause_menu);
|
||||||
|
|
||||||
|
Settings.enhancements.dynamic_wallet_icon = stob(Conf[EnhancementSection]["dynamic_wallet_icon"]);
|
||||||
|
CVar_SetS32(const_cast<char*>("gDynamicWalletIcon"), Settings.enhancements.dynamic_wallet_icon);
|
||||||
|
|
||||||
Settings.enhancements.minimal_ui = stob(Conf[EnhancementSection]["minimal_ui"]);
|
Settings.enhancements.minimal_ui = stob(Conf[EnhancementSection]["minimal_ui"]);
|
||||||
CVar_SetS32("gMinimalUI", Settings.enhancements.minimal_ui);
|
CVar_SetS32("gMinimalUI", Settings.enhancements.minimal_ui);
|
||||||
|
|
||||||
|
Settings.enhancements.visualagony = stob(Conf[EnhancementSection]["visualagony"]);
|
||||||
|
CVar_SetS32("gVisualAgony", Settings.enhancements.visualagony);
|
||||||
|
|
||||||
Settings.enhancements.mm_bunny_hood = stob(Conf[EnhancementSection]["mm_bunny_hood"]);
|
Settings.enhancements.mm_bunny_hood = stob(Conf[EnhancementSection]["mm_bunny_hood"]);
|
||||||
CVar_SetS32("gMMBunnyHood", Settings.enhancements.mm_bunny_hood);
|
CVar_SetS32("gMMBunnyHood", Settings.enhancements.mm_bunny_hood);
|
||||||
|
|
||||||
|
@ -121,6 +130,9 @@ namespace Game {
|
||||||
Settings.cheats.infinite_magic = stob(Conf[CheatSection]["infinite_magic"]);
|
Settings.cheats.infinite_magic = stob(Conf[CheatSection]["infinite_magic"]);
|
||||||
CVar_SetS32("gInfiniteMagic", Settings.cheats.infinite_magic);
|
CVar_SetS32("gInfiniteMagic", Settings.cheats.infinite_magic);
|
||||||
|
|
||||||
|
Settings.cheats.infinite_nayru = stob(Conf[CheatSection]["infinite_nayru"]);
|
||||||
|
CVar_SetS32("gInfiniteNayru", Settings.cheats.infinite_nayru);
|
||||||
|
|
||||||
Settings.cheats.no_clip = stob(Conf[CheatSection]["no_clip"]);
|
Settings.cheats.no_clip = stob(Conf[CheatSection]["no_clip"]);
|
||||||
CVar_SetS32("gNoClip", Settings.cheats.no_clip);
|
CVar_SetS32("gNoClip", Settings.cheats.no_clip);
|
||||||
|
|
||||||
|
@ -133,6 +145,15 @@ namespace Game {
|
||||||
Settings.cheats.super_tunic = stob(Conf[CheatSection]["super_tunic"]);
|
Settings.cheats.super_tunic = stob(Conf[CheatSection]["super_tunic"]);
|
||||||
CVar_SetS32("gSuperTunic", Settings.cheats.super_tunic);
|
CVar_SetS32("gSuperTunic", Settings.cheats.super_tunic);
|
||||||
|
|
||||||
|
Settings.cheats.ez_isg = stob(Conf[CheatSection]["ez_isg"]);
|
||||||
|
CVar_SetS32("gEzISG", Settings.cheats.ez_isg);
|
||||||
|
|
||||||
|
Settings.cheats.no_restrict_item = stob(Conf[CheatSection]["no_restrict_item"]);
|
||||||
|
CVar_SetS32("gNoRestrictItems", Settings.cheats.no_restrict_item);
|
||||||
|
|
||||||
|
Settings.cheats.freeze_time = stob(Conf[CheatSection]["freeze_time"]);
|
||||||
|
CVar_SetS32("gFreezeTime", Settings.cheats.freeze_time);
|
||||||
|
|
||||||
UpdateAudio();
|
UpdateAudio();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -154,13 +175,17 @@ namespace Game {
|
||||||
Conf[AudioSection]["fanfare"] = std::to_string(Settings.audio.fanfare);
|
Conf[AudioSection]["fanfare"] = std::to_string(Settings.audio.fanfare);
|
||||||
|
|
||||||
// Enhancements
|
// Enhancements
|
||||||
Conf[EnhancementSection]["fast_text"] = std::to_string(Settings.enhancements.fast_text);
|
Conf[EnhancementSection]["skip_text"] = std::to_string(Settings.enhancements.skip_text);
|
||||||
|
Conf[EnhancementSection]["text_speed"] = std::to_string(Settings.enhancements.text_speed);
|
||||||
Conf[EnhancementSection]["disable_lod"] = std::to_string(Settings.enhancements.disable_lod);
|
Conf[EnhancementSection]["disable_lod"] = std::to_string(Settings.enhancements.disable_lod);
|
||||||
Conf[EnhancementSection]["animated_pause_menu"] = std::to_string(Settings.enhancements.animated_pause_menu);
|
Conf[EnhancementSection]["animated_pause_menu"] = std::to_string(Settings.enhancements.animated_pause_menu);
|
||||||
|
Conf[EnhancementSection]["dynamic_wallet_icon"] = std::to_string(Settings.enhancements.dynamic_wallet_icon);
|
||||||
Conf[EnhancementSection]["minimal_ui"] = std::to_string(Settings.enhancements.minimal_ui);
|
Conf[EnhancementSection]["minimal_ui"] = std::to_string(Settings.enhancements.minimal_ui);
|
||||||
|
Conf[EnhancementSection]["visualagony"] = std::to_string(Settings.enhancements.visualagony);
|
||||||
Conf[EnhancementSection]["mm_bunny_hood"] = std::to_string(Settings.enhancements.mm_bunny_hood);
|
Conf[EnhancementSection]["mm_bunny_hood"] = std::to_string(Settings.enhancements.mm_bunny_hood);
|
||||||
Conf[EnhancementSection]["gc_colors"] = std::to_string(Settings.enhancements.gc_colors);
|
Conf[EnhancementSection]["gc_colors"] = std::to_string(Settings.enhancements.gc_colors);
|
||||||
|
|
||||||
|
|
||||||
// Controllers
|
// Controllers
|
||||||
Conf[ControllerSection]["gyro_sensitivity"] = std::to_string(Settings.controller.gyro_sensitivity);
|
Conf[ControllerSection]["gyro_sensitivity"] = std::to_string(Settings.controller.gyro_sensitivity);
|
||||||
Conf[ControllerSection]["rumble_strength"] = std::to_string(Settings.controller.rumble_strength);
|
Conf[ControllerSection]["rumble_strength"] = std::to_string(Settings.controller.rumble_strength);
|
||||||
|
|
|
@ -20,10 +20,13 @@ struct SoHConfigType {
|
||||||
|
|
||||||
// Enhancements
|
// Enhancements
|
||||||
struct {
|
struct {
|
||||||
bool fast_text = false;
|
int text_speed = 1;
|
||||||
|
bool skip_text = false;
|
||||||
bool disable_lod = false;
|
bool disable_lod = false;
|
||||||
bool animated_pause_menu = false;
|
bool animated_pause_menu = false;
|
||||||
|
bool dynamic_wallet_icon = false;
|
||||||
bool minimal_ui = false;
|
bool minimal_ui = false;
|
||||||
|
bool visualagony = false;
|
||||||
bool mm_bunny_hood = false;
|
bool mm_bunny_hood = false;
|
||||||
bool gc_colors = false;
|
bool gc_colors = false;
|
||||||
} enhancements;
|
} enhancements;
|
||||||
|
@ -48,10 +51,14 @@ struct SoHConfigType {
|
||||||
bool infinite_health = false;
|
bool infinite_health = false;
|
||||||
bool infinite_ammo = false;
|
bool infinite_ammo = false;
|
||||||
bool infinite_magic = false;
|
bool infinite_magic = false;
|
||||||
|
bool infinite_nayru = false;
|
||||||
bool no_clip = false;
|
bool no_clip = false;
|
||||||
bool climb_everything = false;
|
bool climb_everything = false;
|
||||||
bool moon_jump_on_l = false;
|
bool moon_jump_on_l = false;
|
||||||
bool super_tunic = false;
|
bool super_tunic = false;
|
||||||
|
bool ez_isg = false;
|
||||||
|
bool no_restrict_item = false;
|
||||||
|
bool freeze_time = false;
|
||||||
} cheats;
|
} cheats;
|
||||||
|
|
||||||
// Graphics
|
// Graphics
|
||||||
|
|
|
@ -395,8 +395,14 @@ namespace SohImGui {
|
||||||
ImGui::Text("Gameplay");
|
ImGui::Text("Gameplay");
|
||||||
ImGui::Separator();
|
ImGui::Separator();
|
||||||
|
|
||||||
if (ImGui::Checkbox("Fast Text", &Game::Settings.enhancements.fast_text)) {
|
ImGui::Text("Text Speed", Game::Settings.enhancements.text_speed);
|
||||||
CVar_SetS32("gFastText", Game::Settings.enhancements.fast_text);
|
if (ImGui::SliderInt("##TEXTSPEED", &Game::Settings.enhancements.text_speed, 1, 5)) {
|
||||||
|
CVar_SetS32("gTextSpeed", Game::Settings.enhancements.text_speed);
|
||||||
|
needs_save = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ImGui::Checkbox("Skip Text", &Game::Settings.enhancements.skip_text)) {
|
||||||
|
CVar_SetS32("gSkipText", Game::Settings.enhancements.skip_text);
|
||||||
needs_save = true;
|
needs_save = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -427,6 +433,13 @@ namespace SohImGui {
|
||||||
|
|
||||||
if (ImGui::Checkbox("GameCube Colors", &Game::Settings.enhancements.gc_colors)) {
|
if (ImGui::Checkbox("GameCube Colors", &Game::Settings.enhancements.gc_colors)) {
|
||||||
CVar_SetS32("gGameCubeColors", Game::Settings.enhancements.gc_colors);
|
CVar_SetS32("gGameCubeColors", Game::Settings.enhancements.gc_colors);
|
||||||
|
|
||||||
|
needs_save = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ImGui::Checkbox("Dynamic Wallet Icon", &Game::Settings.enhancements.dynamic_wallet_icon)) {
|
||||||
|
CVar_SetS32(const_cast<char*>("gDynamicWalletIcon"), Game::Settings.enhancements.dynamic_wallet_icon);
|
||||||
|
|
||||||
needs_save = true;
|
needs_save = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -454,24 +467,33 @@ namespace SohImGui {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui::BeginMenu("Cheats")) {
|
if (ImGui::BeginMenu("Cheats")) {
|
||||||
if (ImGui::Checkbox("Infinite Money", &Game::Settings.cheats.infinite_money)) {
|
if (ImGui::BeginMenu("Infinite...")) {
|
||||||
CVar_SetS32("gInfiniteMoney", Game::Settings.cheats.infinite_money);
|
if (ImGui::Checkbox("Money", &Game::Settings.cheats.infinite_money)) {
|
||||||
needs_save = true;
|
CVar_SetS32("gInfiniteMoney", Game::Settings.cheats.infinite_money);
|
||||||
}
|
needs_save = true;
|
||||||
|
}
|
||||||
|
|
||||||
if (ImGui::Checkbox("Infinite Health", &Game::Settings.cheats.infinite_health)) {
|
if (ImGui::Checkbox("Health", &Game::Settings.cheats.infinite_health)) {
|
||||||
CVar_SetS32("gInfiniteHealth", Game::Settings.cheats.infinite_health);
|
CVar_SetS32("gInfiniteHealth", Game::Settings.cheats.infinite_health);
|
||||||
needs_save = true;
|
needs_save = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui::Checkbox("Infinite Ammo", &Game::Settings.cheats.infinite_ammo)) {
|
if (ImGui::Checkbox("Ammo", &Game::Settings.cheats.infinite_ammo)) {
|
||||||
CVar_SetS32("gInfiniteAmmo", Game::Settings.cheats.infinite_ammo);
|
CVar_SetS32("gInfiniteAmmo", Game::Settings.cheats.infinite_ammo);
|
||||||
needs_save = true;
|
needs_save = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui::Checkbox("Infinite Magic", &Game::Settings.cheats.infinite_magic)) {
|
if (ImGui::Checkbox("Magic", &Game::Settings.cheats.infinite_magic)) {
|
||||||
CVar_SetS32("gInfiniteMagic", Game::Settings.cheats.infinite_magic);
|
CVar_SetS32("gInfiniteMagic", Game::Settings.cheats.infinite_magic);
|
||||||
needs_save = true;
|
needs_save = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ImGui::Checkbox("Nayru's Love", &Game::Settings.cheats.infinite_nayru)) {
|
||||||
|
CVar_SetS32("gInfiniteNayru", Game::Settings.cheats.infinite_nayru);
|
||||||
|
needs_save = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
ImGui::EndMenu();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui::Checkbox("No Clip", &Game::Settings.cheats.no_clip)) {
|
if (ImGui::Checkbox("No Clip", &Game::Settings.cheats.no_clip)) {
|
||||||
|
@ -494,6 +516,21 @@ namespace SohImGui {
|
||||||
needs_save = true;
|
needs_save = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ImGui::Checkbox("Easy ISG", &Game::Settings.cheats.ez_isg)) {
|
||||||
|
CVar_SetS32("gEzISG", Game::Settings.cheats.ez_isg);
|
||||||
|
needs_save = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ImGui::Checkbox("Unrestricted Items", &Game::Settings.cheats.no_restrict_item)) {
|
||||||
|
CVar_SetS32("gNoRestrictItems", Game::Settings.cheats.no_restrict_item);
|
||||||
|
needs_save = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ImGui::Checkbox("Freeze Time", &Game::Settings.cheats.freeze_time)) {
|
||||||
|
CVar_SetS32("gFreezeTime", Game::Settings.cheats.freeze_time);
|
||||||
|
needs_save = true;
|
||||||
|
}
|
||||||
|
|
||||||
ImGui::EndMenu();
|
ImGui::EndMenu();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -25,6 +25,7 @@ void BootCommands_Init()
|
||||||
CVar_RegisterS32("gDebugEnabled", 0);
|
CVar_RegisterS32("gDebugEnabled", 0);
|
||||||
CVar_RegisterS32("gPauseLiveLink", 0);
|
CVar_RegisterS32("gPauseLiveLink", 0);
|
||||||
CVar_RegisterS32("gMinimalUI", 0);
|
CVar_RegisterS32("gMinimalUI", 0);
|
||||||
|
CVar_RegisterS32("gVisualAgony", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
//void BootCommands_ParseBootArgs(char* str)
|
//void BootCommands_ParseBootArgs(char* str)
|
||||||
|
|
|
@ -381,6 +381,11 @@ void GameState_Update(GameState* gameState) {
|
||||||
gSaveContext.magic = (gSaveContext.doubleMagic + 1) * 0x30;
|
gSaveContext.magic = (gSaveContext.doubleMagic + 1) * 0x30;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Inf Nayru's Love Timer
|
||||||
|
if (CVar_GetS32("gInfiniteNayru", 0) != 0) {
|
||||||
|
gSaveContext.nayrusLoveTimer = 0x44B;
|
||||||
|
}
|
||||||
|
|
||||||
// Moon Jump On L
|
// Moon Jump On L
|
||||||
if (CVar_GetS32("gMoonJumpOnL", 0) != 0) {
|
if (CVar_GetS32("gMoonJumpOnL", 0) != 0) {
|
||||||
|
@ -393,6 +398,32 @@ void GameState_Update(GameState* gameState) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Permanent infinite sword glitch (ISG)
|
||||||
|
if (CVar_GetS32("gEzISG", 0) != 0) {
|
||||||
|
if (gGlobalCtx) {
|
||||||
|
Player* player = GET_PLAYER(gGlobalCtx);
|
||||||
|
player->swordState = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Unrestricted Items
|
||||||
|
if (CVar_GetS32("gNoRestrictItems", 0) != 0) {
|
||||||
|
if (gGlobalCtx) {
|
||||||
|
memset(&gGlobalCtx->interfaceCtx.restrictions, 0, sizeof(gGlobalCtx->interfaceCtx.restrictions));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Freeze Time
|
||||||
|
if (CVar_GetS32("gFreezeTime", 0) != 0) {
|
||||||
|
if (CVar_GetS32("gPrevTime", -1) == -1) {
|
||||||
|
CVar_SetS32("gPrevTime", gSaveContext.dayTime);
|
||||||
|
}
|
||||||
|
|
||||||
|
int32_t prevTime = CVar_GetS32("gPrevTime", gSaveContext.dayTime);
|
||||||
|
gSaveContext.dayTime = prevTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
gameState->frames++;
|
gameState->frames++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -166,7 +166,7 @@ void Message_UpdateOcarinaGame(GlobalContext* globalCtx) {
|
||||||
u8 Message_ShouldAdvance(GlobalContext* globalCtx) {
|
u8 Message_ShouldAdvance(GlobalContext* globalCtx) {
|
||||||
Input* input = &globalCtx->state.input[0];
|
Input* input = &globalCtx->state.input[0];
|
||||||
|
|
||||||
bool isB_Held = CVar_GetS32("gFastText", 0) != 0 ? CHECK_BTN_ALL(input->cur.button, BTN_B)
|
bool isB_Held = CVar_GetS32("gSkipText", 0) != 0 ? CHECK_BTN_ALL(input->cur.button, BTN_B)
|
||||||
: CHECK_BTN_ALL(input->press.button, BTN_B);
|
: CHECK_BTN_ALL(input->press.button, BTN_B);
|
||||||
|
|
||||||
if (CHECK_BTN_ALL(input->press.button, BTN_A) || isB_Held || CHECK_BTN_ALL(input->press.button, BTN_CUP)) {
|
if (CHECK_BTN_ALL(input->press.button, BTN_A) || isB_Held || CHECK_BTN_ALL(input->press.button, BTN_CUP)) {
|
||||||
|
@ -178,7 +178,7 @@ u8 Message_ShouldAdvance(GlobalContext* globalCtx) {
|
||||||
u8 Message_ShouldAdvanceSilent(GlobalContext* globalCtx) {
|
u8 Message_ShouldAdvanceSilent(GlobalContext* globalCtx) {
|
||||||
Input* input = &globalCtx->state.input[0];
|
Input* input = &globalCtx->state.input[0];
|
||||||
|
|
||||||
bool isB_Held = CVar_GetS32("gFastText", 0) != 0 ? CHECK_BTN_ALL(input->cur.button, BTN_B)
|
bool isB_Held = CVar_GetS32("gSkipText", 0) != 0 ? CHECK_BTN_ALL(input->cur.button, BTN_B)
|
||||||
: CHECK_BTN_ALL(input->press.button, BTN_B);
|
: CHECK_BTN_ALL(input->press.button, BTN_B);
|
||||||
|
|
||||||
return CHECK_BTN_ALL(input->press.button, BTN_A) || isB_Held || CHECK_BTN_ALL(input->press.button, BTN_CUP);
|
return CHECK_BTN_ALL(input->press.button, BTN_A) || isB_Held || CHECK_BTN_ALL(input->press.button, BTN_CUP);
|
||||||
|
@ -987,7 +987,7 @@ void Message_DrawText(GlobalContext* globalCtx, Gfx** gfxP) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
i = j - 1;
|
i = j - 1;
|
||||||
msgCtx->textDrawPos = i + 1;
|
msgCtx->textDrawPos = i + CVar_GetS32("gTextSpeed", 1);
|
||||||
|
|
||||||
if (character) {}
|
if (character) {}
|
||||||
}
|
}
|
||||||
|
@ -1097,7 +1097,7 @@ void Message_DrawText(GlobalContext* globalCtx, Gfx** gfxP) {
|
||||||
msgCtx->textDelay = msgCtx->msgBufDecoded[++i];
|
msgCtx->textDelay = msgCtx->msgBufDecoded[++i];
|
||||||
break;
|
break;
|
||||||
case MESSAGE_UNSKIPPABLE:
|
case MESSAGE_UNSKIPPABLE:
|
||||||
msgCtx->textUnskippable = CVar_GetS32("gFastText", 0) != 1;
|
msgCtx->textUnskippable = CVar_GetS32("gSkipText", 0) != 1;
|
||||||
break;
|
break;
|
||||||
case MESSAGE_TWO_CHOICE:
|
case MESSAGE_TWO_CHOICE:
|
||||||
msgCtx->textboxEndType = TEXTBOX_ENDTYPE_2_CHOICE;
|
msgCtx->textboxEndType = TEXTBOX_ENDTYPE_2_CHOICE;
|
||||||
|
@ -1180,7 +1180,7 @@ void Message_DrawText(GlobalContext* globalCtx, Gfx** gfxP) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (msgCtx->textDelayTimer == 0) {
|
if (msgCtx->textDelayTimer == 0) {
|
||||||
msgCtx->textDrawPos = i + 1;
|
msgCtx->textDrawPos = i + CVar_GetS32("gTextSpeed", 1);
|
||||||
msgCtx->textDelayTimer = msgCtx->textDelay;
|
msgCtx->textDelayTimer = msgCtx->textDelay;
|
||||||
} else {
|
} else {
|
||||||
msgCtx->textDelayTimer--;
|
msgCtx->textDelayTimer--;
|
||||||
|
@ -2089,7 +2089,7 @@ void Message_DrawMain(GlobalContext* globalCtx, Gfx** p) {
|
||||||
gDPSetCombineLERP(gfx++, 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE,
|
gDPSetCombineLERP(gfx++, 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE,
|
||||||
0);
|
0);
|
||||||
|
|
||||||
bool isB_Held = CVar_GetS32("gFastText", 0) != 0 ? CHECK_BTN_ALL(globalCtx->state.input[0].cur.button, BTN_B)
|
bool isB_Held = CVar_GetS32("gSkipText", 0) != 0 ? CHECK_BTN_ALL(globalCtx->state.input[0].cur.button, BTN_B)
|
||||||
: CHECK_BTN_ALL(globalCtx->state.input[0].press.button, BTN_B);
|
: CHECK_BTN_ALL(globalCtx->state.input[0].press.button, BTN_B);
|
||||||
|
|
||||||
switch (msgCtx->msgMode) {
|
switch (msgCtx->msgMode) {
|
||||||
|
@ -3136,7 +3136,7 @@ void Message_Update(GlobalContext* globalCtx) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool isB_Held = CVar_GetS32("gFastText", 0) != 0 ? CHECK_BTN_ALL(input->cur.button, BTN_B) && !sTextboxSkipped
|
bool isB_Held = CVar_GetS32("gSkipText", 0) != 0 ? CHECK_BTN_ALL(input->cur.button, BTN_B) && !sTextboxSkipped
|
||||||
: CHECK_BTN_ALL(input->press.button, BTN_B);
|
: CHECK_BTN_ALL(input->press.button, BTN_B);
|
||||||
|
|
||||||
switch (msgCtx->msgMode) {
|
switch (msgCtx->msgMode) {
|
||||||
|
|
|
@ -3140,6 +3140,14 @@ void Interface_Draw(GlobalContext* globalCtx) {
|
||||||
};
|
};
|
||||||
static s16 rupeeDigitsFirst[] = { 1, 0, 0 };
|
static s16 rupeeDigitsFirst[] = { 1, 0, 0 };
|
||||||
static s16 rupeeDigitsCount[] = { 2, 3, 3 };
|
static s16 rupeeDigitsCount[] = { 2, 3, 3 };
|
||||||
|
|
||||||
|
// courtesy of https://github.com/TestRunnerSRL/OoT-Randomizer/blob/Dev/ASM/c/hud_colors.c
|
||||||
|
static s16 rupeeWalletColors[3][3] = {
|
||||||
|
{ 0xC8, 0xFF, 0x64 }, // Base Wallet (Green)
|
||||||
|
{ 0x82, 0x82, 0xFF }, // Adult's Wallet (Blue)
|
||||||
|
{ 0xFF, 0x64, 0x64 }, // Giant's Wallet (Red)
|
||||||
|
};
|
||||||
|
|
||||||
static s16 spoilingItemEntrances[] = { 0x01AD, 0x0153, 0x0153 };
|
static s16 spoilingItemEntrances[] = { 0x01AD, 0x0153, 0x0153 };
|
||||||
static f32 D_80125B54[] = { -40.0f, -35.0f }; // unused
|
static f32 D_80125B54[] = { -40.0f, -35.0f }; // unused
|
||||||
static s16 D_80125B5C[] = { 91, 91 }; // unused
|
static s16 D_80125B5C[] = { 91, 91 }; // unused
|
||||||
|
@ -3182,7 +3190,15 @@ void Interface_Draw(GlobalContext* globalCtx) {
|
||||||
|
|
||||||
if (fullUi) {
|
if (fullUi) {
|
||||||
// Rupee Icon
|
// Rupee Icon
|
||||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 200, 255, 100, interfaceCtx->magicAlpha);
|
s16* rColor;
|
||||||
|
|
||||||
|
if (CVar_GetS32("gDynamicWalletIcon", 0)) {
|
||||||
|
rColor = &rupeeWalletColors[CUR_UPG_VALUE(UPG_WALLET)];
|
||||||
|
} else {
|
||||||
|
rColor = &rupeeWalletColors[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, rColor[0], rColor[1], rColor[2], interfaceCtx->magicAlpha);
|
||||||
gDPSetEnvColor(OVERLAY_DISP++, 0, 80, 0, 255);
|
gDPSetEnvColor(OVERLAY_DISP++, 0, 80, 0, 255);
|
||||||
OVERLAY_DISP = Gfx_TextureIA8(OVERLAY_DISP, gRupeeCounterIconTex, 16, 16, OTRGetRectDimensionFromLeftEdge(26),
|
OVERLAY_DISP = Gfx_TextureIA8(OVERLAY_DISP, gRupeeCounterIconTex, 16, 16, OTRGetRectDimensionFromLeftEdge(26),
|
||||||
206, 16, 16, 1 << 10, 1 << 10);
|
206, 16, 16, 1 << 10, 1 << 10);
|
||||||
|
@ -3280,7 +3296,7 @@ void Interface_Draw(GlobalContext* globalCtx) {
|
||||||
Gfx_TextureI8(OVERLAY_DISP, ((u8*)digitTextures[interfaceCtx->counterDigits[svar2]]), 8, 16,
|
Gfx_TextureI8(OVERLAY_DISP, ((u8*)digitTextures[interfaceCtx->counterDigits[svar2]]), 8, 16,
|
||||||
OTRGetRectDimensionFromLeftEdge(svar3), 206, 8, 16, 1 << 10, 1 << 10);
|
OTRGetRectDimensionFromLeftEdge(svar3), 206, 8, 16, 1 << 10, 1 << 10);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// Make sure item counts have black backgrounds
|
// Make sure item counts have black backgrounds
|
||||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 0, 0, 0, interfaceCtx->magicAlpha);
|
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 0, 0, 0, interfaceCtx->magicAlpha);
|
||||||
|
|
|
@ -496,7 +496,7 @@ void EnExItem_DrawMagic(EnExItem* this, GlobalContext* globalCtx, s16 magicIndex
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnExItem_DrawKey(EnExItem* this, GlobalContext* globalCtx, s32 index) {
|
void EnExItem_DrawKey(EnExItem* this, GlobalContext* globalCtx, s32 index) {
|
||||||
static s32 keySegments[] = { 0x0403F140 };
|
static void* keySegments[] = { gDropKeySmallTex };
|
||||||
|
|
||||||
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_en_ex_item.c", 880);
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_en_ex_item.c", 880);
|
||||||
|
|
||||||
|
|
|
@ -10274,8 +10274,45 @@ void func_80848EF8(Player* this) {
|
||||||
}
|
}
|
||||||
|
|
||||||
this->unk_6A0 += temp;
|
this->unk_6A0 += temp;
|
||||||
|
|
||||||
|
/*Prevent it on horse, while jumping and on title screen.
|
||||||
|
If you fly around no stone of agony for you! */
|
||||||
|
if (CVar_GetS32("gVisualAgony", 0) !=0 && !this->stateFlags1) {
|
||||||
|
int rectLeft = OTRGetRectDimensionFromLeftEdge(26); //Left X Pos
|
||||||
|
int rectTop = 60; //Top Y Pos
|
||||||
|
int rectWidth = 24; //Texture Width
|
||||||
|
int rectHeight = 24; //Texture Heigh
|
||||||
|
int DefaultIconA= 50; //Default icon alphe (55 on 255)
|
||||||
|
|
||||||
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_player.c", 2824);
|
||||||
|
gDPPipeSync(OVERLAY_DISP++);
|
||||||
|
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 255, 255, 255, DefaultIconA);
|
||||||
|
gDPSetCombineLERP(OVERLAY_DISP++, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0);
|
||||||
|
if (this->unk_6A0 > 4000000.0f) {
|
||||||
|
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 255, 255, 255, 255);
|
||||||
|
} else {
|
||||||
|
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 255, 255, 255, DefaultIconA);
|
||||||
|
}
|
||||||
|
if (temp == 0 || temp <= 0.1f) {
|
||||||
|
/*Fail check, it is used to draw off the icon when
|
||||||
|
link is standing out range but do not refresh unk_6A0.
|
||||||
|
Also used to make a default value in my case.*/
|
||||||
|
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 255, 255, 255, DefaultIconA);
|
||||||
|
}
|
||||||
|
gDPSetEnvColor(OVERLAY_DISP++, 0, 0, 0, 255);
|
||||||
|
gDPSetOtherMode(OVERLAY_DISP++, G_AD_DISABLE | G_CD_DISABLE | G_CK_NONE | G_TC_FILT | G_TF_POINT | G_TT_IA16 | G_TL_TILE | G_TD_CLAMP | G_TP_NONE | G_CYC_1CYCLE | G_PM_NPRIMITIVE, G_AC_NONE | G_ZS_PRIM | G_RM_XLU_SURF | G_RM_XLU_SURF2);
|
||||||
|
gDPLoadTextureBlock(OVERLAY_DISP++, gStoneOfAgonyIconTex, 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);
|
||||||
|
gDPSetOtherMode(OVERLAY_DISP++, G_AD_DISABLE | G_CD_DISABLE | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_IA16 | G_TL_TILE | G_TD_CLAMP | G_TP_NONE | G_CYC_1CYCLE | G_PM_NPRIMITIVE, G_AC_NONE | G_ZS_PRIM | G_RM_XLU_SURF | G_RM_XLU_SURF2);
|
||||||
|
gSPWideTextureRectangle(OVERLAY_DISP++, rectLeft << 2, rectTop << 2, (rectLeft + rectWidth) << 2, (rectTop + rectHeight) << 2, G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10);
|
||||||
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_player.c", 3500);
|
||||||
|
}
|
||||||
|
|
||||||
if (this->unk_6A0 > 4000000.0f) {
|
if (this->unk_6A0 > 4000000.0f) {
|
||||||
this->unk_6A0 = 0.0f;
|
this->unk_6A0 = 0.0f;
|
||||||
|
if (CVar_GetS32("gVisualAgony", 0) !=0 && !this->stateFlags1) {
|
||||||
|
//This audio is placed here and not in previous CVar check to prevent ears ra.. :)
|
||||||
|
Audio_PlaySoundGeneral(NA_SE_SY_MESSAGE_WOMAN, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E0);
|
||||||
|
}
|
||||||
func_8083264C(this, 120, 20, 10, 0);
|
func_8083264C(this, 120, 20, 10, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -595,7 +595,6 @@ void KaleidoScope_DrawEquipment(GlobalContext* globalCtx) {
|
||||||
gSPInvalidateTexCache(POLY_KAL_DISP++, pauseCtx->iconItemSegment);
|
gSPInvalidateTexCache(POLY_KAL_DISP++, pauseCtx->iconItemSegment);
|
||||||
//gSPInvalidateTexCache(POLY_KAL_DISP++, pauseCtx->iconItem24Segment);
|
//gSPInvalidateTexCache(POLY_KAL_DISP++, pauseCtx->iconItem24Segment);
|
||||||
gSPInvalidateTexCache(POLY_KAL_DISP++, pauseCtx->nameSegment);
|
gSPInvalidateTexCache(POLY_KAL_DISP++, pauseCtx->nameSegment);
|
||||||
gSPInvalidateTexCache(POLY_KAL_DISP++, globalCtx->interfaceCtx.mapSegment);
|
|
||||||
|
|
||||||
//gSPSegment(POLY_KAL_DISP++, 0x07, pauseCtx->playerSegment);
|
//gSPSegment(POLY_KAL_DISP++, 0x07, pauseCtx->playerSegment);
|
||||||
gSPSegment(POLY_KAL_DISP++, 0x08, pauseCtx->iconItemSegment);
|
gSPSegment(POLY_KAL_DISP++, 0x08, pauseCtx->iconItemSegment);
|
||||||
|
|
|
@ -332,6 +332,10 @@ void KaleidoScope_DrawDungeonMap(GlobalContext* globalCtx, GraphicsContext* gfxC
|
||||||
|
|
||||||
gSPVertex(POLY_KAL_DISP++, &pauseCtx->mapPageVtx[60], 8, 0);
|
gSPVertex(POLY_KAL_DISP++, &pauseCtx->mapPageVtx[60], 8, 0);
|
||||||
|
|
||||||
|
// The dungeon map textures are recreated each frame, so always invalidate them
|
||||||
|
gSPInvalidateTexCache(POLY_KAL_DISP++, interfaceCtx->mapSegment);
|
||||||
|
gSPInvalidateTexCache(POLY_KAL_DISP++, interfaceCtx->mapSegment + 0x800);
|
||||||
|
|
||||||
gDPLoadTextureBlock_4b(POLY_KAL_DISP++, interfaceCtx->mapSegment, G_IM_FMT_CI, 48, 85, 0, G_TX_WRAP | G_TX_NOMIRROR,
|
gDPLoadTextureBlock_4b(POLY_KAL_DISP++, interfaceCtx->mapSegment, G_IM_FMT_CI, 48, 85, 0, G_TX_WRAP | G_TX_NOMIRROR,
|
||||||
G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
|
G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue