Compare commits

...

82 Commits

Author SHA1 Message Date
SuperDude88 92d11863f6 Crash Reporting Option Portability
- Makes the crash reporting preference get saved with the other config files
2026-05-31 19:00:58 -04:00
Pieter-Jan Briers 81caa89e12 Update Aurora & use new texture replacements API (#1935)
Cherry picked from TPHD branch

Co-authored-by: Luke Street <luke@street.dev>
2026-05-30 19:57:17 -06:00
Luke Street bc3cdcc955 Revert "Adds a new cheat that let you transform from the start of the game. (…" (#1927)
This reverts commit 62c19c0f64.
2026-05-29 21:20:15 -06:00
tomlube bf0dc85468 Revert "Added Sword and Shield skip Achievement" (#1917) 2026-05-29 15:14:05 -04:00
tomlube 656346a900 Merge pull request #1909 from 5upern1ce/sword-and-shield-skip
Added Sword and Shield skip Achievement
2026-05-29 15:11:46 -04:00
Supern_Ice 5269eadfaf Added Sword and Shield skip Achievement 2026-05-29 15:26:26 +01:00
Sirius902 e5c032f6e6 fix: item and talk rendering (#1896) 2026-05-29 03:15:56 +02:00
tomlube 030ef0f3bf Merge pull request #1884 from TwilitRealm/revert-1320-moonjumpfix
Revert "Fixed being unable to break through the water surface with the moonjump cheat"
2026-05-28 12:24:28 -04:00
Luke Street c3c8d459e8 Revert "Fixed being unable to break through the water surface with the moonju…"
This reverts commit 477192f3c2.
2026-05-28 09:29:23 -06:00
Giorgio Mendieta 21e0491d43 Preview texture replacements without the menu obstructing the view (#1599)
* feat: Change texture replacement from config_bool_select to graphics_tuner_control

* fix: add kTextureReplacementHelpText

* fix: remove unused header
2026-05-28 00:28:20 -06:00
Olivia!! 62c19c0f64 Adds a new cheat that let you transform from the start of the game. (#1241)
* Adds a new cheat that let you transform from the start of the game.

* Preserves transformation when passing loadzones similar to having shadow crystal

* standards compliance

* code compliance with decomp
2026-05-28 00:25:45 -06:00
Flash Computer 477192f3c2 Fixed being unable to break through the water surface with the moonjump cheat (#1320)
* Speed Vector for Link and Epona added to the Player Info debug ImGUI window for debugging.

* Fix being unable to moonjump through water surface

* Revert "Speed Vector for Link and Epona added to the Player Info debug ImGUI window for debugging."

This reverts commit d87cad3b37.
2026-05-28 00:16:50 -06:00
Ash 71961dae85 feat: Make gamepad status lighting optional (#1705)
* feat: Status Lighting option

* wip: rename to "Enable Controller LED"

* wip: setting for all four ports individually

* wip: fix detection + code cleanup

* wip: increase led speed for dusk preset

* wip: use aurora API

* bump aurora to 2b07d55

* wip: remove isSupported + fix namespace comment

* wip: add value override to BoolButton

* Style nit & remove unused

* Undo change

---------

Co-authored-by: Luke Street <luke@street.dev>
2026-05-28 00:04:23 -06:00
Jairinho 6592d95199 Allow independent X and Y sensitivity for free camera (#1431)
Co-authored-by: Luke Street <luke@street.dev>
2026-05-27 23:53:14 -06:00
JaxonKEKW c10e41f02e Scale Memory Card at Widescreen, fix Name Select screen (#1828)
* Improve Widescreen/Ultrawide Collection/File Select Menus

Re-scale (unstretch) and center elements of the Collection Screen/File Select details screen for Widescreen/Ultrawide

* Fix oversight

Fix default behavior

* Support ultrawide on Collection menu, target PC

support ultrawide instead of reverting to default behavior

wrap logic in target PC ifdefs (both changed functions themselves are still behind them as a whole as well) and use old function behavior otherwise

* Fix icon overshift at ultrawide

Icon shifted too much at ultrawide

Move redundant duplicate line

* Finished Collection/File Select screen changes

Added settings for the scaling mode (GameCube, Wii, Dusklight)

Depending on the setting in the Interface menu (Dusklight preset automatically sets scaling to Dusklight option, Classic preset sets to Gamecube, Wii/all old behavior available as well) Collection and File Select screens get scaled differently

Fixed backdrop behind slots on File Select with Dusklight setting (the Magic Armor background slot seeming too low on all aspects is vanilla behavior)

Fixed Fused Shadow/Mirror size and position with Dusklight setting

All logic is behind TARGET_PC gates (not the logic specifically, but the functions themselves have always been)

Changes  dSelect_cursor_c::refreshAspectScale to take a parameter so the scale of the selection cursor can be reset to default (only ever called in TARGET_PC functions or wrapped in gates)

* Ultrawide oversight

* Update d_file_select.cpp

copy paste oopsie

* Update d_file_select.cpp

im tired, never tested msvc

* Menu Scaling Mode

changed definitions to be more open ended

header additions now in TARGET_PC ifdefs

fixed/added scaling for Save/Option buttons in Collection menu with Dusklight setting, stopped scaling just the text

* Update settings.cpp

* Scale Memory Card screen, fix GC name screen

Scales the Memory Card screen (text only) on Wii and Dusklight scaling settings, GC already keeps default scaling

Fixes oversight on Name selection screen on GC settings (all textboxes/letters were getting scaled down)

* deleted line oopsie

* cleaning

* fix stupid

Moved cachedPanes to each 'wide' function because they're static and only being used there anyway
2026-05-27 23:52:31 -06:00
Pieter-Jan Briers e70fef0650 SafeStringCopy log fix (#1858)
* Fix logging on SafeStringCopy overflow failure

* Fix CRASH() macro to not take varargs

Didn't work, probably a remnant of a different iteration I made.

* Fix ValidateChannel CRASH call

---------

Co-authored-by: Luke Street <luke@street.dev>
2026-05-27 23:49:54 -06:00
Giorgio Mendieta e7e04b7c15 Skip CI build jobs on documentation-only changes (#1768)
* feat: don't build on PRs that only change documents

* fix: ignore docs/** on push
2026-05-27 23:39:30 -06:00
Olivia!! 42d9dd23c0 Add option for inverting Direct Select (#1841)
Adds a new subheading under Input for gameplay-related settings.
It's at the bottom because players probably will want to configure their camera
more than they care about ornery gameplay details.

The one and only toggle there right now is to invert the function of the L-trigger
on the Item Wheel. It renders the on-screen text properly if inverted too,
meaning with it on the game does tell you that holding L will rotate
and moving the stick without holding L will direct select.
2026-05-27 23:35:29 -06:00
Pieter-Jan Briers 5d68762590 Add a *ton* of const and constexpr around the codebase. (#1864)
* Add a *ton* of const and constexpr around the codebase.

This makes the codebase compile without strings being cast to non-const char*. I also went through and added constexpr where appropriate for tons of static data.

* Make process definitions const too

Might as well
2026-05-27 23:12:16 -06:00
TakaRikka db39a9c7f3 Merge pull request #1871 from TwilitRealm/snow-actor-fix
Set daObjAvalanche_c Matrix Properly
2026-05-27 21:06:46 -07:00
TakaRikka 23a5e2c48d Merge pull request #1857 from PJB3005/26-05-27-skip-event-size
Fix mSkipEventName again
2026-05-27 20:43:35 -07:00
SuperDude88 496ddf63bd More Issue Form Cleanup (#1877)
* Bug Form Formatting

- Space out yml more so it's easier to skim
- Add id to each section (GitHub says it does something but I'm mostly adding it for completeness)
- Tidy up some capitalization/punctuation for consistency

* Feature Request Form

- Add a simple feature request template that requires a feature description + marks it as the right type
2026-05-27 21:40:13 -06:00
SuperDude88 eab481661d Add Bug Report Issue Form (#1873) 2026-05-27 20:18:44 -06:00
SuperDude88 a9c8f44a86 Set daObjAvalanche_c Matrix Properly
- Set the matrix properly instead of multiplying based on the previous one

Fixes an issue where the snow would not fall when bonking if you had bloom disabled
2026-05-27 19:36:19 -04:00
PJB3005 5b9e9106ef Fix mSkipEventName again
They WAY undersized this in the original game it seems. The event used for the Zora overflows the original buffer size by *6* bytes.

Fixes https://github.com/TwilitRealm/dusklight/issues/1531
2026-05-27 14:00:36 +02:00
Luke Street a85f8c203d Better config saving handling (#1846) 2026-05-26 20:42:26 -06:00
Luke Street dc0c868bc1 Crash handler: Properly map stack frames from modules; fix build IDs (#1848) 2026-05-26 20:42:11 -06:00
Irastris 2afc52772c Suppress Textinput line break events on BaseStringButton (#1833)
* Suppress Textinput line break events on BaseStringButton

* Oops, removed a comment
2026-05-26 20:39:07 -06:00
doop 0dc475108b Ensure dMdl_c packet is in drawlist for interp (#1818)
Fixes #1010.
2026-05-26 11:39:40 -04:00
Pieter-Jan Briers a7790d7323 Change "verify your dump" instructions in readme (#1809)
* Change "verify your dump" instructions in readme

No need to do this manually as the game already does it. Instead let's link to a guide for dumping the game legitimately.

* Gotta shill
2026-05-25 08:25:21 -06:00
Luke Street 8b6f989315 Update aurora 2026-05-24 22:56:06 -06:00
Olivia!! f03bd71612 store config to disk when destroying ui (#1791) 2026-05-24 22:20:32 -06:00
Luke Street 2e1cc7cb26 Save config when hiding controller config window 2026-05-24 22:17:24 -06:00
SuperDude88 498868c17d Invert Air/Swim Axes (#1155)
* Invert Air/Swim Axes

Apparently this is a setting in TPHD, so for parity's sake I'll throw it in here

* Invert Air Controls

Thanks @Abzol for knowing exactly where this is
2026-05-24 22:12:36 -06:00
Loïs 2a3bc722d9 Add in-process crash handler with symbolizable backtrace (#1536) 2026-05-24 22:11:45 -06:00
Ash 326ef70afa feat: more info in player info window (#1641)
* wip: more info in player info window

* wip: 3d speed + vel vec + ui change

* wip: add epona velocity vec

* wip: remove dead code + add format indexing
2026-05-24 22:08:37 -06:00
Luke Street 1f970eb2dc More ZoneScoped 2026-05-24 17:45:04 -06:00
Luke Street 8aaf451708 Update Android SDLActivity 2026-05-24 17:44:54 -06:00
Luke Street a8a2f5c84c Disable OSReport in release builds 2026-05-24 17:44:43 -06:00
Luke Street fa074a2311 Disable STUB_LOG in release 2026-05-24 17:44:05 -06:00
Luke Street 1f1f7e324b Use absl::flat_hash_map in frame_interpolation 2026-05-24 17:43:51 -06:00
Luke Street 8905fbc1eb Downgrade SDL3 for Android 2026-05-24 17:43:39 -06:00
Luke Street c207150ae9 Fix achievement logic startup crash 2026-05-24 13:00:41 -06:00
Luke Street d73b0be801 Update aurora 2026-05-24 12:57:06 -06:00
Irastris 78e1a05aef Various mirror mode fixes (#1725)
* Fix mirror mode stage map scrolling

* Fix Link's arrow rotation on fullscreen map

* Fix fishing in mirror mode

* Fix cucco controls in mirror mode

* Only stick_x is necessary

---------

Co-authored-by: TakaRikka <38417346+TakaRikka@users.noreply.github.com>
Co-authored-by: Luke Street <luke@street.dev>
2026-05-24 12:31:04 -06:00
qwertyquerty 8668474a33 Achievements improvements v2 (#1553)
* make LJA achievement more attainable glitchlessly

* update loach achievement description

* 3 kill rollstab achievement

* update gone fishin description

* gorge skip achievement

* early city achievement

* make goats and snowboarding safety check stage

* fix indomitable requirement, add hero mode achievement

* properly check skybook completion when returned

* prototype ganondorf achievement

* Autospin Annihilation
2026-05-24 12:18:07 -06:00
Pieter-Jan Briers a6376368ee String safety (#1548)
* Array size UB fixes

* Fix ShieldD

* Remove (almost) all unsafe strcpy calls

Bunch of macros. C arrays are easy enough and just need a different call. For various cases where a char* is passed around bare, I've made a TEXT_SPAN macro that can store a length too for bounds checking.

* Move crash handling in safe string operations to separate TU

* strcat safe version

* sprintf made safe too

* Fix compile
2026-05-24 10:43:00 -06:00
Jasper St. Pierre af162bbd0a New Depth of Field implementation (#1773) 2026-05-24 10:41:59 -06:00
Luke Street 0504f1dda7 Uodate aurora 2026-05-24 05:31:15 -06:00
Olivia!! edc4aa0be4 Fixes linux credits crash (#1780)
alpha comparison mID is u16, but indexes into a 256-item table.
this causes MAT3 materials with an alpha comparison index of 0xFF crashes on linux

closes #1073
closes #1531
2026-05-23 21:31:19 -06:00
Olivia!! ac316f6288 fixes empty howl tab near certain actors (#1771)
When howling suns song near actors that arent howl stones, an empty howl tab was shown.
This fixes the issue by duplicating a check for sun's song howling into the relevant code branch.
2026-05-23 20:16:02 -06:00
Irastris 114e6e60bb build.yml revisions (#1744)
* build.yml revisions

* Undo push and PR changes
2026-05-23 20:15:32 -06:00
Reilly Brogan e9a7628218 linux: Fix Wayland window associations (#1718)
* linux: Fix Wayland window associations

`src/m_Do/m_Do_main.cpp` uses `SDL_SetAppMetadata("Dusklight", DUSK_VERSION_STRING, "dev.twilitrealm.dusk")` which results in the Wayland appId getting set to `dev.twilitrealm.dusk`. Wayland compositors associate Wayland windows to desktop files by comparing the window appId against installed desktop files by the name of the desktop files. For a given window with appId `dev.twilitrealm.dusk` it would look for `dev.twilitrealm.dusk.desktop`, and because the desktop file is not named that the compositor is unable to correctly associate the window which results in the default Wayland icon being shown for the window. It also results in windows not being associated with the given launcher if the desktop file is pinned to a task management widget of some kind.

Fix this by renaming the desktop file to `dev.twilitrealm.dusk.desktop`. Also while we're at it we can rename the icons as well to match the desktop file name, which isn't required but is a bit cleaner and will fit various packaging standards better.

Signed-off-by: Reilly Brogan <reilly@reillybrogan.com>

* Use dev.twilitrealm.dusk instead

---------

Signed-off-by: Reilly Brogan <reilly@reillybrogan.com>
2026-05-23 19:56:24 -06:00
Carlos Manuel 533c76f4d6 Add support for changing save location on Android (#1520)
- Enabled the Android UI path for changing the data folder
- Added Android MANAGE_EXTERNAL_STORAGE permission
- Added an Android flow to request “All files access” before opening the folder picker
- Added code path to resume the folder selection flow after returning from Android settings
- Improved the Android write-probe error message to point users at the required permission
2026-05-23 19:43:02 -06:00
SuperDude88 beb4146f33 Rework No Heart Drops (#1448)
- Check the setting once in daItem_c::_daItem_create
2026-05-23 19:41:18 -06:00
Luke Street ce0185adc4 CI: Add ARM64 Windows and Linux builds (#1778)
* ci: Try arm64 Linux/Windows builds

* Update aurora

* Explicitly set CMAKE_SYSTEM_PROCESSOR on Windows

* Update build-appimage.sh for aarch64

* Set Rust_RUSTUP_INSTALL_MISSING_TARGET=ON

* Use CMAKE_SYSTEM_PROCESSOR normalization for jpeg-turbo build too

* MSVC ARM64 support for freeverb
2026-05-23 19:32:50 -06:00
Luke Street db7e2a1e7b Update aurora 2026-05-23 17:00:08 -06:00
Luke Street 7a3e8977f1 Disabled vendored Dawn for macOS 2026-05-23 16:31:24 -06:00
Luke Street e4caf20a7a Update aurora 2026-05-23 16:27:28 -06:00
Luke Street a68f4ae1e6 Update aurora 2026-05-23 16:20:11 -06:00
Luke Street 05393fe7aa Update aurora 2026-05-23 15:52:21 -06:00
Carl 1711251cf5 Android: derive versionName and versionCode from git tag (#1593) 2026-05-23 07:22:24 -06:00
Loïs c804b1f663 Rework nix flake for offline multi-platform builds (#1601)
* Rework flake.nix for offline multi-platform builds (Linux & macOS)

* fix typo + fmt
2026-05-23 07:20:45 -06:00
Irastris c49f0e5c6e Use std::chrono for THP playback pacing (#1757)
* Use std::chrono for THP playback pacing

* Redundant include
2026-05-23 07:18:29 -06:00
Irastris 9655b827f3 Add KI_NUMPADENTER as input for NavCommand::Confirm (#1752) 2026-05-23 00:23:46 -04:00
doop 6a52cdf80e UI/copy tweaks (#1756)
* "Mortal Edge" description nit

"Darkhammer" seems to be the more common rendering of the name.

* Add missing option descriptions

* Tighten spacing for version/disc info on mobile

* Graphics API init failure message nit
2026-05-23 00:23:22 -04:00
TakaRikka ba6ef0d250 Merge pull request #1689 from itssecretnate/map_offset_fix
Fixed mirror mode dungeon map's offset
2026-05-21 00:13:19 -07:00
TakaRikka f7a5d88dfd Merge pull request #1674 from TwilitRealm/poecount
map poe counter option
2026-05-21 00:06:04 -07:00
Nathan Mena 8ac2658f54 fixed dungeon map offset in mirror mode 2026-05-20 15:15:28 -06:00
TakaRikka 0cb93a2a9f Merge branches 'poecount' and 'main' of ssh://github.com/TwilitRealm/dusklight into poecount 2026-05-20 13:24:57 -07:00
JaxonKEKW 716a2b4020 Improve Collection/File Select screens at Widescreen/Ultrawide (#1614)
* Improve Widescreen/Ultrawide Collection/File Select Menus

Re-scale (unstretch) and center elements of the Collection Screen/File Select details screen for Widescreen/Ultrawide

* Fix oversight

Fix default behavior

* Support ultrawide on Collection menu, target PC

support ultrawide instead of reverting to default behavior

wrap logic in target PC ifdefs (both changed functions themselves are still behind them as a whole as well) and use old function behavior otherwise

* Fix icon overshift at ultrawide

Icon shifted too much at ultrawide

Move redundant duplicate line

* Finished Collection/File Select screen changes

Added settings for the scaling mode (GameCube, Wii, Dusklight)

Depending on the setting in the Interface menu (Dusklight preset automatically sets scaling to Dusklight option, Classic preset sets to Gamecube, Wii/all old behavior available as well) Collection and File Select screens get scaled differently

Fixed backdrop behind slots on File Select with Dusklight setting (the Magic Armor background slot seeming too low on all aspects is vanilla behavior)

Fixed Fused Shadow/Mirror size and position with Dusklight setting

All logic is behind TARGET_PC gates (not the logic specifically, but the functions themselves have always been)

Changes  dSelect_cursor_c::refreshAspectScale to take a parameter so the scale of the selection cursor can be reset to default (only ever called in TARGET_PC functions or wrapped in gates)

* Ultrawide oversight

* Update d_file_select.cpp

copy paste oopsie

* Update d_file_select.cpp

im tired, never tested msvc

* Menu Scaling Mode

changed definitions to be more open ended

header additions now in TARGET_PC ifdefs

fixed/added scaling for Save/Option buttons in Collection menu with Dusklight setting, stopped scaling just the text

* Update settings.cpp
2026-05-20 15:55:38 -04:00
TakaRikka 069650295c dmap count fix 2026-05-20 04:06:33 -07:00
TakaRikka 5119135068 dmap poe counter 2026-05-20 04:03:32 -07:00
TakaRikka fa660ebd0f fmap poe counter 2026-05-20 03:19:25 -07:00
TakaRikka 5d6e58eeac Merge pull request #1129 from Krutonium/improvement/toggle_owl_statue_markers
Add ability to toggle off Owl Statue Markers on Map
2026-05-19 16:46:56 -07:00
MelonSpeedruns cd97563d3f Merge branch 'main' into improvement/toggle_owl_statue_markers 2026-05-19 10:10:11 -04:00
TakaRikka 43e8563609 Merge pull request #1615 from PJB3005/26-05-18-charge-bouclier
Fix truncating button name
2026-05-18 18:37:42 -07:00
PJB3005 aa8f905768 Fix truncating button name
Fixes https://github.com/TwilitRealm/dusklight/issues/1549
2026-05-18 21:23:03 +02:00
Krutonium 273af7beb6 Figured it out, compiles now 2026-05-12 19:02:43 -04:00
Krutonium 18cbb584c6 Fix the order of entries
Based on the build error the CI gave, I think this is the issue.
2026-05-12 18:39:18 -04:00
Krutonium 42cded342e Merge branch 'main' into improvement/toggle_owl_statue_markers 2026-05-12 18:22:09 -04:00
Krutonium 696e8e6aa9 Add ability to toggle off Owl Statue Markers on Map 2026-05-12 17:36:34 -04:00
1098 changed files with 9032 additions and 5909 deletions
+116
View File
@@ -0,0 +1,116 @@
name: Bug Report
description: Report an issue with Dusklight
type: Bug
body:
- type: checkboxes
id: official-build-certification
attributes:
label: Mods and Forks
description: Certify that this issue exists on the official builds of Dusklight
options:
- label: The bug occurs on an **official release** of Dusklight, without any forks or third-party patches installed
required: true
validations:
required: true
- type: input
id: dusklight-version
attributes:
label: Dusklight Version
placeholder: ex. 1.3.1
validations:
required: true
- type: textarea
id: bug-description
attributes:
label: Bug Description
placeholder: Describe the bug you are encountering
validations:
required: true
- type: textarea
id: repro-steps
attributes:
label: Steps to Reproduce
placeholder: |
1. Load save
2. Go to Hyrule Field
3. See bug
- type: textarea
id: expected-behavior
attributes:
label: Expected Behavior
placeholder: Describe what should be happening
- type: textarea
id: current-behavior
attributes:
label: Current Behavior
placeholder: Describe what is happening instead
- type: dropdown
id: system-os-architecture
attributes:
label: OS / Architecture
description: The operating system and architecture you are running Dusklight on
options:
- Windows x86-64
- Windows ARM64
- MacOS ARM64
- MacOS x86-64
- Linux ARM64
- Linux x84-64
- Android ARM64
- iOS ARM64
validations:
required: true
- type: dropdown
id: game-region
attributes:
label: Game Region
description: The game region you are playing on
options:
- NTSC-U (North America)
- PAL (Europe)
validations:
required: true
- type: input
id: game-language
attributes:
label: Game Language
description: The language you are playing the game in
placeholder: ex. English, Spanish, etc.
- type: dropdown
attributes:
label: Graphics Backend
options:
- Vulkan
- D3D12
- Metal
- D3D11
- OpenGL ES
- Unsure / Default
default: 5
- type: textarea
id: texture-packs-mods
attributes:
label: Texture Packs and Mods
placeholder: List any texture packs or mods you had installed
- type: upload
id: logs-upload
attributes:
label: Logs and Other Files
description: Include any relevant logs, config files, or saves to reproduce the bug
- type: textarea
id: additional-context
attributes:
label: Additional Context
placeholder: Any other information that might be helpful
@@ -0,0 +1,24 @@
name: Feature Request
description: Request a new Dusklight feature. Not all requests can/will be included, but we will take these ideas into consideration.
type: Feature
body:
- type: textarea
id: feature-description
attributes:
label: Feature Description
placeholder: Describe the feature you are requesting
validations:
required: true
- type: input
id: feature-platform
attributes:
label: Platform
description: If applicable, list the platforms this feature applies to. If it is for all platforms, feel free to leave this field blank.
placeholder: ex. Mac, Android, Steam Deck, etc.
- type: textarea
id: feature-related-info
attributes:
label: Additional Information
placeholder: Any other information that might be helpful (related features, existing implementations, open pull requests or issues, etc.)
+21 -12
View File
@@ -5,7 +5,16 @@ on:
paths-ignore:
- '*.md'
- '*LICENSE'
- 'docs/**'
pull_request:
paths-ignore:
- '*.md'
- '*LICENSE'
- 'docs/**'
concurrency:
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && format('pr-{0}', github.event.pull_request.number) || format('run-{0}', github.run_id) }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
env:
SCCACHE_GHA_ENABLED: "true"
@@ -22,13 +31,13 @@ jobs:
matrix:
include:
- name: GCC x86_64
runner: ubuntu-latest
runner: ubuntu-24.04
preset: gcc
artifact_arch: x86_64
# - name: GCC aarch64
# runner: ubuntu-24.04-arm
# preset: gcc
# artifact_arch: aarch64
- name: GCC aarch64
runner: ubuntu-24.04-arm
preset: gcc
artifact_arch: aarch64
# - name: Clang x86_64
# runner: ubuntu-latest
# preset: clang
@@ -221,12 +230,12 @@ jobs:
msvc_arch: amd64
vcpkg_arch: x64
artifact_arch: x86_64
# - name: MSVC arm64
# runner: windows-11-arm
# preset: arm64-msvc
# msvc_arch: arm64
# vcpkg_arch: arm64
# artifact_arch: arm64
- name: MSVC arm64
runner: windows-latest
preset: arm64-msvc
msvc_arch: amd64_arm64
vcpkg_arch: arm64
artifact_arch: arm64
# - name: Clang x86_64
# runner: windows-latest
# preset: clang
@@ -255,7 +264,7 @@ jobs:
- name: Install dependencies
run: |
choco install ninja
vcpkg install freetype:${{matrix.vcpkg_arch}}-windows-static zstd:${{matrix.vcpkg_arch}}-windows-static
vcpkg install freetype:${{matrix.vcpkg_arch}}-windows zstd:${{matrix.vcpkg_arch}}-windows
- name: Configure CMake
run: cmake --preset x-windows-ci-${{matrix.preset}}
+27 -4
View File
@@ -11,6 +11,7 @@ if (DUSK_VERSION_OVERRIDE)
set(DUSK_WC_DESCRIBE "${DUSK_VERSION_OVERRIDE}")
set(DUSK_VERSION_STRING "0.0.0.0")
set(DUSK_SHORT_VERSION_STRING "0.0.0")
set(DUSK_VERSION_CODE "1")
set(DUSK_WC_REVISION "")
set(DUSK_WC_BRANCH "")
set(DUSK_WC_DATE "")
@@ -61,6 +62,9 @@ endif ()
if (DUSK_WC_DESCRIBE MATCHES "^v([0-9]+)\\.([0-9]+)\\.([0-9]+)([-+].*)?$")
set(DUSK_SHORT_VERSION_STRING "${CMAKE_MATCH_1}.${CMAKE_MATCH_2}.${CMAKE_MATCH_3}")
set(_ver_major ${CMAKE_MATCH_1})
set(_ver_minor ${CMAKE_MATCH_2})
set(_ver_patch ${CMAKE_MATCH_3})
set(DUSK_VERSION_TWEAK "0")
if (DUSK_WC_DESCRIBE MATCHES "^v[0-9]+\\.[0-9]+\\.[0-9]+-([0-9]+)(-dirty)?$")
set(DUSK_VERSION_TWEAK "${CMAKE_MATCH_1}")
@@ -68,10 +72,19 @@ if (DUSK_WC_DESCRIBE MATCHES "^v([0-9]+)\\.([0-9]+)\\.([0-9]+)([-+].*)?$")
set(DUSK_VERSION_TWEAK "${CMAKE_MATCH_1}")
endif ()
set(DUSK_VERSION_STRING "${DUSK_SHORT_VERSION_STRING}.${DUSK_VERSION_TWEAK}")
if(DUSK_VERSION_TWEAK GREATER 999)
set(_tweak 999)
else()
set(_tweak ${DUSK_VERSION_TWEAK})
endif()
# encoding: major*1e7 + minor*1e5 + patch*1e3 + tweak; collision-free for major<210, minor<100, patch<100, tweak<=999
math(EXPR DUSK_VERSION_CODE
"${_ver_major} * 10000000 + ${_ver_minor} * 100000 + ${_ver_patch} * 1000 + ${_tweak}")
else ()
set(DUSK_WC_DESCRIBE "UNKNOWN-VERSION")
set(DUSK_VERSION_STRING "0.0.0.0")
set(DUSK_SHORT_VERSION_STRING "0.0.0")
set(DUSK_VERSION_CODE "1")
endif ()
endif ()
@@ -79,6 +92,7 @@ endif ()
# Add version information to CI environment variables
if(DEFINED ENV{GITHUB_ENV})
file(APPEND "$ENV{GITHUB_ENV}" "DUSK_VERSION=${DUSK_WC_DESCRIBE}\n")
file(APPEND "$ENV{GITHUB_ENV}" "DUSK_VERSION_CODE=${DUSK_VERSION_CODE}\n")
endif()
message(STATUS "Dusklight version set to ${DUSK_WC_DESCRIBE}")
message(STATUS "Build type: ${CMAKE_BUILD_TYPE}")
@@ -86,6 +100,8 @@ project(dusklight LANGUAGES C CXX VERSION ${DUSK_VERSION_STRING})
if (APPLE)
enable_language(OBJC OBJCXX)
endif ()
# Adjust CMAKE_SYSTEM_PROCESSOR on Windows to match compiler target
include(cmake/WindowsTargetProcessor.cmake)
if (APPLE AND NOT TVOS AND CMAKE_SYSTEM_NAME STREQUAL tvOS)
# ios.toolchain.cmake hack for SDL
set(TVOS ON)
@@ -154,6 +170,7 @@ if (DUSK_MOVIE_SUPPORT)
endif ()
set(_jpeg_cmake_args
-DCMAKE_INSTALL_PREFIX=${_jpeg_install_dir}
-DCMAKE_PROJECT_INCLUDE=${CMAKE_CURRENT_SOURCE_DIR}/cmake/WindowsTargetProcessor.cmake
-DENABLE_SHARED=OFF
-DWITH_TURBOJPEG=ON
-DWITH_JAVA=OFF
@@ -202,10 +219,9 @@ if (CMAKE_SYSTEM_NAME STREQUAL Linux)
# -Wno-multichar: Multi-character constants ('ABCD') are implementation-defined but all compilers
# (CW, GCC, Clang, MSVC) encode them identically in big-endian order.
# For >4-char literals (which GCC/Clang truncate to int), use the MULTI_CHAR() macro.
# -Wwrite-strings: Game code relies on implicit const char* -> char* conversions
# -Wdeprecated-declarations: JSystem uses std::iterator, deprecated in C++17
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-multichar -Wno-write-strings")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-multichar -Wno-write-strings -Wno-trigraphs -Wno-deprecated-declarations")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-multichar")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-multichar -Wno-trigraphs -Wno-deprecated-declarations")
set(CMAKE_INSTALL_RPATH "$ORIGIN")
set(CMAKE_BUILD_RPATH "$ORIGIN")
elseif (APPLE)
@@ -215,7 +231,6 @@ elseif (APPLE)
elseif (MSVC)
add_compile_options(
$<$<COMPILE_LANGUAGE:C,CXX>:/bigobj>
$<$<COMPILE_LANGUAGE:C,CXX>:/Zc:strictStrings->
$<$<COMPILE_LANGUAGE:C,CXX>:/MP>
$<$<COMPILE_LANGUAGE:C,CXX>:/FS>
)
@@ -338,6 +353,10 @@ endif ()
if (WIN32)
list(APPEND GAME_LIBS Ws2_32)
if (CMAKE_BUILD_TYPE STREQUAL Debug)
list(APPEND GAME_LIBS dbghelp)
list(APPEND GAME_COMPILE_DEFS DUSK_CRASH_DBGHELP=1)
endif ()
endif ()
set(DUSK_HTTP_BACKEND_SOURCE src/dusk/http/no_backend.cpp)
@@ -474,6 +493,10 @@ if (ANDROID)
target_link_options(dusklight PRIVATE "-Wl,-u,SDL_main")
endif ()
if (CMAKE_SYSTEM_NAME STREQUAL Linux)
target_link_options(dusklight PRIVATE "-Wl,--build-id=sha1")
endif ()
if (NOT APPLE)
add_custom_command(TARGET dusklight POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_directory
+12 -4
View File
@@ -33,7 +33,11 @@
"value": true
},
"DUSK_SENTRY_DSN": "$env{SENTRY_DSN}",
"DUSK_SENTRY_ENVIRONMENT": "production"
"DUSK_SENTRY_ENVIRONMENT": "production",
"Rust_RUSTUP_INSTALL_MISSING_TARGET": {
"type": "BOOL",
"value": true
}
}
},
{
@@ -322,7 +326,9 @@
"BUILD_SHARED_LIBS": {
"type": "BOOL",
"value": false
}
},
"AURORA_SDL3_VERSION": "3.4.8",
"AURORA_SDL3_REF": "refs/tags/release-3.4.8"
}
},
{
@@ -430,7 +436,6 @@
"x-macos-ci"
],
"cacheVariables": {
"AURORA_DAWN_PROVIDER": "vendor",
"CMAKE_OSX_ARCHITECTURES": "x86_64",
"Rust_CARGO_TARGET": "x86_64-apple-darwin"
}
@@ -490,7 +495,10 @@
"inherits": [
"x-windows-ci",
"windows-arm64-msvc"
]
],
"cacheVariables": {
"VCPKG_TARGET_TRIPLET": "arm64-windows"
}
}
],
"buildPresets": [
+3 -8
View File
@@ -22,16 +22,11 @@ It aims to be as accurate as possible to the original while also providing new o
> [!IMPORTANT]
> At a minimum, Dusklight requires a GPU with support for either D3D12, Vulkan, or Metal. Your experience with specific hardware, operating systems, and drivers may vary. In particular, older Intel iGPUs have a high likelihood of incompatibility. We are also aware of a number of issues on devices with Adreno GPUs and are working to resolve them.
### 1. Verify your dump
### 1. Dump your game
First, make sure your dump of the game is clean and supported by Dusklight. You can do this by checking the SHA-1 hash of your dump against this list of supported versions:
You must dump your own copy of the game, please see [this article](https://wiki.dolphin-emu.org/index.php?title=Ripping_Games) for instructions. After dumping, you can use a program like [Dolphin](https://dolphin-emu.org/) or [nodtool](https://github.com/encounter/nod/releases) to convert the `.iso` to a `.rvz` to save space.
| Version | SHA-1 hash |
|--------------| ------------------------------------------ |
| GameCube USA | `75edd3ddff41f125d1b4ce1a40378f1b565519e7` |
| GameCube EUR | `2601822a488eeb86fb89db16ca8f29c2c953e1ca` |
*Support for other versions of the game is planned in the future.
Currently, only the GameCube USA and EUR releases are supported. Support for other versions of the game is planned in the future.
### 2. Download [Dusklight](https://github.com/TwilitRealm/dusklight/releases)
+3 -2
View File
@@ -6,6 +6,7 @@ fi
build_dir="$PWD/build"
linuxdeploy="$build_dir/linuxdeploy-$(uname -m).AppImage"
lib_dir="/usr/lib/$(uname -m)-linux-gnu"
# Get linuxdeploy
mkdir -p "$build_dir"
@@ -19,8 +20,8 @@ for install_path in build/install/*; do
cp -r "$install_path" build/appdir/usr/bin
done
cp -r platforms/freedesktop/{16x16,32x32,48x48,64x64,128x128,256x256,512x512,1024x1024} build/appdir/usr/share/icons/hicolor
cp platforms/freedesktop/dusklight.desktop build/appdir/usr/share/applications
cp platforms/freedesktop/dev.twilitrealm.dusk.desktop build/appdir/usr/share/applications
cd build/install
VERSION="$DUSK_VERSION" NO_STRIP=1 "$linuxdeploy" \
-l /usr/lib/x86_64-linux-gnu/libusb-1.0.so --appdir "$build_dir/appdir" --output appimage
-l "$lib_dir/libusb-1.0.so" --appdir "$build_dir/appdir" --output appimage
+9
View File
@@ -0,0 +1,9 @@
if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
if (CMAKE_C_COMPILER_ARCHITECTURE_ID STREQUAL "ARM64" OR CMAKE_C_COMPILER_ARCHITECTURE_ID STREQUAL "ARM64EC")
set(CMAKE_SYSTEM_PROCESSOR "ARM64")
elseif (CMAKE_C_COMPILER_ARCHITECTURE_ID STREQUAL "x64")
set(CMAKE_SYSTEM_PROCESSOR "AMD64")
elseif (CMAKE_C_COMPILER_ARCHITECTURE_ID STREQUAL "X86")
set(CMAKE_SYSTEM_PROCESSOR "X86")
endif ()
endif ()
+1 -1
+4
View File
@@ -1420,6 +1420,7 @@ set(DUSK_FILES
src/d/actor/d_a_alink_dusk.cpp
src/dusk/asserts.cpp
src/dusk/config.cpp
src/dusk/crash_handler.cpp
src/dusk/crash_reporting.cpp
src/dusk/data.cpp
src/dusk/data.hpp
@@ -1439,7 +1440,10 @@ set(DUSK_FILES
src/dusk/logging.cpp
src/dusk/settings.cpp
src/dusk/speedrun.cpp
src/dusk/string.cpp
src/dusk/stubs.cpp
include/dusk/texture_replacements.hpp
src/dusk/texture_replacements.cpp
src/dusk/update_check.cpp
src/dusk/update_check.hpp
#src/dusk/m_Do_ext_dusk.cpp
Generated
+3 -3
View File
@@ -2,11 +2,11 @@
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1775710090,
"narHash": "sha256-ar3rofg+awPB8QXDaFJhJ2jJhu+KqN/PRCXeyuXR76E=",
"lastModified": 1778869304,
"narHash": "sha256-30sZNZoA1cqF5JNO9fVX+wgiQYjB7HJqqJ4ztCDeBZE=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "4c1018dae018162ec878d42fec712642d214fdfa",
"rev": "d233902339c02a9c334e7e593de68855ad26c4cb",
"type": "github"
},
"original": {
+345 -190
View File
@@ -1,219 +1,374 @@
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
};
outputs = { self, nixpkgs }:
description = "Dusklight native PC port of the Twilight Princess decompilation";
inputs.nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
outputs =
{ self, nixpkgs }:
let
inherit (nixpkgs) lib;
supportedSystems = [
"x86_64-linux"
"aarch64-linux"
"x86_64-darwin"
"aarch64-darwin"
];
forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
pkgsFor = system: import nixpkgs { inherit system; };
forAllSystems = lib.genAttrs supportedSystems;
# Dependencies that are not packaged in nixpkgs (used by the Linux package build):
buildSources = pkgs: {
dawn-src = pkgs.fetchzip {
url = "https://github.com/encounter/dawn-build/releases/download/v20260423.175430/dawn-linux-x86_64.tar.gz";
dawnVersion = "v20260423.175430";
nodVersion = "v2.0.0-alpha.8";
versionSuffix = "nix-" + (self.shortRev or self.dirtyShortRev or "dirty");
dawnInfo = {
"x86_64-linux" = {
triple = "linux-x86_64";
hash = "sha256-HXfKTLHtMPwupnFnaflCARtXVPuS/0PoCePXidjE5xs=";
stripRoot = false;
};
nod-src = pkgs.fetchzip {
url = "https://github.com/encounter/nod/releases/download/v2.0.0-alpha.8/libnod-linux-x86_64.tar.gz";
hash = "sha256-mUqvLsbsqaZ+HAjMmHYPYO+MgtanGRTw7Gzn5uXR5rE=";
stripRoot = false;
"aarch64-linux" = {
triple = "linux-aarch64";
hash = "sha256-34yyFpfqBZUwoFXQ41F0AwAU78FaNihOSY0oriwn6B0=";
};
# The version of imgui on nixpkgs does not map cleanly.
imgui-src = pkgs.fetchFromGitHub {
owner = "ocornut";
repo = "imgui";
rev = "v1.91.9b-docking";
hash = "sha256-mQOJ6jCN+7VopgZ61yzaCnt4R1QLrW7+47xxMhFRHLQ=";
"aarch64-darwin" = {
triple = "darwin-arm64";
hash = "sha256-eQnzrBp6gjiBek1VYQ9A5W13ClYWrDDKjIqv/7eNTR4=";
};
sqlite-src = pkgs.fetchzip {
url = "https://sqlite.org/2026/sqlite-amalgamation-3510300.zip";
hash = "sha256-pNMR8zxaaqfAzQ0AQBOXMct4usdjey1Q0Gnitg06UhM=";
};
rmlui-src = pkgs.fetchzip {
url = "https://github.com/mikke89/RmlUi/archive/f9b8c9e2935d5df2c7dff2c190d3968e99b0c3dc.tar.gz";
hash = "sha256-g4O/JZUrrcseOz8o2QJRt+2CeuiLnVeuDJc906xvuIg=";
"x86_64-darwin" = {
triple = "darwin-x86_64";
hash = "sha256-QGWiGdxiI9kci3NPXH6QFFirxn16851zB/w3jqhIBJ4=";
};
};
# Dusklight Actual (Linux x86_64 only — relies on prebuilt dawn/nod binaries)
mkDusklight = pkgs:
let srcs = buildSources pkgs;
versionSuffix = if self ? shortRev && self.shortRev != null
then "nix-${self.shortRev}"
else "nix-dirty";
in
pkgs.stdenv.mkDerivation {
name = "dusklight";
src = ./.;
postUnpack = ''
sed -i '/add_subdirectory(tests)/d' $sourceRoot/extern/aurora/CMakeLists.txt
'';
# Remove last line to re-enable tests
cmakeFlags = [
"-DDUSK_VERSION_OVERRIDE=${versionSuffix}"
"-DFETCHCONTENT_FULLY_DISCONNECTED=ON"
"-DFETCHCONTENT_SOURCE_DIR_CXXOPTS=${pkgs.cxxopts.src}"
"-DFETCHCONTENT_SOURCE_DIR_JSON=${pkgs.nlohmann_json.src}"
"-DFETCHCONTENT_SOURCE_DIR_DAWN_PREBUILT=${srcs.dawn-src}"
"-DFETCHCONTENT_SOURCE_DIR_XXHASH=${pkgs.xxHash.src}"
"-DFETCHCONTENT_SOURCE_DIR_FMT=${pkgs.fmt.src}"
"-DFETCHCONTENT_SOURCE_DIR_TRACY=${pkgs.tracy.src}"
"-DAURORA_SDL3_PROVIDER=system"
"-DFETCHCONTENT_SOURCE_DIR_NOD_PREBUILT=${srcs.nod-src}"
"-DAURORA_NOD_PROVIDER=package"
"-DFETCHCONTENT_SOURCE_DIR_FREETYPE=${pkgs.freetype.src}"
"-DFETCHCONTENT_SOURCE_DIR_ZSTD=${pkgs.zstd.src}"
"-DFETCHCONTENT_SOURCE_DIR_SQLITE3=${srcs.sqlite-src}"
"-DFETCHCONTENT_SOURCE_DIR_IMGUI=${srcs.imgui-src}"
"-DFETCHCONTENT_SOURCE_DIR_RMLUI=${srcs.rmlui-src}"
"-DCMAKE_CROSSCOMPILING=ON" # Tests are not working as I didn't want to work through getting google's test suite working as well. This is the only guard I could find to disable it.
];
installPhase = ''
mkdir -p $out/bin
cp dusklight $out/bin/dusklight
cp -r ./res $out/bin/res
nodPrebuiltInfo = {
"x86_64-linux" = {
triple = "linux-x86_64";
hash = "sha256-mUqvLsbsqaZ+HAjMmHYPYO+MgtanGRTw7Gzn5uXR5rE=";
};
"aarch64-darwin" = {
triple = "macos-arm64";
hash = "sha256-UPy1ywCcv0K6VJOU3uUelJuUdBh3UNaPRlyP5LOBeDw=";
};
};
mkdir -p $out/share/applications
cp $src/platforms/freedesktop/dusklight.desktop $out/share/applications/dusklight.desktop
perSystem =
system:
let
pkgs = import nixpkgs { inherit system; };
inherit (pkgs.stdenv.hostPlatform) isDarwin;
hasNodPrebuilt = nodPrebuiltInfo ? ${system};
for size in 16 32 48 64 128 256 512 1024; do
install -Dm644 $src/platforms/freedesktop/''${size}x''${size}/apps/dusklight.png \
$out/share/icons/hicolor/''${size}x''${size}/apps/dusklight.png
done
'';
nativeBuildInputs = [
aurora = pkgs.fetchFromGitHub {
owner = "encounter";
repo = "aurora";
rev = "10006618ee493f248b8597e4dfa1d2871d76a1d9";
hash = "sha256-lY2xuVyB7aPJ9+2wwLRB3F5U/BuPSxdSpegdG+qNd9o=";
};
dawn = pkgs.fetchzip {
url = "https://github.com/encounter/dawn-build/releases/download/${dawnVersion}/dawn-${dawnInfo.${system}.triple}.tar.gz";
hash = dawnInfo.${system}.hash;
stripRoot = false;
};
corrosion = pkgs.fetchFromGitHub {
owner = "corrosion-rs";
repo = "corrosion";
rev = "v0.6.1";
hash = "sha256-ppuDNObfKhneD9AlnPAvyCRHKW3BidXKglD1j/LE9CM=";
};
nodFromSource = pkgs.stdenv.mkDerivation (finalAttrs: {
pname = "nod";
version = nodVersion;
src = pkgs.fetchFromGitHub {
owner = "encounter";
repo = "nod";
rev = nodVersion;
hash = "sha256-+zrtVzjo0+X/6uMcNUn1+FaSR+jOhrcQSDNBFjw0NDs=";
};
cargoDeps = pkgs.rustPlatform.importCargoLock {
lockFile = "${finalAttrs.src}/Cargo.lock";
};
postPatch = ''
substituteInPlace CMakeLists.txt \
--replace-warn "add_subdirectory(nod-ffi/examples)" ""
'';
nativeBuildInputs = [
pkgs.cmake
pkgs.ninja
pkgs.rustPlatform.cargoSetupHook
pkgs.cargo
pkgs.rustc
];
CARGO_NET_OFFLINE = "true";
cmakeFlags = [
"-DFETCHCONTENT_FULLY_DISCONNECTED=ON"
"-DFETCHCONTENT_SOURCE_DIR_CORROSION=${corrosion}"
"-DNOD_ENABLE_INSTALL=ON"
"-DBUILD_SHARED_LIBS=OFF"
];
doCheck = false;
});
nod =
if hasNodPrebuilt then
pkgs.fetchzip {
url = "https://github.com/encounter/nod/releases/download/${nodVersion}/libnod-${
nodPrebuiltInfo.${system}.triple
}.tar.gz";
hash = nodPrebuiltInfo.${system}.hash;
stripRoot = false;
}
else
nodFromSource;
fetchContentDirs = {
DAWN_PREBUILT = dawn;
NOD_PREBUILT = nod;
CXXOPTS = pkgs.cxxopts.src;
JSON = pkgs.nlohmann_json.src;
XXHASH = pkgs.xxHash.src;
ZSTD = pkgs.zstd.src;
FMT = pkgs.fetchzip {
url = "https://github.com/fmtlib/fmt/archive/refs/tags/11.1.4.tar.gz";
hash = "sha256-sUbxlYi/Aupaox3JjWFqXIjcaQa0LFjclQAOleT+FRA=";
};
TRACY = pkgs.fetchzip {
url = "https://github.com/wolfpld/tracy/archive/a64b9a20294d59421a2f57aeca3c6383d8c48169.tar.gz";
hash = "sha256-hbNGOsGeyGSvCJ2No8RkwOib1lX2on3vNZSzyVkZdXw=";
};
IMGUI = pkgs.fetchFromGitHub {
owner = "ocornut";
repo = "imgui";
rev = "v1.91.9b-docking";
hash = "sha256-mQOJ6jCN+7VopgZ61yzaCnt4R1QLrW7+47xxMhFRHLQ=";
};
SQLITE3 = pkgs.fetchzip {
url = "https://sqlite.org/2026/sqlite-amalgamation-3510300.zip";
hash = "sha256-pNMR8zxaaqfAzQ0AQBOXMct4usdjey1Q0Gnitg06UhM=";
};
RMLUI = pkgs.fetchzip {
url = "https://github.com/mikke89/RmlUi/archive/f9b8c9e2935d5df2c7dff2c190d3968e99b0c3dc.tar.gz";
hash = "sha256-g4O/JZUrrcseOz8o2QJRt+2CeuiLnVeuDJc906xvuIg=";
};
};
dusklight = pkgs.stdenv.mkDerivation {
pname = "dusklight";
version = versionSuffix;
src = ./.;
postUnpack = ''
chmod -R u+w "$sourceRoot"
rm -rf "$sourceRoot/extern/aurora"
mkdir -p "$sourceRoot/extern"
cp -r ${aurora} "$sourceRoot/extern/aurora"
chmod -R u+w "$sourceRoot/extern/aurora"
substituteInPlace "$sourceRoot/extern/aurora/CMakeLists.txt" \
--replace-warn "add_subdirectory(tests)" ""
'';
nativeBuildInputs = [
pkgs.cmake
pkgs.ninja
pkgs.pkg-config
pkgs.python3
pkgs.python3Packages.markupsafe
]
++ lib.optionals (!isDarwin) [ pkgs.autoPatchelfHook ];
buildInputs = [
pkgs.sdl3
pkgs.freetype
pkgs.zstd
pkgs.cxxopts
pkgs.nlohmann_json
pkgs.xxHash
pkgs.abseil-cpp
pkgs.zlib
pkgs.libpng
pkgs.libjpeg_turbo
pkgs.curl
pkgs.openssl
]
++ lib.optionals isDarwin [
pkgs.apple-sdk_15
pkgs.libiconv
]
++ lib.optionals (!isDarwin) [
pkgs.libGL
pkgs.libGLU
pkgs.libglvnd
pkgs.vulkan-loader
pkgs.libX11
pkgs.libxcb
pkgs.libXcursor
pkgs.libxi
pkgs.libxrandr
pkgs.libxscrnsaver
pkgs.libxtst
pkgs.libxinerama
pkgs.libxkbcommon
pkgs.wayland
pkgs.libdecor
pkgs.alsa-lib
pkgs.libpulseaudio
pkgs.pipewire
pkgs.dbus
pkgs.udev
pkgs.libusb1
pkgs.libunwind
pkgs.gtk3
];
cmakeBuildType = "RelWithDebInfo";
ninjaFlags = [ "dusklight" ];
cmakeFlags = [
"-DDUSK_VERSION_OVERRIDE=${versionSuffix}"
"-DFETCHCONTENT_FULLY_DISCONNECTED=ON"
"-DAURORA_DAWN_PROVIDER=package"
"-DAURORA_DAWN_LINKAGE=static"
"-DAURORA_NOD_PROVIDER=package"
"-DAURORA_NOD_LINKAGE=static"
"-DAURORA_SDL3_PROVIDER=system"
]
++ lib.mapAttrsToList (key: src: "-DFETCHCONTENT_SOURCE_DIR_${key}=${src}") fetchContentDirs;
installPhase =
if isDarwin then
''
runHook preInstall
mkdir -p "$out/Applications"
cp -r Dusklight.app "$out/Applications/Dusklight.app"
runHook postInstall
''
else
''
runHook preInstall
install -Dm755 dusklight "$out/bin/dusklight"
cp -r "$src/res" "$out/bin/res"
install -Dm644 "$src/platforms/freedesktop/dev.twilitrealm.dusk.desktop" \
"$out/share/applications/dev.twilitrealm.dusk.desktop"
for size in 16 32 48 64 128 256 512 1024; do
install -Dm644 "$src/platforms/freedesktop/''${size}x''${size}/apps/dev.twilitrealm.dusk.png" \
"$out/share/icons/hicolor/''${size}x''${size}/apps/dev.twilitrealm.dusk.png"
done
runHook postInstall
'';
dontStrip = true;
meta = {
description = "Dusklight native PC port of the Twilight Princess decompilation";
homepage = "https://github.com/zeldaret/tp";
platforms = supportedSystems;
mainProgram = "dusklight";
};
};
# Tooling common to every supported host (Linux and macOS).
commonDevTools = [
pkgs.cmake
pkgs.ninja
pkgs.pkg-config
pkgs.wayland
pkgs.git
pkgs.python3
pkgs.python3Packages.markupsafe
pkgs.rustc
pkgs.cargo
pkgs.sccache
];
buildInputs = [
pkgs.libGL
pkgs.libX11
pkgs.libXcursor
pkgs.libxi
pkgs.libxcb
pkgs.libxrandr
pkgs.libxscrnsaver
pkgs.libxtst
pkgs.libjpeg8
pkgs.libxkbcommon
pkgs.libglvnd
# Linux-only system libraries — mirrors the apt deps from .github/workflows/build.yml
# so the cmake presets resolve the same set of headers as CI.
linuxDevDeps = [
# Compilers / linkers
pkgs.clang
pkgs.lld
# C/C++ utilities
pkgs.curl
pkgs.openssl
pkgs.zlib
pkgs.libpng
pkgs.libjpeg_turbo
pkgs.freetype
pkgs.zstd
pkgs.fmt
pkgs.tracy
pkgs.cxxopts
pkgs.abseil-cpp
pkgs.sdl3
pkgs.fmt
pkgs.tracy
pkgs.freetype
pkgs.zstd
pkgs.ncurses
pkgs.libunwind
pkgs.libusb1
pkgs.fuse
# Wayland / display server
pkgs.wayland
pkgs.wayland-protocols
pkgs.libxkbcommon
pkgs.libdecor
# OpenGL / Vulkan
pkgs.libGL
pkgs.libGLU
pkgs.libglvnd
pkgs.vulkan-headers
pkgs.vulkan-loader
# X11
pkgs.libX11
pkgs.libxcb
pkgs.libXcursor
pkgs.libxi
pkgs.libxrandr
pkgs.libxscrnsaver
pkgs.libxtst
pkgs.libxinerama
# Audio
pkgs.alsa-lib
pkgs.libpulseaudio
pkgs.pipewire
# System integration
pkgs.dbus
pkgs.udev
pkgs.gtk3
];
# On macOS we deliberately avoid pulling Nix's cc-wrapper so CMake picks up
# Apple Clang and the Xcode SDK directly, matching the macOS CI workflow.
darwinShell = pkgs.mkShellNoCC {
packages = commonDevTools;
shellHook = ''
echo "Dusklight dev shell (macOS)"
echo "Requires Xcode Command Line Tools for Apple Clang and the macOS SDK."
echo "Configure: cmake --preset macos-default-relwithdebinfo"
echo "Build: cmake --build --preset macos-default-relwithdebinfo"
'';
};
linuxShell = pkgs.mkShell {
packages = commonDevTools ++ linuxDevDeps;
shellHook = ''
echo "Dusklight dev shell (Linux)"
echo "Configure: cmake --preset linux-default-relwithdebinfo"
echo " cmake --preset linux-clang-relwithdebinfo"
echo "Build: cmake --build --preset <preset>"
'';
};
in
{
packages = {
default = dusklight;
dusklight = dusklight;
}
// lib.optionalAttrs (!hasNodPrebuilt) { nod = nodFromSource; };
devShells.default = if isDarwin then darwinShell else linuxShell;
};
# Tooling common to every supported host (Linux and macOS).
commonDevTools = pkgs: [
pkgs.cmake
pkgs.ninja
pkgs.pkg-config
pkgs.git
pkgs.python3
pkgs.python3Packages.markupsafe
pkgs.rustc
pkgs.cargo
pkgs.sccache
];
# Linux-only system libraries — mirrors the apt deps from .github/workflows/build.yml
# so the cmake presets resolve the same set of headers as CI.
linuxDevDeps = pkgs: [
# Compilers / linkers
pkgs.clang
pkgs.lld
# C/C++ utilities
pkgs.curl
pkgs.openssl
pkgs.zlib
pkgs.libpng
pkgs.libjpeg_turbo
pkgs.freetype
pkgs.zstd
pkgs.fmt
pkgs.tracy
pkgs.cxxopts
pkgs.abseil-cpp
pkgs.sdl3
pkgs.ncurses
pkgs.libunwind
pkgs.libusb1
pkgs.fuse
# Wayland / display server
pkgs.wayland
pkgs.wayland-protocols
pkgs.libxkbcommon
pkgs.libdecor
# OpenGL / Vulkan
pkgs.libGL
pkgs.libGLU
pkgs.libglvnd
pkgs.vulkan-headers
pkgs.vulkan-loader
# X11
pkgs.libX11
pkgs.libxcb
pkgs.libXcursor
pkgs.libxi
pkgs.libxrandr
pkgs.libxscrnsaver
pkgs.libxtst
pkgs.libxinerama
# Audio
pkgs.alsa-lib
pkgs.libpulseaudio
pkgs.pipewire
# System integration
pkgs.dbus
pkgs.udev
pkgs.gtk3
];
# On macOS we deliberately avoid pulling Nix's cc-wrapper so CMake picks up
# Apple Clang and the Xcode SDK directly, matching the macOS CI workflow.
mkDarwinShell = pkgs:
pkgs.mkShellNoCC {
packages = commonDevTools pkgs;
shellHook = ''
echo "Dusklight dev shell (macOS)"
echo "Requires Xcode Command Line Tools for Apple Clang and the macOS SDK."
echo "Configure: cmake --preset macos-default-relwithdebinfo"
echo "Build: cmake --build --preset macos-default-relwithdebinfo"
'';
};
mkLinuxShell = pkgs:
pkgs.mkShell {
packages = (commonDevTools pkgs) ++ (linuxDevDeps pkgs);
shellHook = ''
echo "Dusklight dev shell (Linux)"
echo "Configure: cmake --preset linux-default-relwithdebinfo"
echo " cmake --preset linux-clang-relwithdebinfo"
echo "Build: cmake --build --preset <preset>"
'';
};
mkDevShell = pkgs:
if pkgs.stdenv.isDarwin
then mkDarwinShell pkgs
else mkLinuxShell pkgs;
in {
packages.x86_64-linux.default = mkDusklight (pkgsFor "x86_64-linux");
devShells = forAllSystems (system: {
default = mkDevShell (pkgsFor system);
});
systems = forAllSystems perSystem;
in
{
packages = lib.mapAttrs (_: s: s.packages) systems;
devShells = lib.mapAttrs (_: s: s.devShells) systems;
};
}
+1 -1
View File
@@ -98,7 +98,7 @@ T cLib_calcTimer(T* value) {
void MtxInit(void);
void MtxTrans(f32, f32, f32, u8);
void MtxScale(f32, f32, f32, u8);
void MtxPosition(cXyz*, cXyz*);
void MtxPosition(cXyz DUSK_CONST*, cXyz*);
void MtxPush(void);
void MtxPull(void);
+3 -3
View File
@@ -45,17 +45,17 @@ struct cXyz : Vec {
~cXyz() = default;
cXyz(const cXyz& vec) = default;
#endif
cXyz(f32 x, f32 y, f32 z) {
DUSK_CONSTEXPR cXyz(f32 x, f32 y, f32 z) {
this->x = x;
this->y = y;
this->z = z;
}
cXyz(const Vec& vec) {
DUSK_CONSTEXPR cXyz(const Vec& vec) {
this->x = vec.x;
this->y = vec.y;
this->z = vec.z;
}
cXyz& operator=(const Vec& vec) {
DUSK_CONSTEXPR cXyz& operator=(const Vec& vec) {
this->x = vec.x;
this->y = vec.y;
this->z = vec.z;
+1 -1
View File
@@ -14,7 +14,7 @@ struct Z2StatusMgr : public JASGlobalInstance<Z2StatusMgr> {
void menuIn();
void menuOut();
bool isMovieDemo();
void setDemoName(char* demoName);
void setDemoName(DUSK_CONST char* demoName);
void processTime();
bool checkDayTime();
void setEventBit(void* eventBit);
+2 -1
View File
@@ -4545,7 +4545,7 @@ public:
/* 0x03840 */ cXyz* mIronBallChainPos;
/* 0x03844 */ csXyz* mIronBallChainAngle;
/* 0x03848 */ cXyz* field_0x3848;
/* 0x0384C */ cXyz* field_0x384c;
/* 0x0384C */ cXyz DUSK_CONST* field_0x384c;
/* 0x03850 */ daAlink_procFunc mpProcFunc;
#if TARGET_PC
@@ -4564,6 +4564,7 @@ public:
cXyz mIBChainInterpCurrHandRoot;
bool mIBChainInterpPrevValid;
bool mIBChainInterpCurrValid;
bool mIsRollstab = false;
#endif
}; // Size: 0x385C
+1 -1
View File
@@ -203,7 +203,7 @@ private:
/* 0x0AAD */ bool mStayNo2Flag;
/* 0x0AAE */ u8 mBlendStatus;
/* 0x0AB0 */ f32 mBlend;
/* 0x0AB4 */ char* mArcName;
/* 0x0AB4 */ char DUSK_CONST* mArcName;
/* 0x0AB8 */ dBgS_AcchCir mAcchCir;
/* 0x0AF8 */ dBgS_ObjAcch mAcch;
/* 0x0CD0 */ dBgS_AcchCir mAcchCirArr[16];
+4 -4
View File
@@ -23,10 +23,10 @@ public:
/* 3 */ ACT_END,
};
char* getArcName();
char* getBmd();
char* getDzb();
char* getBmd2();
DUSK_CONST char* getArcName();
DUSK_CONST char* getBmd();
DUSK_CONST char* getDzb();
DUSK_CONST char* getBmd2();
J3DModelData* getDoorModelData();
int CreateHeap();
void calcMtx();
+2 -2
View File
@@ -33,8 +33,8 @@ public:
typedef int (daBdoorL1_c::*actionFunc)();
char* getDoorEventName();
char* getDoorEventName2();
DUSK_CONST char* getDoorEventName();
DUSK_CONST char* getDoorEventName2();
const char* getArcName();
const char* getAnmArcName();
int getDoorType();
+5 -5
View File
@@ -14,11 +14,11 @@
*/
class daDbDoor00_c : public fopAc_ac_c {
public:
char* getAlwaysArcName();
char* getDzb();
char* getDummyBmdName();
char* getBmdArcName();
char* getBmdName();
DUSK_CONST char* getAlwaysArcName();
DUSK_CONST char* getDzb();
DUSK_CONST char* getDummyBmdName();
DUSK_CONST char* getBmdArcName();
DUSK_CONST char* getBmdName();
J3DModelData* getDoorModelData();
int CreateHeap();
void calcMtx();
+5 -5
View File
@@ -29,11 +29,11 @@ public:
typedef int (daKnob20_c::*actionFunc)();
char* getAlwaysArcName();
char* getEvArcName();
char* getDzb();
char* getDummyBmd();
char* getBmd();
DUSK_CONST char* getAlwaysArcName();
DUSK_CONST char* getEvArcName();
DUSK_CONST char* getDzb();
DUSK_CONST char* getDummyBmd();
DUSK_CONST char* getBmd();
J3DModelData* getDoorModelData();
int CreateHeap();
void calcMtx();
+8 -8
View File
@@ -54,15 +54,15 @@ public:
typedef int (daMBdoorL1_c::*actionFunc)();
char* getAnmArcName();
char* getArcName();
char* getAlwaysArcName();
DUSK_CONST char* getAnmArcName();
DUSK_CONST char* getArcName();
DUSK_CONST char* getAlwaysArcName();
int getDoorType();
char* getOpenAnm();
char* getCloseAnm();
char* getBmd();
char* getBtk();
char* getDzb();
DUSK_CONST char* getOpenAnm();
DUSK_CONST char* getCloseAnm();
DUSK_CONST char* getBmd();
DUSK_CONST char* getBtk();
DUSK_CONST char* getDzb();
J3DModelData* getDoorModelData();
int CreateHeap();
void calcMtx();
+6 -6
View File
@@ -45,12 +45,12 @@ public:
ACTION_DEMO,
};
char* getStopBmdName();
char DUSK_CONST* getStopBmdName();
J3DModelData* getStopModelData();
char* getAlwaysArcName();
char* getArcName();
char* getBmdName();
char* getBtk();
char DUSK_CONST* getAlwaysArcName();
char DUSK_CONST* getArcName();
char DUSK_CONST* getBmdName();
char DUSK_CONST* getBtk();
J3DModelData* getModelData();
f32 getSize2X();
int CreateHeap();
@@ -115,7 +115,7 @@ public:
int chkStopOpen();
int chkMakeKey();
virtual char* getDzbName();
virtual char DUSK_CONST* getDzbName();
virtual int getDemoAction();
void onFlag(u16 flag) { field_0x68e |= flag; }
+1 -1
View File
@@ -32,7 +32,7 @@ public:
/* 0x5B4 */ J3DModel* mpModel;
/* 0x5B8 */ u8 mArrowType;
/* 0x5B9 */ u8 mFlags;
/* 0x5BC */ char* mResName;
/* 0x5BC */ char DUSK_CONST* mResName;
/* 0x5C0 */ s16 field_0x5c0;
/* 0x5C2 */ s16 mAction;
/* 0x5C4 */ s16 mMode;
+1 -1
View File
@@ -60,7 +60,7 @@ public:
/* 0x5B5 */ u8 mDistanceParam;
/* 0x5B6 */ u8 mType;
/* 0x5B7 */ u8 mPathIndex;
/* 0x5B8 */ char* mArcName;
/* 0x5B8 */ DUSK_CONST char* mArcName;
/* 0x5BC */ u8 field_0x5bc;
/* 0x5BD */ s8 mPathPoint;
/* 0x5BE */ s8 mPathStep;
+1 -1
View File
@@ -38,7 +38,7 @@ public:
/* 0x05CC */ s16 target_ya;
/* 0x05D0 */ mDoExt_McaMorfSO* anm_p;
/* 0x05D4 */ Z2CreatureEnemy sound;
/* 0x0678 */ char* resName;
/* 0x0678 */ DUSK_CONST char* resName;
/* 0x067C */ int anm;
/* 0x0680 */ int field_0x680;
/* 0x0684 */ dJntCol_c mJntCol;
+1 -1
View File
@@ -36,7 +36,7 @@ public:
/* 0x05C8 */ s16 mTargetAngleY;
/* 0x05CC */ mDoExt_McaMorfSO* mpMorf;
/* 0x05D0 */ Z2CreatureEnemy mSound;
/* 0x0674 */ char* mpArcName;
/* 0x0674 */ char DUSK_CONST* mpArcName;
/* 0x0678 */ int mAnm;
/* 0x067C */ u8 field_0x67c[0x680 - 0x67c];
/* 0x0680 */ dJntCol_c mJntCol;
+1 -1
View File
@@ -63,7 +63,7 @@ private:
/* 0x6D4 */ f32 field_0x6d4;
/* 0x6D8 */ s16 mFootJoints[4];
/* 0x6E0 */ s16 field_0x6e0;
/* 0x6E4 */ char* mpResName;
/* 0x6E4 */ char DUSK_CONST* mpResName;
/* 0x6E8 */ u16 mDamageCooldownTimer;
/* 0x6EA */ u8 mGenericTimer;
/* 0x6EC */ int mAttackTimer;
+1 -1
View File
@@ -99,7 +99,7 @@ public:
/* 0x0000 */ fopEn_enemy_c enemy; ///< @brief Base enemy class instance.
/* 0x05AC */ request_of_phase_process_class phase; ///< @brief Phase process request handler.
/* 0x05B4 */ s16 ride_mode; ///< @brief Current sub-action mode within the run action.
/* 0x05B8 */ char* resName; ///< @brief Resource name for loading models/animations.
/* 0x05B8 */ char DUSK_CONST* resName; ///< @brief Resource name for loading models/animations.
/* 0x05BC */ u8 arg0; ///< @brief Creation parameter 1.
/* 0x05BD */ u8 arg1; ///< @brief Creation parameter 2.
/* 0x05BE */ u8 field_0x5be;
+2 -2
View File
@@ -213,8 +213,8 @@ private:
/* 0x750 */ int field_0x750;
/* 0x754 */ int field_0x754;
/* 0x758 */ int field_0x758;
/* 0x75C */ char* mArcName;
/* 0x760 */ char* mDemoName;
/* 0x75C */ DUSK_CONST char* mArcName;
/* 0x760 */ DUSK_CONST char* mDemoName;
/* 0x764 */ u32 mShadowId;
/* 0x768 */ dPath* mpPath1;
/* 0x76C */ dPath* mpPath2;
+1 -1
View File
@@ -49,7 +49,7 @@ public:
/* 0x5F4 */ s16 mYawToPlayer;
/* 0x5F6 */ s16 field_0x5f6;
/* 0x5F8 */ s16 field_0x5f8;
/* 0x5FC */ char* mResName;
/* 0x5FC */ DUSK_CONST char* mResName;
/* 0x600 */ mDoExt_McaMorf* mpMorf;
/* 0x604 */ J3DAnmTransform* mAnmTransform;
/* 0x608 */ u32 mShadowId;
+1 -1
View File
@@ -90,7 +90,7 @@ public:
/* 0x0000 */ fopAc_ac_c actor;
/* 0x0568 */ request_of_phase_process_class phase;
/* 0x0570 */ char* arcname;
/* 0x0570 */ DUSK_CONST char* arcname;
/* 0x0574 */ u8 arg0;
/* 0x0575 */ u8 arg1;
/* 0x0576 */ u8 arg2;
+2
View File
@@ -5,6 +5,7 @@
#include <thp.h>
#else
#include <atomic>
#include <chrono>
#endif
#include "f_op/f_op_actor.h"
#include "d/d_drawlist.h"
@@ -125,6 +126,7 @@ struct daMP_THPPlayer {
/* 0x0D4 */ s32 curCount;
#if TARGET_PC
/* 0x0D8 */ std::atomic<s32> videoDecodeCount;
std::chrono::steady_clock::time_point thpPlaybackClock;
#else
/* 0x0D8 */ s32 videoDecodeCount;
#endif
+2 -2
View File
@@ -103,8 +103,8 @@ public:
void animePlay();
int setMcaMorfAnm(J3DAnmTransformKey*, f32, f32, int, int, int);
void setBtpAnm(J3DAnmTexPattern*, J3DModelData*, f32, int);
J3DAnmTransformKey* getTrnsfrmKeyAnm(char*);
J3DAnmTexPattern* getTexPtrnAnm(char*);
J3DAnmTransformKey* getTrnsfrmKeyAnm(DUSK_CONST char*);
J3DAnmTexPattern* getTexPtrnAnm(DUSK_CONST char*);
int checkEndAnm(J3DFrameCtrl*);
int checkEndAnm(f32);
u8 getItemNumMax();
+4 -4
View File
@@ -519,7 +519,7 @@ public:
/* 0x568 */ daNpcT_faceMotionAnmData_c const* mpFaceMotionAnmData;
/* 0x56C */ daNpcT_motionAnmData_c const* mpMotionAnmData;
/* 0x570 */ daNpcT_evtData_c const* mpEvtData;
/* 0x574 */ char** mpArcNames;
/* 0x574 */ DUSK_CONST char* DUSK_CONST* mpArcNames;
/* 0x578 */ mDoExt_McaMorfSO* mpMorf[2];
/* 0x580 */ Z2Creature mSound;
/* 0x610 */ mDoExt_bckAnm mBckAnm;
@@ -627,7 +627,7 @@ public:
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_faceMotionSequenceData,
int i_faceMotionStepNum,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_motionSequenceData,
int i_motionStepNum, daNpcT_evtData_c const* i_evtData, char** i_arcNames)
int i_motionStepNum, daNpcT_evtData_c const* i_evtData, DUSK_CONST char* DUSK_CONST* i_arcNames)
:
mpFaceMotionAnmData(i_faceMotionAnmData),
mpMotionAnmData(i_motionAnmData),
@@ -654,8 +654,8 @@ public:
int setBtkAnm(J3DAnmTextureSRTKey*, J3DModelData*, f32, int);
int setBrkAnm(J3DAnmTevRegKey*, J3DModelData*, f32, int);
int setBpkAnm(J3DAnmColor*, J3DModelData*, f32, int);
int loadRes(s8 const*, char const**);
void deleteRes(s8 const*, char const**);
int loadRes(s8 const*, char const* DUSK_CONST*);
void deleteRes(s8 const*, char const* DUSK_CONST*);
int execute();
int draw(BOOL, BOOL, f32, GXColorS10*, f32, BOOL, BOOL, BOOL);
void setEnvTevColor();
+4 -4
View File
@@ -86,12 +86,12 @@ public:
class daBaseNpc_c : public fopAc_ac_c {
public:
daBaseNpc_c();
J3DAnmTransform* getTrnsfrmKeyAnmP(char*, int);
J3DAnmTransform* getTrnsfrmKeyAnmP(char DUSK_CONST*, int);
int setMcaMorfAnm(J3DAnmTransformKey*, f32, f32, int, int, int);
int setBckAnm(J3DAnmTransform*, f32, int, int, int, bool);
J3DAnmTransform* getTexPtrnAnmP(char*, int);
J3DAnmTransform* getTexPtrnAnmP(char DUSK_CONST*, int);
int setBtpAnm(J3DAnmTexPattern*, J3DModelData*, f32, int);
void orderEvent(int, char*);
void orderEvent(int, char DUSK_CONST*);
void setEnvTevColor();
void setRoomNo();
int checkEndAnm(f32);
@@ -128,7 +128,7 @@ public:
/* 0x808 */ mDoExt_btpAnm mBtp;
/* 0x820 */ mDoExt_btkAnm mBtk;
/* 0x838 */ s16 field_0x838;
/* 0x83C */ u16* field_0x83c;
/* 0x83C */ u16 DUSK_CONST* field_0x83c;
/* 0x840 */ u16 field_0x840;
/* 0x842 */ u16 field_0x842;
/* 0x844 */ u8 field_0x844;
+6 -6
View File
@@ -311,10 +311,10 @@ public:
static void* srchActor(void*, void*);
void initialize();
J3DAnmTransformKey* getTrnsfrmKeyAnmP(char*, int);
J3DAnmTexPattern* getTexPtrnAnmP(char*, int);
J3DAnmTextureSRTKey* getTexSRTKeyAnmP(char*, int);
J3DAnmTevRegKey* getTevRegKeyAnmP(char*, int);
J3DAnmTransformKey* getTrnsfrmKeyAnmP(DUSK_CONST char*, int);
J3DAnmTexPattern* getTexPtrnAnmP(DUSK_CONST char*, int);
J3DAnmTextureSRTKey* getTexSRTKeyAnmP(DUSK_CONST char*, int);
J3DAnmTevRegKey* getTevRegKeyAnmP(DUSK_CONST char*, int);
BOOL setMcaMorfAnm(J3DAnmTransformKey* i_anm, f32 i_rate, f32 i_morf, int i_attr,
int i_start, int i_end);
BOOL setBckAnm(J3DAnmTransform* i_bck, f32 i_rate, int i_attr, int i_start,
@@ -336,8 +336,8 @@ public:
BOOL hitChk2(dCcD_Cyl*, BOOL, BOOL);
void setDamage(int, int, int);
int ctrlMsgAnm(int&, int&, fopAc_ac_c*, BOOL);
void orderEvent(int, char*, u16, u16, u8, u16);
void changeEvent(char*, char*, u16, u16);
void orderEvent(int, DUSK_CONST char*, u16, u16, u8, u16);
void changeEvent(DUSK_CONST char*, DUSK_CONST char*, u16, u16);
BOOL chkActorInSight(fopAc_ac_c*, f32);
BOOL chkActorInArea(fopAc_ac_c*, cXyz, cXyz, s16);
BOOL chkActorInAttnArea(fopAc_ac_c*, fopAc_ac_c*, int);
+3 -3
View File
@@ -149,7 +149,7 @@ public:
int i_faceMotionStepNum,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_motionSequenceData,
int i_motionStepNum,
daNpcT_evtData_c const* i_evtData, char** i_arcNames)
daNpcT_evtData_c const* i_evtData, char DUSK_CONST* DUSK_CONST* i_arcNames)
: daNpcT_c(i_faceMotionAnmData, i_motionAnmData, i_faceMotionSequenceData,
i_faceMotionStepNum, i_motionSequenceData, i_motionStepNum, i_evtData,
i_arcNames) {
@@ -171,8 +171,8 @@ public:
u8 getPathID() { return (fopAcM_GetParam(this) & 0xFF00) >> 8; }
void setLastIn() { mLastGoatIn = true; }
static char* mCutNameList[7];
static cutFunc mCutList[7];
static char DUSK_CONST* DUSK_CONST mCutNameList[7];
static cutFunc DUSK_CONST mCutList[7];
private:
/* 0xE40 */ NPC_ARU_HIO_CLASS* mpHIO;
+1 -1
View File
@@ -135,7 +135,7 @@ public:
inline bool step(s16, int, f32);
inline void playExpression();
static EventFn mEvtSeqList[2];
static EventFn DUSK_CONST mEvtSeqList[2];
private:
/* 0xB48 */ Z2Creature mCreatureSound;
+3 -3
View File
@@ -90,7 +90,7 @@ public:
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_faceMotionSequenceData,
int i_faceMotionStepNum,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_motionSequenceData, int i_motionStepNum,
daNpcT_evtData_c const* i_evtData, char** i_arcNames)
daNpcT_evtData_c const* i_evtData, char DUSK_CONST* DUSK_CONST* i_arcNames)
: dShopSystem_c(i_faceMotionAnmData, i_motionAnmData, i_faceMotionSequenceData,
i_faceMotionStepNum, i_motionSequenceData, i_motionStepNum, i_evtData,
i_arcNames) {
@@ -117,8 +117,8 @@ public:
return rv;
}
static char* mCutNameList[4];
static cutFunc mCutList[4];
static char DUSK_CONST* DUSK_CONST mCutNameList[4];
static cutFunc DUSK_CONST mCutList[4];
/* 0x0F7C */ mDoExt_McaMorfSO* mpScoopMorf;
/* 0x0F80 */ NPC_BANS_HIO_CLASS* mHIO;
+3 -3
View File
@@ -112,7 +112,7 @@ public:
int i_faceMotionStepNum,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_motionSequenceData,
int i_motionStepNum,
daNpcT_evtData_c const* i_evtData, char** i_arcNames)
daNpcT_evtData_c const* i_evtData, char DUSK_CONST* DUSK_CONST* i_arcNames)
: daNpcT_c(i_faceMotionAnmData, i_motionAnmData, i_faceMotionSequenceData,
i_faceMotionStepNum, i_motionSequenceData, i_motionStepNum, i_evtData,
i_arcNames) {
@@ -140,8 +140,8 @@ public:
u8 getPathID() { return (fopAcM_GetParam(this) & 0xff00) >> 8; }
u8 getBitSW() { return (fopAcM_GetParam(this) & 0xff0000) >> 16; }
static char* mCutNameList[15];
static cutFunc mCutList[15];
static char DUSK_CONST* DUSK_CONST mCutNameList[15];
static cutFunc DUSK_CONST mCutList[15];
private:
/* 0x0E40 */ mDoExt_McaMorfSO* mpCupModelMorf;
+1 -1
View File
@@ -124,7 +124,7 @@ public:
return var_r30;
}
static EventFn mEvtSeqList[];
static EventFn DUSK_CONST mEvtSeqList[];
/* 0xB48 */ Z2Creature mSound;
/* 0xBD8 */ u8 field_0xBD8[0xBDC - 0xBD8];
+3 -3
View File
@@ -89,7 +89,7 @@ public:
daNpc_Bou_c(daNpcT_faceMotionAnmData_c const* param_1, daNpcT_motionAnmData_c const* param_2,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_3, int param_4,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_5, int param_6,
daNpcT_evtData_c const* param_7, char** param_8)
daNpcT_evtData_c const* param_7, char DUSK_CONST* DUSK_CONST* param_8)
:
daNpcT_c(param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8)
{}
@@ -114,8 +114,8 @@ public:
virtual int drawDbgInfo();
virtual void changeAnm(int*, int*);
static char* mCutNameList[9];
static cutFunc mCutList[9];
static char DUSK_CONST* DUSK_CONST mCutNameList[9];
static cutFunc DUSK_CONST mCutList[9];
int getFlowNodeNo() {
u16 nodeNo = home.angle.x;
+1 -1
View File
@@ -102,7 +102,7 @@ public:
void setFear() { mFear = true; }
void setTalkFlag() { mTalkFlag = true; }
static eventFunc mEvtSeqList[1];
static eventFunc DUSK_CONST mEvtSeqList[1];
private:
/* 0xB48 */ Z2CreatureCitizen mSound;
+3 -3
View File
@@ -100,7 +100,7 @@ public:
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_faceMotionSequenceData,
int i_faceMotionStepNum,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_motionSequenceData,
int i_motionStepNum, daNpcT_evtData_c const* i_evtData, char** i_arcNames)
int i_motionStepNum, daNpcT_evtData_c const* i_evtData, char DUSK_CONST* DUSK_CONST* i_arcNames)
: dShopSystem_c(i_faceMotionAnmData, i_motionAnmData, i_faceMotionSequenceData,
i_faceMotionStepNum, i_motionSequenceData, i_motionStepNum, i_evtData,
i_arcNames) {}
@@ -124,8 +124,8 @@ public:
u8 getMaxNumItem() { return (fopAcM_GetParam(this) & 0xF000000) >> 24; }
static char* mCutNameList[1];
static cutFunc mCutList[1];
static char DUSK_CONST* DUSK_CONST mCutNameList[1];
static cutFunc DUSK_CONST mCutList[1];
private:
/* 0x0F7C */ NPC_CLERKA_HIO_CLASS* mpHIO;
+3 -3
View File
@@ -113,7 +113,7 @@ public:
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_faceMotionSequenceData,
int i_faceMotionStepNum,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_motionSequenceData,
int i_motionStepNum, daNpcT_evtData_c const* i_evtData, char** i_arcNames)
int i_motionStepNum, daNpcT_evtData_c const* i_evtData, char DUSK_CONST* DUSK_CONST* i_arcNames)
: dShopSystem_c(i_faceMotionAnmData, i_motionAnmData, i_faceMotionSequenceData,
i_faceMotionStepNum, i_motionSequenceData, i_motionStepNum, i_evtData,
i_arcNames) {}
@@ -137,8 +137,8 @@ public:
u8 getMaxNumItem() { return (fopAcM_GetParam(this) & 0xF000000) >> 24; }
static char* mCutNameList[1];
static cutFunc mCutList[1];
static char DUSK_CONST* DUSK_CONST mCutNameList[1];
static cutFunc DUSK_CONST mCutList[1];
private:
/* 0x0F7C */ mDoExt_bpkAnm mBpkAnm2;
+3 -3
View File
@@ -91,7 +91,7 @@ public:
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_faceMotionSequenceData,
int i_faceMotionStepNum,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_motionSequenceData, int i_motionStepNum,
daNpcT_evtData_c const* i_evtData, char** i_arcNames)
daNpcT_evtData_c const* i_evtData, char DUSK_CONST* DUSK_CONST* i_arcNames)
: dShopSystem_c(i_faceMotionAnmData, i_motionAnmData, i_faceMotionSequenceData,
i_faceMotionStepNum, i_motionSequenceData, i_motionStepNum, i_evtData,
i_arcNames) {}
@@ -125,8 +125,8 @@ public:
}
}
static char* mCutNameList[1];
static cutFunc mCutList[1];
static char DUSK_CONST* DUSK_CONST mCutNameList[1];
static cutFunc DUSK_CONST mCutList[1];
private:
/* 0x0F7C */ NPC_CLERKT_HIO_CLASS* mpHIO;
+3 -3
View File
@@ -66,7 +66,7 @@ public:
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_faceMotionSequenceData,
int i_faceMotionStepNum,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_motionSequenceData, int i_motionStepNum,
daNpcT_evtData_c const* i_evtData, char** i_arcNames)
daNpcT_evtData_c const* i_evtData, char DUSK_CONST* DUSK_CONST* i_arcNames)
: daNpcT_c(i_faceMotionAnmData, i_motionAnmData, i_faceMotionSequenceData,
i_faceMotionStepNum, i_motionSequenceData, i_motionStepNum, i_evtData,
i_arcNames)
@@ -133,8 +133,8 @@ public:
return (fopAcM_GetParam(this) & 0xFF00) >> 8;
}
static char* mCutNameList[1];
static cutFunc mCutList[1];
static char DUSK_CONST* DUSK_CONST mCutNameList[1];
static cutFunc DUSK_CONST mCutList[1];
private:
/* 0xE40 */ NPC_DOC_HIO_CLASS* mpHIO;
+1 -1
View File
@@ -78,7 +78,7 @@ public:
inline int getTimeHour();
inline bool isDummyTalk();
static EventFn mEvtSeqList[1];
static EventFn DUSK_CONST mEvtSeqList[1];
private:
/* 0xB48 */ Z2CreatureCitizen mSound;
+3 -3
View File
@@ -256,7 +256,7 @@ public:
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_faceMotionSequenceData,
int i_faceMotionStepNum,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_motionSequenceData, int i_motionStepNum,
daNpcT_evtData_c const* i_evtData, char** i_arcNames)
daNpcT_evtData_c const* i_evtData, char DUSK_CONST* DUSK_CONST* i_arcNames)
: daNpcT_c(i_faceMotionAnmData, i_motionAnmData, i_faceMotionSequenceData,
i_faceMotionStepNum, i_motionSequenceData, i_motionStepNum, i_evtData,
i_arcNames) {
@@ -294,8 +294,8 @@ public:
u8 getSceneNo1() { return (fopAcM_GetParam(this) >> 8) & 0xFF; }
u8 getSceneNo2() { return (fopAcM_GetParam(this) >> 16) & 0xFF; }
static char* mCutNameList[18];
static cutFunc mCutList[18];
static char DUSK_CONST* DUSK_CONST mCutNameList[18];
static cutFunc DUSK_CONST mCutList[18];
private:
/* 0x0E40 */ NPC_FAIRY_HIO_CLASS* mHIO;
/* 0x0E44 */ dCcD_Cyl mCyl;
+3 -3
View File
@@ -71,7 +71,7 @@ public:
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_3,
int param_4,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_5,
int param_6, daNpcT_evtData_c const* param_7, char** param_8)
int param_6, daNpcT_evtData_c const* param_7, DUSK_CONST char* DUSK_CONST* param_8)
: daNpcT_c(param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8) {}
u8 getType() { return fopAcM_GetParam(this) & 0xFF; }
@@ -90,8 +90,8 @@ public:
int getSeneNo() { return (fopAcM_GetParam(this) >> 8) & 0xFF; }
static char* mCutNameList[1];
static cutFunc mCutList[1];
static DUSK_CONST char* mCutNameList[1];
static DUSK_CONST cutFunc mCutList[1];
private:
/* 0xE40 */ NPC_FAIRY_SEIREI_HIO_CLASS* mpHIO;
+3 -3
View File
@@ -83,7 +83,7 @@ public:
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_faceMotionSequenceData,
int i_faceMotionStepNum,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_motionSequenceData, int i_motionStepNum,
daNpcT_evtData_c const* i_evtData, char** i_arcNames)
daNpcT_evtData_c const* i_evtData, char DUSK_CONST* DUSK_CONST* i_arcNames)
: daNpcT_c(i_faceMotionAnmData, i_motionAnmData, i_faceMotionSequenceData,
i_faceMotionStepNum, i_motionSequenceData, i_motionStepNum, i_evtData,
i_arcNames) {
@@ -96,8 +96,8 @@ public:
s32 getNeckJointNo() { return 3; }
s32 getBackboneJointNo() { return 1; }
static char* mCutNameList[1];
static cutFunc mCutList[1];
static char DUSK_CONST* DUSK_CONST mCutNameList[1];
static cutFunc DUSK_CONST mCutList[1];
private:
/* 0xE40 */ NPC_GND_HIO_CLASS* mpHIO;
+2 -2
View File
@@ -138,9 +138,9 @@ public:
void addCarryNum() { field_0x1692++; }
u8 getPathNoFromParam() { return home.angle.z; }
void setGateWalk() { field_0x14D0 = 1; }
static char* mEvtCutNameList[12];
static char DUSK_CONST* DUSK_CONST mEvtCutNameList[12];
typedef BOOL (daNpc_grA_c::*cut_type)(int);
static cut_type mEvtCutList[];
static cut_type DUSK_CONST mEvtCutList[];
private:
typedef BOOL (daNpc_grA_c::*daNpc_grA_c_Action)(void*);
+2 -2
View File
@@ -89,8 +89,8 @@ public:
void setPrtcl();
void adjustShapeAngle() {}
static char* mEvtCutNameList;
static EventFn mEvtCutList[1];
static char DUSK_CONST* DUSK_CONST mEvtCutNameList;
static EventFn DUSK_CONST mEvtCutList[1];
private:
/* 0xB48 */ Z2Creature mSound;
+2 -2
View File
@@ -81,8 +81,8 @@ public:
BOOL ECut_nodToGrz(int);
void adjustShapeAngle() {}
static char* mEvtCutNameList[2];
static cutFunc mEvtCutList[2];
static char DUSK_CONST* DUSK_CONST mEvtCutNameList[2];
static cutFunc DUSK_CONST mEvtCutList[2];
private:
/* 0xB48 */ Z2Creature mSound;
+3 -3
View File
@@ -120,7 +120,7 @@ public:
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_faceMotionSequenceData,
int i_faceMotionStepNum,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_motionSequenceData, int i_motionStepNum,
daNpcT_evtData_c const* i_evtData, char** i_arcNames)
daNpcT_evtData_c const* i_evtData, char DUSK_CONST* DUSK_CONST* i_arcNames)
: dShopSystem_c(i_faceMotionAnmData, i_motionAnmData, i_faceMotionSequenceData,
i_faceMotionStepNum, i_motionSequenceData, i_motionStepNum, i_evtData,
i_arcNames) {}
@@ -131,8 +131,8 @@ public:
BOOL checkChangeJoint(int param_0) { return param_0 == JNT_HEAD; }
BOOL checkRemoveJoint(int param_0) { return param_0 == JNT_MOUTH; }
static char* mCutNameList[2];
static cutFunc mCutList[2];
static char DUSK_CONST* DUSK_CONST mCutNameList[2];
static cutFunc DUSK_CONST mCutList[2];
private:
/* 0x0F7C */ NPC_GRM_HIO_CLASS* mpHIO;
+3 -3
View File
@@ -113,7 +113,7 @@ public:
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_motionSequenceData,
int i_motionStepNum,
daNpcT_evtData_c const* i_evtData,
char** i_arcNames)
char DUSK_CONST* DUSK_CONST* i_arcNames)
: dShopSystem_c(i_faceMotionAnmData, i_motionAnmData, i_faceMotionSequenceData,
i_faceMotionStepNum, i_motionSequenceData, i_motionStepNum, i_evtData,
i_arcNames) {}
@@ -124,8 +124,8 @@ public:
BOOL checkRemoveJoint(int param_1) { return param_1 == JNT_MOUTH; }
u16 getEyeballMaterialNo() { return 1; };
static char* mCutNameList;
static cutFunc mCutList[1];
static char DUSK_CONST* DUSK_CONST mCutNameList;
static cutFunc DUSK_CONST mCutList[1];
private:
/* 0x0F7C */ NPC_GRMC_HIO_CLASS* mpHIO;
+2 -2
View File
@@ -85,8 +85,8 @@ public:
int test(void*);
void adjustShapeAngle() {}
static char* mEvtCutNameList[3];
static cutFunc mEvtCutList[3];
static char DUSK_CONST* DUSK_CONST mEvtCutNameList[3];
static cutFunc DUSK_CONST mEvtCutList[3];
private:
/* 0xB48 */ Z2Creature mSound;
+2 -2
View File
@@ -83,8 +83,8 @@ public:
int test(void*);
void adjustShapeAngle() {}
static char* mEvtCutNameList;
static cutFunc mEvtCutList[1];
static char DUSK_CONST* DUSK_CONST mEvtCutNameList;
static cutFunc DUSK_CONST mEvtCutList[1];
private:
/* 0xB48 */ Z2Creature mSound;
+2 -2
View File
@@ -84,8 +84,8 @@ public:
void setPrtcl();
void adjustShapeAngle() {}
static char* mEvtCutNameList[2];
static cutFunc mEvtCutList[2];
static char DUSK_CONST* DUSK_CONST mEvtCutNameList[2];
static cutFunc DUSK_CONST mEvtCutList[2];
private:
/* 0xB48 */ Z2Creature mSound;
+2 -2
View File
@@ -116,8 +116,8 @@ public:
u8 getPathNoFromParam() { return (fopAcM_GetParam(this) & 0xFF00) >> 8; }
static char* mEvtCutNameList[7];
static cutFunc mEvtCutList[7];
static char DUSK_CONST* DUSK_CONST mEvtCutNameList[7];
static cutFunc DUSK_CONST mEvtCutList[7];
private:
/* 0x0B48 */ Z2Creature mSound;
+2 -2
View File
@@ -104,8 +104,8 @@ public:
void setHowlingEndFlag() { field_0xe1c = 2; }
void setHowlingFlag() { field_0xe1c = 1; }
static char* mEvtCutNameList[5];
static cutFunc mEvtCutList[5];
static char DUSK_CONST* DUSK_CONST mEvtCutNameList[5];
static cutFunc DUSK_CONST mEvtCutList[5];
private:
/* 0xB48 */ Z2Creature mSound;
+4 -4
View File
@@ -194,7 +194,7 @@ public:
daNpc_Hanjo_c(daNpcT_faceMotionAnmData_c const* param_1, daNpcT_motionAnmData_c const* param_2,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_3, int param_4,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_5, int param_6,
daNpcT_evtData_c const* param_7, char** param_8) :
daNpcT_evtData_c const* param_7, char DUSK_CONST* DUSK_CONST* param_8) :
daNpcT_c(param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8)
{}
u16 getEyeballMaterialNo() { return 2; }
@@ -218,9 +218,9 @@ public:
u8 getPathID() { return (fopAcM_GetParam(this) & 0xff00) >> 8; }
static dCcD_SrcGObjInf const mStoneCcDObjInfo;
static char* mCutNameList[6];
static cutFunc mCutList[6];
static dCcD_SrcSph mStoneCcDSph;
static char DUSK_CONST* DUSK_CONST mCutNameList[6];
static cutFunc DUSK_CONST mCutList[6];
static dCcD_SrcSph DUSK_CONST mStoneCcDSph;
private:
/* 0x0E40 */ NPC_HANJO_HIO_CLASS* mpHIO;
/* 0x0E44 */ J3DModel* mModel1;
+3 -3
View File
@@ -91,7 +91,7 @@ public:
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_faceMotionSequenceData,
int i_faceMotionStepNum,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_motionSequenceData, int i_motionStepNum,
daNpcT_evtData_c const* i_evtData, char** i_arcNames)
daNpcT_evtData_c const* i_evtData, char DUSK_CONST* DUSK_CONST* i_arcNames)
: daNpcT_c(i_faceMotionAnmData, i_motionAnmData, i_faceMotionSequenceData,
i_faceMotionStepNum, i_motionSequenceData, i_motionStepNum, i_evtData,
i_arcNames)
@@ -125,8 +125,8 @@ public:
bool getGameStartFlag() { return mGameStartFlag; }
void setPotBreakFlag() { mPotBreakFlag = true; }
static char* mCutNameList[8];
static cutFunc mCutList[];
static char DUSK_CONST* DUSK_CONST mCutNameList[8];
static cutFunc DUSK_CONST mCutList[];
private:
/* 0xE40 */ NPC_HOZ_HIO_CLASS* mpHIO;
+3 -3
View File
@@ -138,7 +138,7 @@ public:
daNpc_Jagar_c(daNpcT_faceMotionAnmData_c const* param_1, daNpcT_motionAnmData_c const* param_2,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_3, int param_4,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_5, int param_6,
daNpcT_evtData_c const* param_7, char** param_8) :
daNpcT_evtData_c const* param_7, char DUSK_CONST* DUSK_CONST* param_8) :
daNpcT_c(param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8)
{}
u16 getEyeballMaterialNo() { return MAT_JAGA_EYEBALL; }
@@ -223,8 +223,8 @@ public:
return 0;
}
static char* mCutNameList[7];
static cutFunc mCutList[7];
static char DUSK_CONST* DUSK_CONST mCutNameList[7];
static cutFunc DUSK_CONST mCutList[7];
private:
/* 0x0E40 */ NPC_JAGAR_HIO_CLASS* mpHIO;
/* 0x0E44 */ dCcD_Cyl mCyl1;
+3 -3
View File
@@ -76,7 +76,7 @@ public:
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_faceMotionSequenceData,
int i_faceMotionStepNum,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_motionSequenceData, int i_motionStepNum,
daNpcT_evtData_c const* i_evtData, char** i_arcNames)
daNpcT_evtData_c const* i_evtData, char DUSK_CONST* DUSK_CONST* i_arcNames)
: daNpcT_c(i_faceMotionAnmData, i_motionAnmData, i_faceMotionSequenceData,
i_faceMotionStepNum, i_motionSequenceData, i_motionStepNum, i_evtData,
i_arcNames)
@@ -113,8 +113,8 @@ public:
u8 getBitSW() { return (fopAcM_GetParam(this) & 0xFF00) >> 8; }
u8 getBitSW2() { return (fopAcM_GetParam(this) & 0xFF0000) >> 16; }
static char* mCutNameList[4];
static int (daNpc_Kakashi_c::*mCutList[])(int);
static char DUSK_CONST* DUSK_CONST mCutNameList[4];
static int (daNpc_Kakashi_c::* DUSK_CONST mCutList[])(int);
private:
/* 0x0E40 */ NPC_KAKASHI_HIO_CLASS* mpHIO;
+1 -1
View File
@@ -120,7 +120,7 @@ public:
void chgWeightLight() { mCcStts.SetWeight(0xD8); }
BOOL pl_front_check() { return actor_front_check(daPy_getPlayerActorClass()); }
static EventFn mEvtSeqList[1];
static EventFn DUSK_CONST mEvtSeqList[1];
static daTagEscape_c* mTargetTag;
static f32 mTargetTagDist;
static s16 mWolfAngle;
+1 -1
View File
@@ -121,7 +121,7 @@ public:
void chgWeightLight() { mCcStts.SetWeight(0xD8); }
BOOL pl_front_check() { return actor_front_check(daPy_getPlayerActorClass()); }
static EventFn mEvtSeqList[1];
static EventFn DUSK_CONST mEvtSeqList[1];
static daTagEscape_c* mTargetTag;
static f32 mTargetTagDist;
static s16 mWolfAngle;
+3 -3
View File
@@ -71,7 +71,7 @@ public:
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_faceMotionSequenceData,
int i_faceMotionStepNum,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_motionSequenceData, int i_motionStepNum,
daNpcT_evtData_c const* i_evtData, char** i_arcNames)
daNpcT_evtData_c const* i_evtData, char DUSK_CONST* DUSK_CONST* i_arcNames)
: daNpcT_c(i_faceMotionAnmData, i_motionAnmData, i_faceMotionSequenceData,
i_faceMotionStepNum, i_motionSequenceData, i_motionStepNum, i_evtData,
i_arcNames)
@@ -118,8 +118,8 @@ public:
return mpMorf[0]->getModel()->getAnmMtx(5);
}
static char* mCutNameList[3];
static int (daNpc_Kkri_c::*mCutList[])(int);
static char DUSK_CONST* DUSK_CONST mCutNameList[3];
static int (daNpc_Kkri_c::* DUSK_CONST mCutList[])(int);
private:
/* 0xE40 */ NPC_KKRI_HIO_CLASS* mpHIO;
+6 -6
View File
@@ -88,7 +88,7 @@ public:
/* 0x05AC */ const daNpcT_faceMotionAnmData_c* mpFaceMotionAnmData;
/* 0x05B0 */ const daNpcT_motionAnmData_c* mpMotionAnmData;
/* 0x05B4 */ const daNpcT_evtData_c* mpEventData;
/* 0x05B8 */ char** mpArcNames;
/* 0x05B8 */ char DUSK_CONST* DUSK_CONST* mpArcNames;
/* 0x05BC */ mDoExt_McaMorfSO* mpModelMorf[2];
/* 0x05C4 */ Z2Creature mSound;
/* 0x0654 */ mDoExt_bckAnm mBckAnm;
@@ -322,8 +322,8 @@ public:
int setMcaMorfAnm(J3DAnmTransformKey*, f32, f32, int, int, int);
BOOL setBtpAnm(J3DAnmTexPattern*, J3DModelData*, f32, int);
BOOL setBtkAnm(J3DAnmTextureSRTKey*, J3DModelData*, f32, int);
int loadRes(s8 const*, char const**);
void deleteRes(s8 const*, char const**);
int loadRes(s8 const*, char const* DUSK_CONST*);
void deleteRes(s8 const*, char const* DUSK_CONST*);
int execute();
int draw(int, int, f32, GXColorS10*, f32, int, int, int);
void setEnvTevColor();
@@ -355,7 +355,7 @@ public:
daNpcT_motionAnmData_c const* param_1,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_2, int param_3,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_4, int param_5,
daNpcT_evtData_c const* param_6, char** param_7)
daNpcT_evtData_c const* param_6, char DUSK_CONST* DUSK_CONST* param_7)
: mpFaceMotionAnmData(param_0), mpMotionAnmData(param_1), mFaceMotionSeqMngr(param_2, param_3),
mMotionSeqMngr(param_4, param_5), mpEventData(param_6), mpArcNames(param_7)
{
@@ -413,8 +413,8 @@ public:
virtual bool afterSetMotionAnm(int, int, f32, int);
static const dCcD_SrcGObjInf mCcDObjData;
static char* mCutNameList[21];
static cutFunc mCutList[21];
static char DUSK_CONST* DUSK_CONST mCutNameList[21];
static cutFunc DUSK_CONST mCutList[21];
static dCcD_SrcCyl mCcDCyl;
static dCcD_SrcSph mCcDSph;
static s16 mSrchName;
+3 -3
View File
@@ -75,13 +75,13 @@ public:
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_faceMotionSequenceData,
int i_faceMotionStepNum,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_motionSequenceData, int i_motionStepNum,
daNpcT_evtData_c const* i_evtData, char** i_arcNames)
daNpcT_evtData_c const* i_evtData, char DUSK_CONST* DUSK_CONST* i_arcNames)
: daNpcT_c(i_faceMotionAnmData, i_motionAnmData, i_faceMotionSequenceData,
i_faceMotionStepNum, i_motionSequenceData, i_motionStepNum, i_evtData,
i_arcNames) {}
static char* mCutNameList[1];
static cutFunc mCutList[1];
static char DUSK_CONST* DUSK_CONST mCutNameList[1];
static cutFunc DUSK_CONST mCutList[1];
private:
/* 0xE40 */ NPC_KNJ_HIO_CLASS* mpHIO;
+3 -3
View File
@@ -93,7 +93,7 @@ public:
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_motionSequenceData,
int i_motionStepNum,
daNpcT_evtData_c const* i_evtData,
char** i_arcNames)
char DUSK_CONST* DUSK_CONST* i_arcNames)
: daNpcT_c(i_faceMotionAnmData, i_motionAnmData, i_faceMotionSequenceData,
i_faceMotionStepNum, i_motionSequenceData, i_motionStepNum, i_evtData,
i_arcNames) {}
@@ -120,8 +120,8 @@ public:
virtual void changeAnm(int*, int*);
virtual void changeBck(int*, int*);
static char* mCutNameList[11];
static cutFunc mCutList[11];
static char DUSK_CONST* DUSK_CONST mCutNameList[11];
static cutFunc DUSK_CONST mCutList[11];
u32 getFlowNodeNo() {
u16 nodeNo = home.angle.x;
+3 -3
View File
@@ -140,7 +140,7 @@ public:
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_motionSequenceData,
int i_motionStepNum,
daNpcT_evtData_c const* i_evtData,
char** i_arcNames)
char DUSK_CONST* DUSK_CONST* i_arcNames)
: daNpcT_c(i_faceMotionAnmData, i_motionAnmData, i_faceMotionSequenceData,
i_faceMotionStepNum, i_motionSequenceData, i_motionStepNum, i_evtData,
i_arcNames) {}
@@ -150,8 +150,8 @@ public:
s32 getBackboneJointNo() { return mType == 2 ? ZRCB_JNT_BACKBONE1 : KOLINB_JNT_BACKBONE1; }
s32 getNeckJointNo() { return mType == 2 ? ZRCB_JNT_NECK : KOLINB_JNT_NECK; }
static char* mCutNameList[7];
static cutFunc mCutList[7];
static char DUSK_CONST* DUSK_CONST mCutNameList[7];
static cutFunc DUSK_CONST mCutList[7];
u32 getFlowNodeNo() {
u16 nodeNo = home.angle.x;
+3 -3
View File
@@ -106,7 +106,7 @@ public:
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_3,
int param_4,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_5,
int param_6, daNpcT_evtData_c const* param_7, char** param_8)
int param_6, daNpcT_evtData_c const* param_7, char DUSK_CONST* DUSK_CONST* param_8)
: daNpcT_c(param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8) {}
u16 getEyeballMaterialNo() { return 2; }
s32 getHeadJointNo() { return 4; }
@@ -123,8 +123,8 @@ public:
return nodeNo;
}
static char* mCutNameList[2];
static cutFunc mCutList[2];
static char DUSK_CONST* DUSK_CONST mCutNameList[2];
static cutFunc DUSK_CONST mCutList[2];
private:
/* 0xE40 */ NPC_KYURY_HIO_CLASS* mpHIO;
+3 -3
View File
@@ -86,7 +86,7 @@ public:
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_faceMotionSequenceData,
int i_faceMotionStepNum,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_motionSequenceData, int i_motionStepNum,
daNpcT_evtData_c const* i_evtData, char** i_arcNames)
daNpcT_evtData_c const* i_evtData, char DUSK_CONST* DUSK_CONST* i_arcNames)
: daNpcT_c(i_faceMotionAnmData, i_motionAnmData, i_faceMotionSequenceData,
i_faceMotionStepNum, i_motionSequenceData, i_motionStepNum, i_evtData,
i_arcNames) {}
@@ -100,8 +100,8 @@ public:
s32 getFootRJointNo() { return 32; }
BOOL chkXYItems() { return TRUE; }
static char* mCutNameList[4];
static cutFunc mCutList[4];
static char DUSK_CONST* DUSK_CONST mCutNameList[4];
static cutFunc DUSK_CONST mCutList[4];
int getFlowNodeNo() {
u16 nodeNo = home.angle.x;
+3 -3
View File
@@ -91,7 +91,7 @@ public:
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_faceMotionSequenceData,
int i_faceMotionStepNum,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_motionSequenceData, int i_motionStepNum,
daNpcT_evtData_c const* i_evtData, char** i_arcNames)
daNpcT_evtData_c const* i_evtData, char DUSK_CONST* DUSK_CONST* i_arcNames)
: daNpcT_c(i_faceMotionAnmData, i_motionAnmData, i_faceMotionSequenceData,
i_faceMotionStepNum, i_motionSequenceData, i_motionStepNum, i_evtData,
i_arcNames) {}
@@ -111,8 +111,8 @@ public:
}
u8 getBitSW() { return (fopAcM_GetParam(this) & 0xff0000) >> 16; }
static char* mCutNameList[8];
static cutFunc mCutList[8];
static char DUSK_CONST* DUSK_CONST mCutNameList[8];
static cutFunc DUSK_CONST mCutList[8];
private:
/* 0xE40 */ mDoExt_McaMorfSO* mpBowlMorf;
+3 -3
View File
@@ -132,7 +132,7 @@ public:
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_faceMotionSequenceData,
int i_faceMotionStepNum,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_motionSequenceData, int i_motionStepNum,
daNpcT_evtData_c const* i_evtData, char** i_arcNames)
daNpcT_evtData_c const* i_evtData, char DUSK_CONST* DUSK_CONST* i_arcNames)
: dShopSystem_c(i_faceMotionAnmData, i_motionAnmData, i_faceMotionSequenceData,
i_faceMotionStepNum, i_motionSequenceData, i_motionStepNum, i_evtData,
i_arcNames) {
@@ -167,8 +167,8 @@ public:
void startChoccai() { field_0x1134 = 1; }
void endChoccai() { field_0x1134 = 0; }
static char* mCutNameList[17];
static cutFunc mCutList[17];
static char DUSK_CONST* DUSK_CONST mCutNameList[17];
static cutFunc DUSK_CONST mCutList[17];
u8 getGroupId() {
return (fopAcM_GetParam(this) & 0xF0000000) >> 28;
+3 -3
View File
@@ -130,7 +130,7 @@ public:
daNpc_midP_c(daNpcT_faceMotionAnmData_c const* param_1, daNpcT_motionAnmData_c const* param_2,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_3, int param_4,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_5, int param_6,
daNpcT_evtData_c const* param_7, char** param_8) :
daNpcT_evtData_c const* param_7, char DUSK_CONST* DUSK_CONST* param_8) :
daNpcT_c(param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8) {}
u16 getEyeballRMaterialNo() { return 3; }
u16 getEyeballLMaterialNo() { return 2; }
@@ -148,8 +148,8 @@ public:
return nodeNo;
}
static char* mCutNameList;
static cutFunc mCutList[1];
static char DUSK_CONST* DUSK_CONST mCutNameList;
static cutFunc DUSK_CONST mCutList[1];
private:
/* 0xE40 */ NPC_MIDP_HIO_CLASS* mpHIO;
+3 -3
View File
@@ -128,7 +128,7 @@ public:
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_faceMotionSequenceData,
int i_faceMotionStepNum,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_motionSequenceData, int i_motionStepNum,
daNpcT_evtData_c const* i_evtData, char** i_arcNames)
daNpcT_evtData_c const* i_evtData, char DUSK_CONST* DUSK_CONST* i_arcNames)
: daNpcT_c(i_faceMotionAnmData, i_motionAnmData, i_faceMotionSequenceData,
i_faceMotionStepNum, i_motionSequenceData, i_motionStepNum, i_evtData,
i_arcNames) {}
@@ -158,8 +158,8 @@ public:
bool chkSFight() { return field_0x166b == 1; }
u8 getPathID() { return (fopAcM_GetParam(this) & 0xff00) >> 8; }
static char* mCutNameList[5];
static cutFunc mCutList[5];
static char DUSK_CONST* DUSK_CONST mCutNameList[5];
static cutFunc DUSK_CONST mCutList[5];
private:
/* 0x0E40 */ NPC_MOI_HIO_CLASS* mpHIO;
+2 -2
View File
@@ -87,8 +87,8 @@ public:
int getType() { return mType; }
static char* mEvtCutNameList[5];
static EventFn mEvtCutList[];
static char DUSK_CONST* DUSK_CONST mEvtCutNameList[5];
static EventFn DUSK_CONST mEvtCutList[];
/* 0xB48 */ u8 field_0xB48[0xB4C - 0xB48];
/* 0xB4C */ daNpcF_Lookat_c mLookat;
+3 -3
View File
@@ -115,7 +115,7 @@ public:
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_motionSequenceData,
int i_motionStepNum,
daNpcT_evtData_c const* i_evtData,
char** i_arcNames)
char DUSK_CONST* DUSK_CONST* i_arcNames)
: daNpcT_c(i_faceMotionAnmData, i_motionAnmData, i_faceMotionSequenceData,
i_faceMotionStepNum, i_motionSequenceData, i_motionStepNum, i_evtData,
i_arcNames) {}
@@ -144,8 +144,8 @@ public:
void setTagPos(cXyz const& i_pos) { mTagPos = i_pos; }
void setLookPos(cXyz const& i_pos) { mLookPos = i_pos; }
static char* mCutNameList[11];
static cutFunc mCutList[11];
static char DUSK_CONST* DUSK_CONST mCutNameList[11];
static cutFunc DUSK_CONST mCutList[11];
private:
/* 0xE40 */ NPC_PACHI_BESU_HIO_CLASS* mpHIO;
+3 -3
View File
@@ -149,7 +149,7 @@ public:
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_motionSequenceData,
int i_motionStepNum,
daNpcT_evtData_c const* i_evtData,
char** i_arcNames)
char DUSK_CONST* DUSK_CONST* i_arcNames)
: daNpcT_c(i_faceMotionAnmData, i_motionAnmData, i_faceMotionSequenceData,
i_faceMotionStepNum, i_motionSequenceData, i_motionStepNum, i_evtData,
i_arcNames) {
@@ -184,8 +184,8 @@ public:
void setFMotion_Niramu_to_Besu() { mFMotion = 1; }
void setFMotion_LookNone() { mFMotion = 2; }
static char* mCutNameList[11];
static cutFunc mCutList[11];
static char DUSK_CONST* DUSK_CONST mCutNameList[11];
static cutFunc DUSK_CONST mCutList[11];
private:
/* 0xE40 */ NPC_PACHI_MARO_HIO_CLASS* mpHIO;
+3 -3
View File
@@ -166,7 +166,7 @@ public:
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_motionSequenceData,
int i_motionStepNum,
daNpcT_evtData_c const* i_evtData,
char** i_arcNames)
char DUSK_CONST* DUSK_CONST* i_arcNames)
: daNpcT_c(i_faceMotionAnmData, i_motionAnmData, i_faceMotionSequenceData,
i_faceMotionStepNum, i_motionSequenceData, i_motionStepNum, i_evtData,
i_arcNames) {
@@ -196,8 +196,8 @@ public:
void setTagPos(cXyz const& i_pos) { mTagPos = i_pos; }
void setLookPos(cXyz const& i_pos) { mLookPos = i_pos; }
static char* mCutNameList[11];
static cutFunc mCutList[11];
static char DUSK_CONST* DUSK_CONST mCutNameList[11];
static cutFunc DUSK_CONST mCutList[11];
private:
/* 0x0E40 */ NPC_PACHI_TARO_HIO_CLASS* mpHIO;
+3 -3
View File
@@ -125,7 +125,7 @@ public:
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_faceMotionSequenceData,
int i_faceMotionStepNum,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_motionSequenceData, int i_motionStepNum,
daNpcT_evtData_c const* i_evtData, char** i_arcNames)
daNpcT_evtData_c const* i_evtData, char DUSK_CONST* DUSK_CONST* i_arcNames)
: daNpcT_c(i_faceMotionAnmData, i_motionAnmData, i_faceMotionSequenceData,
i_faceMotionStepNum, i_motionSequenceData, i_motionStepNum, i_evtData,
i_arcNames) {
@@ -153,8 +153,8 @@ public:
u8 getBitSW() { return (fopAcM_GetParam(this) & 0xFF00) >> 8; }
static char* mCutNameList[2];
static cutFunc mCutList[2];
static char DUSK_CONST* DUSK_CONST mCutNameList[2];
static cutFunc DUSK_CONST mCutList[2];
private:
/* 0x0E40 */ mDoExt_McaMorfSO* mpFlagModelMorf;
+3 -3
View File
@@ -121,7 +121,7 @@ public:
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_faceMotionSequenceData,
int i_faceMotionStepNum,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_motionSequenceData, int i_motionStepNum,
daNpcT_evtData_c const* i_evtData, char** i_arcNames)
daNpcT_evtData_c const* i_evtData, char DUSK_CONST* DUSK_CONST* i_arcNames)
: daNpcT_c(i_faceMotionAnmData, i_motionAnmData, i_faceMotionSequenceData,
i_faceMotionStepNum, i_motionSequenceData, i_motionStepNum, i_evtData,
i_arcNames) {}
@@ -146,8 +146,8 @@ public:
MtxP getHeadMtx() { return mpMorf[0]->getModel()->getAnmMtx(4); }
static char* mCutNameList[3];
static cutFunc mCutList[3];
static char DUSK_CONST* DUSK_CONST mCutNameList[3];
static cutFunc DUSK_CONST mCutList[3];
private:
/* 0xE40 */ NPC_POUYA_HIO_CLASS* mpHIO;
+1 -1
View File
@@ -77,7 +77,7 @@ public:
s16 getMessageNo() { return (fopAcM_GetParam(this) >> 8) & 0xFFFF; }
static EvtSeq mEvtSeqList[];
static EvtSeq DUSK_CONST mEvtSeqList[];
private:
/* 0xB48 */ Z2CreatureCitizen mSound;
+3 -3
View File
@@ -121,7 +121,7 @@ public:
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_motionSequenceData,
int i_motionStepNum,
daNpcT_evtData_c const* i_evtData,
char** i_arcNames)
char DUSK_CONST* DUSK_CONST* i_arcNames)
: daNpcT_c(i_faceMotionAnmData, i_motionAnmData, i_faceMotionSequenceData,
i_faceMotionStepNum, i_motionSequenceData, i_motionStepNum, i_evtData,
i_arcNames) {}
@@ -145,8 +145,8 @@ public:
u8 getPathID() { return (fopAcM_GetParam(this) & 0xFF00) >> 8; }
u8 getBitSW() { return (fopAcM_GetParam(this) & 0xFF0000) >> 16; }
static char* mCutNameList;
static cutFunc mCutList[1];
static char DUSK_CONST* DUSK_CONST mCutNameList;
static cutFunc DUSK_CONST mCutList[1];
private:
/* 0xE40 */ NPC_RACA_HIO_CLASS* mpHIO;
+3 -3
View File
@@ -115,7 +115,7 @@ public:
daNpc_Saru_c(daNpcT_faceMotionAnmData_c const* param_1, daNpcT_motionAnmData_c const* param_2,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_3, int param_4,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_5, int param_6,
daNpcT_evtData_c const* param_7, char** param_8) :
daNpcT_evtData_c const* param_7, char DUSK_CONST* DUSK_CONST* param_8) :
daNpcT_c(param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8)
{}
s32 getHeadJointNo() { return JNT_HEAD; }
@@ -133,8 +133,8 @@ public:
u8 getPathID() { return (fopAcM_GetParam(this) & 0xff0000) >> 16; }
u8 getBitSW() { return (fopAcM_GetParam(this) & 0xff00) >> 8; }
static char* mCutNameList[4];
static cutFunc mCutList[4];
static char DUSK_CONST* DUSK_CONST mCutNameList[4];
static cutFunc DUSK_CONST mCutList[4];
private:
/* 0xE40 */ NPC_SARU_HIO_CLASS* mpHIO;
/* 0xE44 */ J3DModel* mpRoseModels[2];
+3 -3
View File
@@ -80,12 +80,12 @@ public:
daNpc_seiB_c(daNpcT_faceMotionAnmData_c const* param_1, daNpcT_motionAnmData_c const* param_2,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_3, int param_4,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_5, int param_6,
daNpcT_evtData_c const* param_7, char** param_8) :
daNpcT_evtData_c const* param_7, char DUSK_CONST* DUSK_CONST* param_8) :
daNpcT_c(param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8)
{}
static char* mCutNameList;
static cutFunc mCutList[1];
static char DUSK_CONST* DUSK_CONST mCutNameList;
static cutFunc DUSK_CONST mCutList[1];
private:
/* 0xE40 */ NPC_SEIB_HIO_CLASS* mpHIO;
+3 -3
View File
@@ -82,13 +82,13 @@ public:
daNpc_seiC_c(daNpcT_faceMotionAnmData_c const* i_faceMotionAnmData, daNpcT_motionAnmData_c const* i_motionAnmData,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_faceMotionSequenceData, int i_faceMotionStepNum,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_motionSequenceData, int i_motionStepNum,
daNpcT_evtData_c const* i_evtData, char** i_arcNames)
daNpcT_evtData_c const* i_evtData, char DUSK_CONST* DUSK_CONST* i_arcNames)
: daNpcT_c(i_faceMotionAnmData, i_motionAnmData, i_faceMotionSequenceData,
i_faceMotionStepNum, i_motionSequenceData, i_motionStepNum, i_evtData,
i_arcNames) {};
static char* mCutNameList;
static cutFunc mCutList[1];
static char DUSK_CONST* DUSK_CONST mCutNameList;
static cutFunc DUSK_CONST mCutList[1];
private:
/* 0xE40 */ NPC_SEIC_HIO_CLASS* mpHIO;
+3 -3
View File
@@ -81,13 +81,13 @@ public:
daNpc_seiD_c(daNpcT_faceMotionAnmData_c const* i_faceMotionAnmData, daNpcT_motionAnmData_c const* i_motionAnmData,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_faceMotionSequenceData, int i_faceMotionStepNum,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_motionSequenceData, int i_motionStepNum,
daNpcT_evtData_c const* i_evtData, char** i_arcNames)
daNpcT_evtData_c const* i_evtData, char DUSK_CONST* DUSK_CONST* i_arcNames)
: daNpcT_c(i_faceMotionAnmData, i_motionAnmData, i_faceMotionSequenceData,
i_faceMotionStepNum, i_motionSequenceData, i_motionStepNum, i_evtData,
i_arcNames) {};
static char* mCutNameList;
static cutFunc mCutList[1];
static char DUSK_CONST* DUSK_CONST mCutNameList;
static cutFunc DUSK_CONST mCutList[1];
private:
/* 0xE40 */ NPC_SEID_HIO_CLASS* mpHIO;
+3 -3
View File
@@ -100,7 +100,7 @@ public:
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_faceMotionSequenceData,
int i_faceMotionStepNum,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_motionSequenceData, int i_motionStepNum,
daNpcT_evtData_c const* i_evtData, char** i_arcNames)
daNpcT_evtData_c const* i_evtData, char DUSK_CONST* DUSK_CONST* i_arcNames)
: dShopSystem_c(i_faceMotionAnmData, i_motionAnmData, i_faceMotionSequenceData,
i_faceMotionStepNum, i_motionSequenceData, i_motionStepNum, i_evtData,
i_arcNames) {
@@ -114,8 +114,8 @@ public:
BOOL checkChangeJoint(int val) { return val == 4; }
BOOL checkRemoveJoint(int val) { return val == 8; }
static char* mCutNameList[2];
static cutFunc mCutList[2];
static char DUSK_CONST* DUSK_CONST mCutNameList[2];
static cutFunc DUSK_CONST mCutList[2];
private:
/* 0x0F7C */ mDoExt_McaMorfSO* mpSeiraMorf;
+3 -3
View File
@@ -92,7 +92,7 @@ public:
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_faceMotionSequenceData,
int i_faceMotionStepNum,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_motionSequenceData, int i_motionStepNum,
daNpcT_evtData_c const* i_evtData, char** i_arcNames)
daNpcT_evtData_c const* i_evtData, char DUSK_CONST* DUSK_CONST* i_arcNames)
: dShopSystem_c(i_faceMotionAnmData, i_motionAnmData, i_faceMotionSequenceData,
i_faceMotionStepNum, i_motionSequenceData, i_motionStepNum, i_evtData,
i_arcNames) {
@@ -106,8 +106,8 @@ public:
BOOL checkChangeJoint(int val) { return val == 4; }
BOOL checkRemoveJoint(int val) { return val == 8; }
static char* mCutNameList[1];
static cutFunc mCutList[1];
static char DUSK_CONST* DUSK_CONST mCutNameList[1];
static cutFunc DUSK_CONST mCutList[1];
private:
/* 0x0F7C */ mDoExt_McaMorfSO* mpSeiraMorf;
+3 -3
View File
@@ -83,7 +83,7 @@ public:
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_motionSequenceData,
int i_motionStepNum,
daNpcT_evtData_c const* i_evtData,
char** i_arcNames)
char DUSK_CONST* DUSK_CONST* i_arcNames)
: daNpcT_c(i_faceMotionAnmData, i_motionAnmData, i_faceMotionSequenceData,
i_faceMotionStepNum, i_motionSequenceData, i_motionStepNum, i_evtData,
i_arcNames) {}
@@ -99,8 +99,8 @@ public:
u32 getBitSW() { return (fopAcM_GetParam(this) & 0xFF000) >> 12; }
bool getDoBtnChkFlag() { return (fopAcM_GetParam(this) & 0x100) == 0; }
static char* mCutNameList[2];
static cutFunc mCutList[2];
static char DUSK_CONST* DUSK_CONST mCutNameList[2];
static cutFunc DUSK_CONST mCutList[2];
private:
/* 0xE40 */ NPC_SEIREI_HIO_CLASS* mpHIO;
+1 -1
View File
@@ -184,7 +184,7 @@ public:
void lookat();
BOOL drawDbgInfo();
static EventFn mEvtSeqList[14];
static EventFn DUSK_CONST mEvtSeqList[14];
u8 getPathID() { return (fopAcM_GetParam(this) >> 8) & 0xFF; }
s16 getMessageNo() { return shape_angle.x; }
+3 -3
View File
@@ -94,7 +94,7 @@ public:
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_motionSequenceData,
int i_motionStepNum,
daNpcT_evtData_c const* i_evtData,
char** i_arcNames)
char DUSK_CONST* DUSK_CONST* i_arcNames)
: daNpcT_c(i_faceMotionAnmData, i_motionAnmData, i_faceMotionSequenceData,
i_faceMotionStepNum, i_motionSequenceData, i_motionStepNum, i_evtData,
i_arcNames) { OS_REPORT("|%06d:%x|daNpc_Sha_c -> コンストラクト\n", g_Counter.mCounter0, this); }
@@ -110,8 +110,8 @@ public:
return nodeNo == 0xFFFF ? -1 : nodeNo;
}
static char* mCutNameList[2];
static cutFunc mCutList[2];
static char DUSK_CONST* DUSK_CONST mCutNameList[2];
static cutFunc DUSK_CONST mCutList[2];
static const u16 mEvtBitLabels[6];
static const u16 mTmpBitLabels[6];
static const int mSceneChangeNoTable[48];
+1 -1
View File
@@ -110,7 +110,7 @@ public:
inline bool chkFindPlayer();
inline void playMotion();
static EventFn mEvtSeqList[1];
static EventFn DUSK_CONST mEvtSeqList[1];
private:
/* 0xB48 */ J3DModel* mpModel1;
+2 -2
View File
@@ -34,12 +34,12 @@ public:
int destroy();
int execute();
int draw();
char* getResName();
char DUSK_CONST* getResName();
void getParam();
int getFlowNodeNum();
int isDelete();
int init();
J3DAnmTransform* getTrnsfrmAnmP(int, char**);
J3DAnmTransform* getTrnsfrmAnmP(int, char DUSK_CONST* DUSK_CONST*);
int setBckAnm(J3DAnmTransform*, f32, int, int, int, bool);
int setCollision();
int checkEvent();
+3 -3
View File
@@ -105,14 +105,14 @@ public:
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_3,
int param_4,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_5,
int param_6, daNpcT_evtData_c const* param_7, char** param_8)
int param_6, daNpcT_evtData_c const* param_7, char DUSK_CONST* DUSK_CONST* param_8)
: daNpcT_c(param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8) {}
s32 getHeadJointNo() { return JNT_HEAD; }
s32 getNeckJointNo() { return JNT_NECK; }
s32 getBackboneJointNo() { return JNT_BACKBONE1; }
static char* mCutNameList[1];
static cutFunc mCutList[1];
static char DUSK_CONST* DUSK_CONST mCutNameList[1];
static cutFunc DUSK_CONST mCutList[1];
private:
/* 0xE40 */ NPC_SOLA_HIO_CLASS* mpHIO;
+2 -2
View File
@@ -79,8 +79,8 @@ public:
u8 getType() { return mType; }
static char* mEvtCutNameList[3];
static cutFunc mEvtCutList[3];
static char DUSK_CONST* DUSK_CONST mEvtCutNameList[3];
static cutFunc DUSK_CONST mEvtCutList[3];
private:
/* 0xB48 */ Z2Creature mSound;

Some files were not shown because too many files have changed in this diff Show More