Commit graph

1323 commits

Author SHA1 Message Date
jonschz
f26c30974a
Add Ghidra function import script (#909)
* Add draft for Ghidra function import script

* feature: Basic PDB analysis [skip ci]

This is a draft with a lot of open questions left. Please do not merge

* Refactor: Introduce submodules and reload remedy

* refactor types and make them Python 3.9 compatible

* run black

* WIP: save progress

* fix types and small type safety violations

* fix another Python 3.9 syntax incompatibility

* Implement struct imports [skip ci]

- This code is still in dire need of refactoring and tests
- There are only single-digit issues left, and 2600 functions can be imported
- The biggest remaining error is mismatched stacks

* Refactor, implement enums, fix lots of bugs

* fix Python 3.9 issue

* refactor: address review comments

Not sure why VS Code suddenly decides to remove some empty spaces, but they don't make sense anyway

* add unit tests for new type parsers, fix linter issue

* refactor: db access from pdb_extraction.py

* Fix stack layout offset error

* fix: Undo incorrect reference change

* Fix CI issue

* Improve READMEs (fix typos, add information)

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-06-09 08:41:24 -04:00
MS
88805f9fcb
TowTrack and LegoAct2 destructors (#1005)
* Add some missing dtors

* Add missing 'override'
2024-06-08 19:17:33 -04:00
MS
efdbbeecc0
Stop disassembling if we hit int3 (#1004) 2024-06-08 19:16:28 -04:00
Joshua Peisach
b7b0b7f50a
Match Ambulance::StopScriptOnAmbulance and StopScriptOnEntity (#1003)
* Match Ambulance::StopScriptOnAmbulance and StopScriptOnEntity

* Rename for consistency

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-06-08 23:40:36 +02:00
Joshua Peisach
14a2aaadea
Act2PoliceStation::Notify (#1002)
* Act2PoliceStation::Notify

* Match code

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-06-08 23:40:20 +02:00
MS
cb74a8c80e
Disable autojunk for python difflib (#1001) 2024-06-08 10:36:32 -04:00
Christian Semmler
2147be19de
Rename InitPresenters to Create, remove this keyword (#1000) 2024-06-07 22:13:42 +02:00
MS
ba378eb224
Streamline MxVideoParamFlags (#999)
* Streamline MxVideoParamFlags

* Remove this-> from MxOmniCreateFlags
2024-06-06 17:15:57 -04:00
Christian Semmler
ca17928fc6
Implement/match Ambulance::Notify (#998) 2024-06-06 18:19:43 +02:00
Christian Semmler
9a9bccda0e
Implement/match IslePathActor::Exit (#997)
* Implement/match IslePathActor::Exit

* Name

* Name

* Partially fix vector interface

* Revert "Partially fix vector interface"

This reverts commit 6e7a1e2b08fd82012b28be3054eeff65428eb4d1.

* Revert "Revert "Partially fix vector interface""

This reverts commit e3860e3c9fa1f8937b702d6c81d6e3bb4dadecc6.

* Fix

* Remove some COMPAT_MODE
2024-06-06 17:45:37 +02:00
Christian Semmler
9b22642f0c
Implement/match LegoCharacterManager::SwitchColor (#996) 2024-06-06 14:26:33 +02:00
Christian Semmler
49c17c9c6a
Implement/match LegoEntity::SwitchSound / SwitchMove / SwitchColor / SwitchMood (#995)
* Implement/match LegoEntity::SwitchSound

* Name

* Name

* Implement/match LegoEntity::SwitchMove

* Mood
2024-06-05 19:40:44 +02:00
Christian Semmler
f6c923a84e
Implement/match LegoEntity::ClickAnimation (#994)
* Implement/match LegoEntity::VTable0x38

* Update names
2024-06-05 19:00:46 +02:00
Christian Semmler
6a9f68872b
Add enum for actor IDs (#993) 2024-06-05 18:11:46 +02:00
Christian Semmler
6e7e9a3f20
Add more annotations to ISLE (#990)
* Minor improvements in ISLE.EXE

* Add more annotations

* Fix

* Comment out

* Fix lint
2024-06-05 12:31:23 +02:00
Christian Semmler
0c7c77aad3
Implement/match LegoActor::Mute (#992) 2024-06-04 12:19:59 -04:00
Christian Semmler
4898a55508
Match LegoCacheSoundManager::FindSoundByKey (#991)
* Match LegoCacheSoundManager::FindSoundByKey

* Remove space
2024-06-04 18:05:01 +02:00
Christian Semmler
133a312aee
Consolidate state and building entity classes (#989) 2024-06-03 18:53:25 +02:00
Christian Semmler
73bb37596e
Refactor JukeBox, add enum for music (#988)
* Refactor JukeBox, add enum for music

* add BETA annotation

* Fix BETA annotation

* Fix BETA annotation

* Fix
2024-06-03 13:00:38 +02:00
Christian Semmler
828b35e9d2
Implement/match LegoCacheSound::Play and Lego3DSound::FUN_10011a60 (#987)
* Implement/match LegoCacheSound::Play and Lego3DSound::FUN_10011a60

* Update names

* Update
2024-06-02 17:09:09 +02:00
Christian Semmler
03ffb9c5de
Implement/match LegoCacheSound::Create and LegoLoadCacheSoundPresenter::StreamingTickle (#986)
* Implement/match LegoCacheSound::Create

* Naming

* Fix naming

* Fix parens
2024-06-01 17:29:37 -04:00
Christian Semmler
1423eb56fc
Implement/match LegoSoundManager::UpdateListener (#985) 2024-06-01 23:13:57 +02:00
Christian Semmler
ac4e8da662
Implement/match Lego3DSound::SetDistance and Reset (#984) 2024-06-01 19:45:22 +02:00
Christian Semmler
919a3f5c49
Implement/match Lego3DSound::UpdatePosition (#983) 2024-06-01 19:38:13 +02:00
Christian Semmler
23e5ad7d15
Name/rename functions in LegoCharacterManager (#982)
* Name/rename functions in LegoCharacterManager

* Name flag
2024-06-01 18:45:34 +02:00
Christian Semmler
375ac29b9b
Implement/match Lego3DSound::Create (#981)
* Implement/match Lego3DSound::Create

* Add space

* Naming

* Changes
2024-06-01 18:23:48 +02:00
Christian Semmler
df20b05510
Define cursor enum and custom cursor window message (#980)
* Define cursor enum and custom cursor window message

* Fix param name

* Remove unused header
2024-06-01 16:07:58 +02:00
Christian Semmler
b67af71f33
Improve naming, use virtual key constants (#979) 2024-06-01 04:46:05 +02:00
Christian Semmler
77af1a5483
Fix Radio::HandleControl COMPAT_MODE branch (#978) 2024-05-31 23:15:35 +02:00
DmitriLeon2000
3b3ac07cac
Rename LegoEdge::GetOpposingPoint to LegoEdge::CWVertex (#977) 2024-05-30 20:04:06 -04:00
Christian Semmler
eeb81b7223
Use USHRT_MAX instead of MAXWORD (#975) 2024-05-30 22:02:58 +02:00
Christian Semmler
76435d803f
Style refactor omni/system components (#974)
* Style refactor omni/system components

* Fix

* Fix
2024-05-30 21:03:43 +02:00
MS
ac41854149
Add static HandlerClassName function (#973)
* Add static HandlerClassName function

* Use method in PresenterNameDispatch
2024-05-30 19:10:41 +02:00
Christian Semmler
ab4ba9fc4f
Implement/match Lego3DWavePresenter::StartingTickle (#972)
* Implement/match Lego3DWavePresenter::StartingTickle

* Fix annotation

* Add StreamingTickle

* Rename
2024-05-30 16:27:18 +02:00
Christian Semmler
650903d043
Implement/match Pizzeria::HandleClick (#971) 2024-05-30 15:54:24 +02:00
Christian Semmler
ae859fbc19
Implement/match LegoControlManager::FUN_100293c0 (#970) 2024-05-30 15:15:16 +02:00
Christian Semmler
689178f689
Implement/match LegoCameraController::FUN_10012290 and FUN_10012320 (#969) 2024-05-30 14:48:14 +02:00
MS
085bdbe74b
Beta match MxPalette (#968)
* Beta match MxPalette

* Modern compiler fix
2024-05-29 22:52:45 +02:00
Christian Semmler
b978787f8f
Implement/match LegoAnimationManager::FUN_10062e20 (#967) 2024-05-29 19:24:08 +02:00
Christian Semmler
2f1aa58153
Implement/match LegoAnimMMPresenter::FUN_1004b840 (#966) 2024-05-29 17:35:36 +02:00
Christian Semmler
36ec252f7e
Implement/match LegoAnimationManager::FUN_10063270 (#965) 2024-05-29 17:05:50 +02:00
MS
5f00634b9c
Implement LegoMeterPresenter::DrawMeter (#964)
* Implement LegoMeterPresenter::DrawMeter

* New MxRect16 header, offsets and size annotations

* Missing mxtypes include
2024-05-29 16:47:25 +02:00
Christian Semmler
da48dfb40d
Implement/match LegoAnimPresenter::FUN_1006b140 (#963) 2024-05-28 15:23:23 -04:00
Christian Semmler
60b747d7b2
Implement/match LegoPathBoundary::FUN_100586e0 and FUN_10057fe0 (#962) 2024-05-28 17:20:23 +02:00
MS
a88546baad
Refactor MxBitmap (again) (#961)
* Remove this

* Starting list of beta addrs

* Static for height-specific abs, fix StrechBits

* MxBitmap refactor
2024-05-28 09:32:51 +02:00
Christian Semmler
219b65f5ad
Implement/match IslePathActor::FUN_1001b660 (#960) 2024-05-27 21:49:41 +02:00
MS
b8ea5bf9ba
Fix missing float constants (#959) 2024-05-27 03:22:10 -04:00
Christian Semmler
3c45022864
Fix extra actor collisions (#958) 2024-05-26 19:13:56 +02:00
Christian Semmler
765c49fd4e
Match LegoUnknown::FUN_1009a1e0 (#957) 2024-05-26 17:12:37 +02:00
Christian Semmler
3cfb918559
Implement/match LegoExtraActor::VTable0x6c (#956) 2024-05-26 01:16:20 +02:00