Merge remote-tracking branch 'origin/develop-bradley' into bradmerge

This commit is contained in:
briaguya 2023-01-18 01:21:18 -05:00
commit c36e9cc32d
6 changed files with 31 additions and 16 deletions

View File

@ -32,17 +32,16 @@ def main():
parser.add_argument("-z", "--zapd", help="Path to ZAPD executable", dest="zapd_exe", type=str) parser.add_argument("-z", "--zapd", help="Path to ZAPD executable", dest="zapd_exe", type=str)
parser.add_argument("rom", help="Path to the rom", type=str, nargs="?") parser.add_argument("rom", help="Path to the rom", type=str, nargs="?")
parser.add_argument("--non-interactive", help="Runs the script non-interactively for use in build scripts.", dest="non_interactive", action="store_true") parser.add_argument("--non-interactive", help="Runs the script non-interactively for use in build scripts.", dest="non_interactive", action="store_true")
parser.add_argument("-v", "--verbose", help="Display rom's header checksums and their corresponding xml folder", dest="verbose", action="store_true")
args = parser.parse_args() args = parser.parse_args()
rom_paths = [ args.rom ] if args.rom else rom_chooser.chooseROM(args.non_interactive) roms = [ Z64Rom(args.rom) ] if args.rom else rom_chooser.chooseROM(args.verbose, args.non_interactive)
for rom_path in rom_paths: for rom in roms:
rom = Z64Rom(rom_path)
if (os.path.exists("Extract")): if (os.path.exists("Extract")):
shutil.rmtree("Extract") shutil.rmtree("Extract")
BuildOTR("../soh/assets/xml/" + rom.version.xml_ver + "/", rom_path, zapd_exe=args.zapd_exe) BuildOTR("../soh/assets/xml/" + rom.version.xml_ver + "/", rom.file_path, zapd_exe=args.zapd_exe)
if __name__ == "__main__": if __name__ == "__main__":
main() main()

View File

@ -2,12 +2,13 @@ import os, sys, glob
from rom_info import Z64Rom from rom_info import Z64Rom
def chooseROM(non_interactive=False): def chooseROM(verbose=False, non_interactive=False):
roms = [] roms = []
for file in glob.glob("*.z64"): for file in glob.glob("*.z64"):
if Z64Rom.isValidRom(file): rom = Z64Rom(file)
roms.append(file) if rom.is_valid:
roms.append(rom)
if not (roms): if not (roms):
print("Error: No roms located, place one in the OTRExporter directory", file=os.sys.stderr) print("Error: No roms located, place one in the OTRExporter directory", file=os.sys.stderr)
@ -21,23 +22,28 @@ def chooseROM(non_interactive=False):
foundMq = False foundMq = False
foundOot = False foundOot = False
for rom in roms: for rom in roms:
isMq = Z64Rom.isMqRom(rom) if rom.isMq and not foundMq:
if isMq and not foundMq:
romsToExtract.append(rom) romsToExtract.append(rom)
foundMq = True foundMq = True
elif not isMq and not foundOot: elif not rom.isMq and not foundOot:
romsToExtract.append(rom) romsToExtract.append(rom)
foundOot = True foundOot = True
return romsToExtract return romsToExtract
print(str(len(roms))+ " roms found, please select one by pressing 1-"+str(len(roms))) print(f"{len(roms)} roms found, please select one by pressing 1-{len(roms)}")
print()
for i in range(len(roms)): for i in range(len(roms)):
print(str(i+1)+ ". " + roms[i]) print(f"[{i+1:>2d}] {roms[i].file_path}")
if verbose:
print(f" Checksum: {roms[i].checksum.value}, Version XML: {roms[i].version.xml_ver}")
print()
while(1): while(1):
try: try:
selection = int(input()) selection = int(input())
except KeyboardInterrupt:
sys.exit(1)
except: except:
print("Bad input. Try again with the number keys.") print("Bad input. Try again with the number keys.")
continue continue

View File

@ -29,6 +29,8 @@
<string>@CMAKE_PROJECT_VERSION@</string> <string>@CMAKE_PROJECT_VERSION@</string>
<key>NSHumanReadableCopyright</key> <key>NSHumanReadableCopyright</key>
<string>Copyright 2022 HarbourMasters.</string> <string>Copyright 2022 HarbourMasters.</string>
<key>LSApplicationCategoryType</key>
<string>public.app-category.games</string>
<key>LSMinimumSystemVersion</key> <key>LSMinimumSystemVersion</key>
<string>10.15</string> <string>10.15</string>
</dict> </dict>

View File

@ -55,9 +55,8 @@ void DrawPresetSelector(PresetType presetTypeId) {
ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(6.0f, 4.0f)); ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(6.0f, 4.0f));
if (ImGui::Button(("Apply Preset##" + presetTypeCvar).c_str())) { if (ImGui::Button(("Apply Preset##" + presetTypeCvar).c_str())) {
if (selectedPresetId == 0) { clearCvars(presetTypeDef.cvarsToClear);
clearCvars(presetTypeDef.cvarsToClear); if (selectedPresetId != 0) {
} else {
applyPreset(selectedPresetDef.entries); applyPreset(selectedPresetDef.entries);
} }
SohImGui::RequestCvarSaveOnNextTick(); SohImGui::RequestCvarSaveOnNextTick();

View File

@ -286,6 +286,11 @@ Item& ItemFromGIID(const int giid) {
} }
index++; index++;
} }
// there are vanilla items that don't exist in the item table we're reading from here
// if we made it this far, it means we didn't find an item in the table
// if we don't return anything, the game will crash, so, as a workaround, return greg
return itemTable[GREEN_RUPEE];
} }
//This function should only be used to place items containing hint text //This function should only be used to place items containing hint text

View File

@ -271,6 +271,10 @@ namespace GameMenuBar {
ImGui::PopStyleVar(1); ImGui::PopStyleVar(1);
} }
if (SohImGui::supportsWindowedFullscreen()) {
UIWidgets::PaddedEnhancementCheckbox("Windowed fullscreen", "gSdlWindowedFullscreen", true, false);
}
if (SohImGui::supportsViewports()) { if (SohImGui::supportsViewports()) {
UIWidgets::PaddedEnhancementCheckbox("Allow multi-windows", "gEnableMultiViewports", true, false); UIWidgets::PaddedEnhancementCheckbox("Allow multi-windows", "gEnableMultiViewports", true, false);
UIWidgets::Tooltip("Allows windows to be able to be dragged off of the main game window. Requires a reload to take effect."); UIWidgets::Tooltip("Allows windows to be able to be dragged off of the main game window. Requires a reload to take effect.");