Commit Graph

500 Commits

Author SHA1 Message Date
Christian Semmler
a052eb9cc3 Fix annotations 2023-12-12 14:49:56 -05:00
Christian Semmler
78e73b7c6e Merge branch 'master' into ncc 2023-12-12 14:30:22 -05:00
Christian Semmler
3b155bfe38
(Discussion/Proposals) Consistency regarding annotations of header-implemented functions (#316)
* Open discussion

* Move annotations of header-implemented functions back to `.h` files

* Adjust `README.md`

* Relocate annotation

* linter

* Comment markers in headers only, rename script, update github actions

* type hint compat

* Rename github action, better argparse for linter

* Type hints, working test for byname ignore

* Move annotation

* CI rename and enable warnfail, enforce mode always on

* Two step linting

* or one step

* continue on error

* two jobs instead

* Fixes

---------

Co-authored-by: disinvite <disinvite@users.noreply.github.com>
2023-12-12 20:27:17 +01:00
Christian Semmler
3620a8c31c
Update CONTRIBUTING.md 2023-12-12 17:58:40 +01:00
Christian Semmler
08b6301516 Update readme 2023-12-12 11:56:00 -05:00
Christian Semmler
2bad01018b Update readme 2023-12-12 11:53:01 -05:00
Christian Semmler
92468b92af Fix last issue 2023-12-12 11:46:43 -05:00
Christian Semmler
7ded9d0263 More fixes 2023-12-12 11:45:37 -05:00
Christian Semmler
71335281a2 More fixes 2023-12-12 11:17:52 -05:00
Christian Semmler
34b3d92696 More fixes 2023-12-12 11:06:39 -05:00
Christian Semmler
aed1d26f81 More fixes 2023-12-12 10:57:28 -05:00
Christian Semmler
13b5d95512 More fixes 2023-12-12 10:43:50 -05:00
Christian Semmler
78c37ada37 More fixes 2023-12-12 10:22:58 -05:00
Christian Semmler
e2bfeb6817 More fixes 2023-12-12 10:05:07 -05:00
Christian Semmler
9dc982f901 Update rules, fixes 2023-12-12 09:47:06 -05:00
Christian Semmler
a134a8b9e6 Fix more vtables 2023-12-12 06:32:33 -05:00
Christian Semmler
a9016e9811 Fix some vtables 2023-12-12 06:30:54 -05:00
Christian Semmler
d11973eadd Fix some parameters 2023-12-12 06:29:33 -05:00
Christian Semmler
f285ad6c2c Add missing offset 2023-12-12 06:23:28 -05:00
Christian Semmler
adac675cec Allow 4 digits for relative hex 2023-12-12 06:20:52 -05:00
Christian Semmler
21d33bdb0a Fix m_unk0x pattern 2023-12-12 06:19:58 -05:00
Christian Semmler
d511461bb0 Fix MxParam p 2023-12-12 06:15:58 -05:00
Christian Semmler
acd6d119a3 Fix name parameter 2023-12-12 06:10:15 -05:00
Christian Semmler
9e918a5786 Update styles 2023-12-12 06:04:00 -05:00
Christian Semmler
7083852a1f Fix style 2023-12-12 05:52:47 -05:00
Christian Semmler
5d671a3eda Add more rules 2023-12-12 05:47:25 -05:00
Christian Semmler
1a66196f71 Update style 2023-12-12 04:48:52 -05:00
Christian Semmler
47835f6c57 Update style 2023-12-12 04:48:36 -05:00
Christian Semmler
b340748991 Add include path 2023-12-12 04:35:07 -05:00
Christian Semmler
7fac20616b Merge branch 'master' into ncc 2023-12-12 04:32:36 -05:00
Christian Semmler
4dd0d60dec
Implement/match more of MxCompositePresenter (#315)
* Implement/match more of MxCompositePresenter

* Use parameter to `DeleteAll` instead of separate function

* StartAction match
2023-12-11 16:35:50 -05:00
Christian Semmler
a7194266b3
Refactor utility/decomp headers (#318) 2023-12-11 16:33:46 -05:00
Misha
3b30607337
implement a few mxstreamercontroller vtables (#323)
* implement a few mxstreamercontroller vtables

* Update mxstreamcontroller.cpp
2023-12-11 16:17:25 -05:00
Christian Semmler
5bfdabfc42 Try this 2023-12-11 13:14:22 -05:00
Christian Semmler
141353d996 Try this 2023-12-11 13:11:31 -05:00
Christian Semmler
cc4fbaa5c3 Try this 2023-12-11 13:09:22 -05:00
Christian Semmler
2323da5e3d Try this 2023-12-11 13:07:00 -05:00
Christian Semmler
f02af86ba6 Fixes 2023-12-11 13:03:56 -05:00
Christian Semmler
48e1807fb9 Add symlink 2023-12-11 12:56:23 -05:00
Christian Semmler
cc842f281b Add ncc tool 2023-12-11 12:53:28 -05:00
Christian Semmler
02aaf1533f
Increased ISLE accuracy (#319)
* Improve WndProc accuracy

* Another accuracy fix for `WndProc`
2023-12-09 18:49:13 +01:00
Christian Semmler
7a0558f99d
Use better approximation for total function count 2023-12-08 07:28:25 -05:00
Christian Semmler
2a16a508a5
(Proposal) Use alternative C4786 warning suppression (#312)
* Use alternative warning suppression

* Remove newline

* Fix script

* Patch C2.EXE to disable C4786 warning

* Delete compile.cmd

* py-fixes

* Update tools/patch_c2.py

* Update tools/patch_c2.py

---------

Co-authored-by: Anonymous Maarten <anonymous.maarten@gmail.com>
Co-authored-by: Anonymous Maarten <madebr@users.noreply.github.com>
2023-12-08 06:37:44 -05:00
MS
ce686705f2
Refactor MxList cursors (#313)
* LegoWorldList

* Refactor list cursors

* Add decomp markers for list cursors

* Fix decomp markers

* MxRegionListCursor edit to prevent accuracy drop

* Better fix for MxRegionListCursor
2023-12-07 14:14:49 -05:00
MS
f87c96f1bb
Out of order report fix (#317) 2023-12-07 16:14:02 +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
Mark Langen
260772e374
Bootstrap decomp of Tgl rendering library (#293)
* Bootstrap decomp of D3DRM rendering code

* This PR kicks off work on decompiling the D3D Retained Mode (D3DRM)
  rendering part of the codebase.

* High level overview:

* There is a base IMxDirect3DRMObject class which all of the D3DRM
  rendering objects inherit from. Its only virtual method is one to get
  the underlying object handle.

* A hierarchy of abstract classes inherits from this base class, which
  I've called "IMxDirect3DRM<class>". These classes only have pure
  virtual methods on them and don't contain any data.

* Each one of the abstract classes has exactly one concrete
  implementation, which I've called "MxDirect3DRM<class>". These classes
  have exactly one piece of data, which is a pointer to the underlying
  D3D Retained Mode object.

* If the classes need to store additional data, they store it in a
  userdata blob which is attached to the D3DRM object rather than the
  additional data being stored in the class itself.

* I've worked out about twice this many classes related to D3DRM
  rendering so far but the PR was getting large enough as is, so I'm
  cutting it here for now.

* I decomped sufficiently many methods of these classe to convince
  myself that the above observations are correct. About 60% of the
  decomped methods here are perfect matches, including at least one
  non-trivial method per class.

* Formatting

* Restructure changes using Tgl naming / details

* Restructure the changes to use the naming that we know from Tgl.

* Fill in some parts of the implementation I couldn't initially figure
  out using the details from Tgl (got more 100% matches).

* Move d3drm link requirement

* Fixups FloatMatrix -> FloatMatrix4

* Fix order

* Full fix for ordering problems

* Put back accidentally removed include.

* Fix call which should have been Release

* Use new and delete for DeepClone

* Missing Tgl:: on CreateRenderer

* Revert change to bool return value.

* Rename Something -> Unk

* Return paramter naming convention to what Tgl used

* Add scalar ddtor to verify inline destructor

* Fix order

* Change malloc/free -> new/delete in Tgl

* Remove duplicate destructor.

* Check all inline destructors

* Fix dtor comments

* Third time's the charm

* Alphabetical sort

* Decomp adjustments

* Add d3drm files to clang-format

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-12-07 13:10:42 +01:00
Christian Semmler
8bf0bde6b9
Bootstrap MxCompositePresenter (#310)
* Bootstrap MxCompositePresenter

* Remove MxUnkList

* Use TickleState_Idle

* Add all annotations

* Add vtable

* Add Notify

* Update mxcompositepresenter.h

* Remove extra TEMPLATE

* Update mxcompositepresenter.cpp
2023-12-07 13:06:44 +01:00
MS
b46801a774
Read section info from PE header (#311)
* Read section info from PE header

* Remove the need for textraw and textvirt members

* typo
2023-12-06 20:30:09 +01:00
Christian Semmler
a7b81539b1
Match MxBitmap::ImportColorsToPalette 2023-12-06 08:29:24 -05:00