Commit graph

22 commits

Author SHA1 Message Date
Christian Semmler
71ed20bf11
Implement/match rest of MxSmkPresenter (#345)
* Implement/match rest of MxSmkPresenter

* Fix include guard

* Update mxregion.cpp

* Match MxRegion::VTable0x18

* Fix

* Fix matches

* Remove class name
2023-12-21 16:52:42 +01: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
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 d87d665127fae7dd6e5bd48d9af14a0a829bf9e2.

* Revert "FUNCTION to SYNTHETIC where needed"

This reverts commit 8c815418d261ba8c5f67a9a2cae349fe4ac92db8.

* 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
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
b449da1fa3
Introduce clang-format (#240) 2023-10-25 01:38:27 +02:00
Christian Semmler
476af22b36
Add size assert for MxVideoManager, sort functions 2023-10-17 09:16:37 -04:00
Christian Semmler
727c748ecd
Implement/match MxVideoManager::InvalidateRect and UpdateRegion (#214)
* Implement/match MxVideoManager::InvalidateRect and UpdateRegion

* Update comment
2023-10-16 16:20:52 -07: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
Christian Semmler
0580b2870c
Use MxResult for RealizePalette 2023-10-14 15:31:30 -04:00
Christian Semmler
e4f87ad7dd
Implement MxVideoManager::vtable0x28 and Create (#208)
* MxVideoManager::Destroy / destructor

* Consistency

* Add missing override

* Implement MxVideoManager::vtable28

* Implement vtable2c

* Rename to Create
2023-10-14 21:33:11 +02:00
Christian Semmler
5ddfaab9e7
Implement MxVideoManager::Destroy / destructor (#207)
* MxVideoManager::Destroy / destructor

* Consistency

* Add missing override
2023-10-14 11:46:00 -07:00
Misha
62b97b8f1f
Implement MxOmni::Create (#182)
* implement mxomni::create, and match MxStreamController::Open

* Use enum for mxparam type

* Fix return type

* Match MxOmni::Notify

* Remove unused variable

* Added override keywords

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-10-07 20:05:45 +02:00
Christian Semmler
b4258da0f5
MxLong Tickle() -> MxResult Tickle() (#135)
* MxLong Tickle() -> MxResult Tickle()

* Remove garbage

* Fix implementations
2023-09-21 11:51:24 -07:00
Christian Semmler
d145f914c4
Implement/match MxVideoManager::Tickle (#128)
* Implement/match MxPresenter::StartAction

* Update mxpoint32.h

* Implement/match MxVideoManager::Tickle

* Update mxlist.h

* Update mxpresenter.cpp
2023-09-19 20:00:34 -07:00
Christian Semmler
fa5417f58a
lego1: match MxVideoManager::RealizePalette (#92)
* Match MxVideoManager::RealizePalette

* Rename class

* Name some functions
2023-07-21 18:28:13 -07:00
Joshua Peisach
f8b1995a83
LEGO1: MxPalette (#56)
* MxPalette - add missing member variables, Detach function

* mb

* MxPalette: give bob the builder his constructor

* push progress, gn

* avoid hexadecimal

Co-authored-by: Anonymous Maarten <madebr@users.noreply.github.com>

* fix MxPalette::GetDefaultPalette

Co-authored-by: Anonymous Maarten <madebr@users.noreply.github.com>

* aaaaaaaaaaaaaa

* Revert "fix MxPalette::GetDefaultPalette"

This reverts commit 63f2215737d3bcd286f67dcf1a04fdf8a234d41b.

* Implement MxPalette::Clone (doesn't match)

* fix MxPalette structure and match ctor/dtor

* Matching progress for MxPalette::GetDefaultPalette

* Implement ApplySystemEntriesToPalette except the memcpy calls

* implement SetSkyColor (doesn't match)

* Use MxTypes instead of generics

* prefer decimal values than hex for m_entries

* Update mxpalette.cpp

* Push MxPalette progress - read comments in code.

* improved MxPalette::operator==, will be 100% when MSVC feels like making it so

* improved MxPalette::SetSkyColor, will be 100% when MSVC feels like making it so

* improved MxPalette::Clone, will be 100% when MSVC feels like making it so

* Fixes

- reordered the functions in order of where they are in the hex because recmp.py sometimes kept saying it couldn't find the symbol (??)
- clone returns a pointer, not a ref
- worked a bit on setpalette/applysysentriestopalette

* Match GetDefaultPalette a bit more

* fix: MxPalette::GetDefaultPalette is now 100% matching

* fix: MxPalette::ApplySystemEntriesToPalette is now 100% matching

* tidy: rename `DC` var in GetDefaultPalette to `hdc`

* fix: MxPalette::SetPalette is now functionally matching

Not assembly matching yet because of MSVC weirdness.
At some point it will probably start matching, because
the structure seems to be accurate.

* fix: MxPalette rgbquad ctor functionally matches

Not quite ASM matching yet because of weird
register allocation mismatches.

* fix: I forgot to commit mxpalette.h...

* tidy: use Mx* primitives instead of builtins

* refactor: remove MxPalette::FromBitmapPalette

* fix: call ApplySystemEntriesToPalette from MxPalette(const RGBQUAD *)

* rename MxPalette::SetPalette to MxPalette::SetEntries

* fix: I once again forgot to commit mxpalette.h...

* feat: add/match MxPalette::Reset [0x100BF490]

* fix: add MVideoManager() to mxomni header

* refactor: change unk50 in MxVideoManager to LPDIRECTDRAW

* feat: add/match MxPalette::CreateNativePalette [0x100BF000]

* fix: MxPalette::SetSkyColor is 100% matching

* Annotate MxPalette members' offsets

* Annotate the global default aplette

* use hex size

* remove unnecessary variable offset listing

* Update LEGO1/mxpalette.cpp

---------

Co-authored-by: Anonymous Maarten <madebr@users.noreply.github.com>
Co-authored-by: Christian Semmler <mail@csemmler.com>
Co-authored-by: ktkaufman03 <ktkaufman@wpi.edu>
Co-authored-by: MattKC <34096995+itsmattkc@users.noreply.github.com>
2023-07-15 22:51:24 -07:00
MattKC
e16249b672
Define MxLong/MxULong (#71)
* define MxLong/MxULong

The "long" type has different sizes on different platforms, and this may cause issues.

* use DWORD to match RegQueryValueExA arg
2023-07-02 01:05:49 -07:00
itsmattkc
4c9e138cbf implement all DLL exports (as TODOs)
Now we can use our own compiled LEGO1.LIB rather than one generated from the original. Also implements a script that tests them to help ensure future commits don't break them.
2023-06-30 11:34:39 -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
itsmattkc
e7b5ea53df rename GetClassName/IsClass, declare mxtypes
Was intended as a simple code improvement, however it also seems to make WinMain, MxString::operator=, MxDSFile::Open 100% (all of which just needed registers to be switched around)
2023-06-27 19:04:07 -07:00
Christian Semmler
24ec7023bd
isle: match WndProc and re-arrange functions in ISLE.EXE (#45)
* match WinProc

* minor accuracy improvement

* WndProc at 50%

* fix WM_DISPLAYCHANGE branching

* fix type

* fix x/y comparison

* WndProc 82%

* 84%

* 97%

* rearrange functions to get close to the original

* remove newline

* inline no longer necessary

* merge
2023-06-27 13:07:29 -07:00
Christian Semmler
64d2b9e02b
lego: implement SetControlMax and related partials (MxVideoManager, MxPalette, MxUnknown100dc6b0) (#42)
* lego: implement LegoNavController::SetControlMax and related

* use MxResult

* fix name
2023-06-24 10:09:46 -07:00