Commit graph

21 commits

Author SHA1 Message Date
Christian Semmler
51adb31541
Implement MxVideoPresenter::PutFrame (#389)
* Implementation of MxVideoPresenter::PutFrame

* Add TODOs
2023-12-29 16:30:17 -05:00
Christian Semmler
d82d062e92
Implement/match MxRegionCursor class (#385)
* Implement/match MxRegionCursor class

* Rename function
2023-12-29 05:37:21 +01:00
MS
bcb7bec68b
Improve handling of variables for decomp parser (#376)
* Parser refactor:
- Handling LIRBARY and STRING markers
- Extracting global variable name for future comparison
- Marking function static variables
- More fluent error messages

* String constants annotated with STRING

* fix variable name

* Should compare LIBRARY markers
2023-12-27 15:59:42 -05:00
Christian Semmler
bc5ca621a4
(Proposal) Introduction of naming convention checker (ncc) (#322)
* Add ncc tool

* Add symlink

* Fixes

* Try this

* Try this

* Try this

* Try this

* Add include path

* Update style

* Update style

* Add more rules

* Fix style

* Update styles

* Fix name parameter

* Fix MxParam p

* Fix m_unk0x pattern

* Allow 4 digits for relative hex

* Add missing offset

* Fix some parameters

* Fix some vtables

* Fix more vtables

* Update rules, fixes

* More fixes

* More fixes

* More fixes

* More fixes

* More fixes

* More fixes

* More fixes

* Fix last issue

* Update readme

* Update readme

* Update CONTRIBUTING.md

* Fix annotations

* Rename

* Update CONTRIBUTING.md

* Update README.md
2023-12-13 11:48:14 +01:00
Christian Semmler
1485e5df47
Implement/match most of MxStillPresenter (#309)
* Implement/match most of MxStillPresenter

* Fix merge
2023-12-07 13:13:31 +01:00
Christian Semmler
494a556f8e
(Proposal) Adjustments to "decomp" language (#308)
* Adjustments to "decomp" language

* Fix a comment

* Fix accidental clang-formatting

* Fix order

* Fix order

* Remove junk

* Fix OFFSET

* Adjustments based on new suggestions

* Annotate globals

* Globals in ISLE

* More globals

* Merge from parser2 branch

* Allow prepending space for exact marker match

* To eliminate noise, require the 0x prefix on offset for marker match

* fix test from previous

* Count tab stops for indented functions to reduce MISSED_END_OF_FUNCTION noise

* FUNCTION to SYNTHETIC where needed

* Missed marker conversion on SetAtomId

* pylint cleanup, remove unused code

* Fix unexpected function end, add more unit tests

* Be more strict about synthetic name syntax

* Revert "Missed marker conversion on SetAtomId"

This reverts commit d87d665127.

* Revert "FUNCTION to SYNTHETIC where needed"

This reverts commit 8c815418d2.

* Implicit lookup by name for functions

* Fix VTABLE SYNTHETIC and other decomp markers

* Get vtable class name

* Vtable marker should identify struct

* No colon for SIZE comment

* Update README.md

* Update README.md

* Update CONTRIBUTING.md

* Update README.md

* Update README.md

* Update CONTRIBUTING.md

* Update README.md

* Update CONTRIBUTING.md

* Fix destructor/annotation

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

---------

Co-authored-by: disinvite <disinvite@users.noreply.github.com>
2023-12-06 13:10:45 +01:00
Christian Semmler
10062d2b28
Return type of PutData is MxResult (#305)
* Return type of PutData is MxResult

* Remove out.html
2023-11-26 15:03:40 +01:00
Christian Semmler
d46f2e094b
Bootstrap MxStillPresenter (#303) 2023-11-25 20:08:10 +01: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
MS
10ebdfa608
MxVideoPresenter::IsHit (#244)
* MxVideoPresenter::IsHit

* Apply clang-format

* Minor logic fix

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-10-25 12:02:36 +02:00
Christian Semmler
b449da1fa3
Introduce clang-format (#240) 2023-10-25 01:38:27 +02:00
MS
ae908a74cc
Copy constructor for MxVideoPresenter::AlphaMask (#229) 2023-10-21 19:47:48 -04:00
MS
85d94baa50
MxVideoPresenter AlphaMask (formerly UnkStruct) (#226) 2023-10-22 00:40:31 +02:00
Misha
3dee6eae7a
MxVideoPresenter functions (#187)
* mxvideopresenter

* Update mxvideopresenter.cpp

* use inline getter for rectange width/height

* Update mxvideopresenter.cpp

* Match MxVideoPresenter::Destroy to ~88%

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-10-16 22:09:08 +02:00
DmitriLeon2000
34e09c2bb3
Clean up Destroy pattern everywhere, fix missing overrides (#202)
* Rename MxMusicPresenter function vtable38

* Rename MxMusicPresenter function vtable38

* MxMediaPresenter, MxMusicManager and MxMusicPresenter
* Refactoring Destroy functions

* MxMediaManager & MxMusicPresenter

* Fix some vtable declarations, more renames

* Fix MxEventManager

* More rename fixes

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-10-13 18:43:45 +02:00
MS
907c85616b
Supporting items for SetupCopyRect() (#177)
* Minor improvements all related to SetupCopyRect

* Rename inline getters. malloc/free -> new/delete

* MxTypes in TransitionManager. Remove stub marker (oops)
2023-10-07 18:48:36 +02:00
Regan Green
c46bc985c2
Implement MxTransitionManager SetWaitIndicator and SetupCopyRect (#165)
* Implement MxTransitionManager SetWaitIndicator and SetupCopyRect

* More accurate SetupCopyRect

* Add MxDSAction::Flag_Bit5

* SetupCopyRect PR Amends

* Correct braces formatting

* Stub MxVideoPresenter::Destroy
2023-10-05 06:31:20 -04:00
Joshua Peisach
1d3c1bdbd1
MxFlcPresenter ctor/dtor (#132)
* MxFlcPresenter ctor/dtor

* Match constructor

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-09-20 13:48:46 +02:00
itsmattkc
8fa45bbe0f replace shorts with MxS16/MxU16/undefined2 2023-07-02 02:07:11 -07:00
Anonymous Maarten
646b39e876
Implement MxObjectFactory::{MxObjectFactory,Create} + match sizes of Mx.*Presenter objects created by it (#59)
* Get Isle building on MinGW32 (#63)

* Add MxUnknown100dc6b0::~MxUnknown100dc6b0 stub

* Declare destructor of MxOmni and MxTransitionManager in class

* inline attribute must go first

* Stub LegoState::Vtable0x14 for Act3State

* MxStreamer::VTable0x14 is not an override

* Stub MxEntity::Destroy for LegoState::Destroy

* Stub MxUnknown100dc6e0 for MxSoundManager

* ::ClassName and ::IsA are const methods

* methods in the class body don't need a namespace

* MxSoundManager subclasses MxUnknown100dc6e0

* LegoInputManager subclasses MxPresenter

* NotificationId is an enum, and does not need __declspec(dllexport)

* Fix final #endif of legoomni.h and mxobjectfactory.h

* Add const alternative for LegoOmni::Create and MxVideoParam, only available for MinGW

* Alternative approach to MinGW compatibility

* MinGW on Linux is case sensitve

* Don't delete a member variable. C++ automatically destructs member variables

---------

Co-authored-by: MattKC <34096995+itsmattkc@users.noreply.github.com>

* MxatomId: implement inline operator==

* Add decomp.h header, containing macro's only used when matching the original binaries

* Add in-line constructor of MxPresenter

* MxMediaPresenter: add members to match size

* MxVideoPresenter: add members to match size

* MxCompositePresenter: add members to match size

* MxFlcPresenter: add members to match size

* MxSmkPresenter: add members to match size

* MxStillPresenter: add members to match size

* MxAudioPresenter: add members to match size

* MxWavePresenter: add members to match size

* MxMIDIPresenter: add members to match size

* MxEventPresenter: add members to match size

* MxLoopingFlcPresenter: add members to match size

* MxLoopingSmkPresenter: add members to match size

* MxLoopingMIDIPresenter: add check for size

* Implement MxObjectFactory::{MxObjectFactory,Create}

Matching of MxObjectFactory::Create is not good, because none of the other objects have been implemented.

* Implement a few MxPresenter methods

* Fix size of LegoInputManager

* Fix name of first padding member of legoinputmanager.h

* add DECOMP_SIZE_ASSERT macro

* Use DECOMP_SIZE_ASSERT macro + convert to hexadecimal

* fixed minor typos

---------

Co-authored-by: MattKC <34096995+itsmattkc@users.noreply.github.com>
Co-authored-by: itsmattkc <itsmattkc@gmail.com>
2023-07-02 00:00:28 -07:00
Cydra
07912eb05a
Class layout for LEGO1 classes (#43)
* Stubbed a bunch of classes and annotated them for later use. Heavily wip and more of pseudocode right now.

* Converted pseudocode into real code!

* Created a bunch more classes and added more information to exisiting ones
Did not error check, this was pushed just for reference

* More classes and implementation details. Still not checked for any errors

* Fixed code and decided on a way to handle virtual table stubs

* Some additional fixes

* More smaller fixes

* Added classes to project and made it compile

* Fixed function adresses that caused the python script to fail

* More classes and virtual function resolves. Builds and compares fine.

* Again more classes and virtual function resolves. Builds and compares fine.

* No clue, I guess forced update for line endings

* Finished up some work, compiles fine. All functions are STUB annotated to not pollute reccmp.py output.

* line ending change

* rename GetClassName/IsClass

Mirroring recent changes from master

* further conform to current master

* update project

* cleanup

* project only updates when you close msdev

---------

Co-authored-by: Cydra <cydra95@gmail.com>
Co-authored-by: itsmattkc <34096995+itsmattkc@users.noreply.github.com>
2023-06-29 01:10:08 -07:00