Commit graph

742 commits

Author SHA1 Message Date
Thomas Phillips
b14116cc93
Python Linting and Code Formatting (#298)
* Create common print_diff function

* Add pylint and black

* Fix linting, move classes to utils

* Add black/pylint to github actions

* Fix linting

* Move Bin and SymInfo into their own files

* Split out format

* Tidy up workdlows and pip, add readme

* Lint tests, add tests to readme
2023-11-25 13:27:42 -05:00
Christian Semmler
fb0d1ccb62
Implement/match MxLoopingMIDIPresenter (#302)
* Implement/match MxLoopingMIDIPresenter

* Move declarations
2023-11-25 13:26:44 -05:00
Christian Semmler
5aa548c449
Replace FALSE with NULL 2023-11-25 07:22:23 -05:00
Christian Semmler
7db2b2e6b7
Implement/match MxMidiPresenter (#301) 2023-11-24 12:21:26 -05:00
Christian Semmler
db77350169
(clang-format) Add EmptyLineBeforeAccessModifier (#300) 2023-11-24 12:10:09 -05:00
Christian Semmler
1d3ce6b0aa
Implement/match remaining MxWavePresenter functions (#294)
* Implement/match remaining MxWavePresenter functions

* Name m_unk65

* Match WriteToSoundBuffer

* Remove header

* Match StreamingTickle

* Name more variables

* Give names to some things
2023-11-24 12:09:53 -05:00
Joshua Peisach
a577b393bf
LegoRace initial layout (#299)
* LegoRace initial layout

* fix function ordering

* Fix it all

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-11-24 13:11:32 +01:00
MS
14f05ea823
MXIOINFO code style (#297) 2023-11-22 02:54:08 -05:00
MS
abcc3afb31
Fix reccmp html output for template functions (#296) 2023-11-22 02:52:57 -05:00
Misha
343b0ff3cb
LegoActionControlPresenter functions (#295)
* LegoActionControlPresenter

* fix formatting

* fix format

* Fixes

* Fix order

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-11-21 11:35:03 +01:00
MS
1ae3b07dc2
Checkorder tool to keep functions in original binary order (#228)
* First commit of order tool

* More flexible match on module name. Bugfix on blank_or_comment

* Report inexact offset comments in verbose mode. Bugfix for exact regex

* Refactor checkorder into reusable isledecomp module

* Find bad comments in one pass, add awareness of TEMPLATE

* Refactor of state machine to prepare for reccmp integration

* Use isledecomp lib in reccmp

* Build isledecomp in GH actions, fix mypy complaint

* Ensure unit test cpp files will be ignored by reccmp

* Allow multiple offset markers, pep8 cleanup

* Remove unused variable

* Code style, remove unneeded module and TODO

* Final renaming and type hints

* Fix checkorder issues, add GH action and enforce (#2)

* Fix checkorder issues

* Add GH action

* Test error case

* Works

* Fixes

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-11-21 09:44:45 +01:00
Christian Semmler
714d36b57d
Bootstrap MxWavePresenter, implement/match some functions (#286)
* Bootstrap MxWavePresenter, implement/match some functions

* Fix

* Use constant for 0x7f

* Update mxwavepresenter.cpp

* Update mxwavepresenter.h
2023-11-19 12:10:49 -05:00
Christian Semmler
6441391092
Implement/match MxEventPresenter (#285) 2023-11-19 12:10:32 -05:00
Christian Semmler
e0c168367a
Fix ROI acronym explanation 2023-11-19 09:49:36 -05:00
Nathan M Gilbert
7fc1f8019f
Implement ViewROI and base classes (#287)
* Implement ViewROI and base classes

* Clean up Orientable header

* Move tgl to tgl subdirectory, and use target_include_directories

* Move classes to submodules

* Fix some missed references

* Fix/match UpdateWorldData

* Renaming / removing MxTypes / refactoring

* Consistent naming for Matrix

* Adjust format action

* Add Vector3/Vector4 to Data vector

* Add TGL comment

* Add a comment about Matrix4Impl

* Add ROI comment

---------

Co-authored-by: Anonymous Maarten <anonymous.maarten@gmail.com>
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-11-19 15:38:07 +01:00
Christian Semmler
17b0eeddb4
Update CONTRIBUTING.md 2023-11-19 14:17:01 +01:00
Thomas Phillips
dff410d87a
Use templates instead of replacing (#292)
* Use templates instead of replacing

* Use Renderer to avoid loading templates ourselves

---------

Co-authored-by: Thomas Phillips <thomas@teknique.com>
2023-11-19 13:55:01 +01:00
Joshua Peisach
0b0a9a6d6f
MxFlcPresenter: vtable70 (#291)
* MxFlcPresenter: vtable70

* Fix function

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-11-19 13:28:06 +01:00
MS
0bb3ea6a03
MxList refactor (#290)
* MxList refactor

* Reorder LegoPathControllerList::Destroy

* MxPtrList custom destructor and more offsets

Co-authored-by: Christian Semmler <mail@csemmler.com>

* Fix member offset comments in collection classes

* Fix template annotations

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-11-19 13:23:30 +01:00
Nathan M Gilbert
93eb4dc82d
Create (#289)
* Align name of Create method with known source
Fix name in Score for reccmp

* Also update MxEntity::Vtable0x14
2023-11-18 10:08:49 -05:00
Joshua Peisach
eee80250c0
LegoPalettePresenter - destroy function and destructor (#288)
* LegoPalettePresenter - destroy function and destructor

* Update legopalettepresenter.h

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-11-17 15:01:27 -05:00
Christian Semmler
d8bf4aebf4
Implement/match most of MxVideoPresenter (#280)
* Bootstrap MxMediaPresenter

* Implement/match MxMediaPresenter::Tickle and related

* Implement AppendChunk and Enable

* Implement/match most of MxVideoPresenter

* Add missing offset
2023-11-14 12:25:14 -08:00
Christian Semmler
c626f18b03
Prepare MxMidiPresenter vtable and refactoring (#278) 2023-11-14 12:10:43 -08:00
DmitriLeon2000
e86d6f0cc7
Marking LegoOmni::Notify as STUB (#284) 2023-11-13 13:21:58 +01:00
Christian Semmler
ba82821501
Implement/match MxMediaPresenter::Tickle and related (#277)
* Bootstrap MxMediaPresenter

* Implement/match MxMediaPresenter::Tickle and related

* Implement AppendChunk and Enable
2023-11-13 12:25:27 +01:00
Christian Semmler
a087c666b4
Remove unnecessary namespace 2023-11-13 12:15:13 +01:00
Christian Semmler
8a1422f13e
Implement/match MxMediaPresenter::EndAction (#276)
* Bootstrap MxMediaPresenter

* Implement/match MxMediaPresenter::EndAction

* Merge

* Remove garbage
2023-11-13 11:22:58 +01:00
MS
8861acaf20
Refactor MxHashTable/MxVariableTable (#283)
* Refactor MxHashTable/MxVariableTable

* Use MxS8 for Compare return type

* Cursor::DeleteMatch check and clang fix
2023-11-12 19:25:56 -05:00
Joshua Peisach
8b2e7a92e1
LegoTexturePresenter destructor and AddToManager (#282)
* LegoTexturePresenter destructor and AddToManager

* clang-format
2023-11-12 14:21:22 -05:00
Joshua Peisach
888205c1fa
Unstub LegoBuildingManager ctor (#281) 2023-11-12 14:21:01 -05:00
Christian Semmler
04b503c79f
Bootstrap MxMediaPresenter (#274)
* Bootstrap MxMediaPresenter

* Add override
2023-11-12 13:47:01 +01:00
Joshua Peisach
e2f2ef6152
MxControlPresenter: destructor and ReadyTickle (#279) 2023-11-10 19:27:10 +01:00
Christian Semmler
82697d7148
Add missing override keywords 2023-11-09 10:52:58 -05:00
Misha
1f6d1ddab0
Lego video manager constructor and deconstructor (#275)
* commit

* Update legovideomanager.cpp

* add offset comments

* Update legovideomanager.h

* Update legovideomanager.h
2023-11-08 17:05:20 -05:00
Thomas Phillips
bd85abaf2a
Improve python tools (#273)
* Use python3 features

* Use `with` statement for file access
* Use f-strings instead of modulo string formatting
* Single quotes in most places

Fix typo in 'with' statement

* Add files into missing messages

* Fix can_resolve_register_differences and round percentages

* Return modified value instead of relying on in-place modification
2023-11-08 10:47:11 +01:00
Christian Semmler
42c47a6540
Fix clang-format 2023-11-06 16:17:23 -05:00
Christian Semmler
a2c83a1b69
(clang-format) Add QualifierOrder (#272) 2023-11-07 14:00:00 +01:00
MS
7834f18999
MxQueue and parts of LegoInputManager (#268)
* MxQueue and parts of LegoInputManager

* Missed clang-format on mxqueue.h

* Fix declarations

* MxParamType -> NotificationId

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-11-07 09:30:26 +01:00
Christian Semmler
23f4fda304
Improve match of MxRegion::vtable18 (#266)
* Match MxRegionTopBottom::FUN_100c5280

* Resolve OtherAppend/Append

* Remove old code

* MxRegion::vtable18 up to 80%, refactor MxRect
2023-11-06 18:12:09 -05:00
Christian Semmler
d5cf23bada
Match MxRegionTopBottom::FUN_100c5280 (#261)
* Match MxRegionTopBottom::FUN_100c5280

* Resolve OtherAppend/Append

* Remove old code
2023-11-06 14:04:51 +01:00
MS
8a528e4146
Big performance gain to reccmp (#271) 2023-11-06 10:07:02 +01:00
Misha
a8254c048d
Implement more of LegoOmni (#267)
* commit code

* implement a few functions

* Update mxdsobject.h

* more stuff

* Update legoomni.cpp

* Update legoomni.cpp

* rename function

* fix

* undo useless changes

* Fixes

* Add global addr

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-11-06 10:00:24 +01:00
Joshua Peisach
ca359e9002
MxEventPresenter: AddToManager and small destroy cleanup (#269)
* MxEventPresenter: AddToManager and small destroy cleanup

* Update mxeventpresenter.h

* Update mxeventpresenter.h

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-11-05 17:45:48 -05:00
Misha
33dcb139b7
Match a few methods (#270)
* match a few misc methods

* Update legonavcontroller.h

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-11-05 17:41:35 -05:00
Misha
42a82794a8
Implement MxStreamController::vtable0x2c (#265)
* MxStreamController::vtable0x2c

* Add size comment

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-11-05 16:25:38 +01:00
Misha
49bad74104
implement register/unregister scripts (#264)
* register/unregister implementation

* Fixes

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-11-05 16:20:00 +01:00
Misha
4c4dce1302
Finish MxBackgroundAudioManager (#263)
* MxBackgroundAudioManager additional functions

* fix code style

* MxBackgroundAudioManager::PlayMusic

* match MxBackgroundAudioManager::Notify

* MxBackgroundAudioManager::Notify

* rename functions

* Fixes

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-11-05 16:07:28 +01:00
Joshua Peisach
22ac0b9296
Add missing ClassName's and IsA's (#262)
* Add missing ClassName's and IsA's

Exceptions: LegoAnimActor as it does something weird with a call to another private/inlined function(?) and RaceStandsEntity which seems to have two vtables

* clang-format

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-11-04 14:47:35 +01:00
Misha
24e889ee3d
some LegoEntityPresenter & LegoWorldPresenter functions (#260)
* LegoEntityPresenter & LegoWorldPresenter

* format fix

* Fixes

* Add size assert

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-11-02 11:54:08 +01:00
MS
176bd1d8fd
LegoGameState destructor and related (#259)
* LegoGameState destructor and related

* MxTypes, naming convention, and using a fraction

* use m_ prefix in struct
2023-11-01 11:12:03 -04:00