Commit Graph

259 Commits

Author SHA1 Message Date
Joshua Peisach
7a0e00ea5e
Name MxBitmap vtable functions 2023-08-25 21:28:18 -04:00
Joshua Peisach
fba0e50903
Match MxBitmap vtable14, down to reg swap.
Maybe some import function?
2023-08-25 16:09:29 -04:00
Joshua Peisach
81a052e625
Start vtable14 2023-08-25 13:52:32 -04:00
Joshua Peisach
d00caaa698
Reorder variable placement in CreatePalette 2023-08-22 19:29:04 -04:00
Joshua Peisach
930e3338c9
Match LoadFile
YEGYEEHEEHEHEHEHEHE3 YES THIS IS FINALLY DONE OMFG
2023-08-22 14:12:18 -04:00
Joshua Peisach
f2642c62c7
Merge pull request #7 from foxtacles/mxbitmap-create
Match MxBitmap::CreatePalette
2023-08-22 12:36:09 -04:00
Christian Semmler
ee5abc67bd Match MxBitmap::CreatePalette 2023-08-20 07:49:16 -04:00
Joshua Peisach
6579b3fb4b
Merge branch 'isledecomp:master' into mxbitmap-vtable 2023-08-18 16:42:52 -04:00
Joshua Peisach
6542c09754
Define types for the bit depth
That boolean is not really a boolean, its just a variable to store
the bit depth as some DWORD. 0 = 256 color, 1 = High Color (16-bit).
2023-08-18 16:38:56 -04:00
Joshua Peisach
7c4551effe
CreatePalette - Use MxResult to track success 2023-08-18 15:44:49 -04:00
Christian Semmler
28f961b86d
Add MxDSAnim, MxDSEvent, MxDSObjectAction, MxDSStill (#112)
* Add MxDSAnim

* Add MxDSEvent, MxDSObjectAction, MxDSStill
2023-08-16 16:38:26 -07:00
Christian Semmler
4a2226181c
Implement MxDSStreamingAction (#108)
* Implement MxDSStreamingAction

* Add remaining functions

* Use inline assignment operators
2023-08-16 15:02:26 -07:00
Christian Semmler
51ac526f8a
Add MxDSSound (#111) 2023-08-16 10:15:59 -07:00
MS
bb0d5be921
Implement MxAtomId and reference counter (stl set) (#109)
* Implement MxAtomId and reference counter (stl set)
* Partial success in hiding 4786 warning spam.
* Build out most of MxOmni::Destroy since it also touches the set

* Add some size asserts
2023-08-16 10:09:44 -07:00
Joshua Peisach
4785766702
use MxResult return types 2023-08-15 21:51:21 -04:00
Joshua Peisach
572d417ce4
Merge pull request #6 from disinvite/mxbitmap
Match vtable1c and vtable3c
2023-08-15 21:30:29 -04:00
disinvite
b1ac75e329 Match vtable1c and vtable3c 2023-08-15 17:16:42 -04:00
Joshua Peisach
3ca410781a
Merge pull request #5 from disinvite/mxbitmap 2023-08-15 12:52:21 -04:00
disinvite
9184b284d1 A few things for MxBitmap
* new struct MxBITMAPINFO
* vtable18 and ImportPalette 100%
* ImportColorsToPalette improvement
2023-08-15 12:38:51 -04:00
MS
75c1276292
Skip upload step for forks (#110) 2023-08-14 16:03:30 -07:00
Joshua Peisach
95bb105817
likely malloc is an operator new 2023-08-13 19:30:19 -04:00
Joshua Peisach
dd318a3295
Cleanup while i keep getting bored of matching these functions that wont match 2023-08-13 19:26:16 -04:00
pewpew
87938e9b0e
Add modified mxstl.h (#107) 2023-08-12 10:32:43 -07:00
Joshua Peisach
35b2cc3572
yolo vtable38 (I can't test the build atm)
I moved up ImportColorsToPalette so other functions, including this one can use it
2023-08-11 15:27:40 -04:00
Joshua Peisach
3729b879d3
Merge branch 'isledecomp:master' into mxbitmap-vtable 2023-08-11 10:51:45 -04:00
Christian Semmler
4e0149361e
Implement MxDSAction (#106) 2023-08-10 10:57:53 -07:00
Christian Semmler
a02e07c4d7
Implement MxDSAction::AppendData (#105)
* Implement MxDSAction::ConcatData

* use GLOBAL

* Update mxdsaction.cpp

* Update mxdsaction.h

* Move TWOCC/FOURCC to common header file

* Fix

* Fix deletes
2023-08-10 10:57:19 -07:00
Christian Semmler
88bfb3c419
Match MxDSAction::CopyFrom (#104)
* Match MxDSAction::CopyFrom

* Fix src/dest

* Update mxvector.h

* Update mxvector.h

* Update mxvector.h

* Update mxdsaction.cpp
2023-08-09 16:48:49 -07:00
Christian Semmler
bd9dca0d3f
Implement most of MxDSAction (#103)
* Implement most of MxDSAction

* Update mxdsaction.h

* Update mxdsobject.cpp
2023-08-08 19:38:07 -07:00
Christian Semmler
d41b7f2ca4
Add GetDeviceModeFinder to WndProc (#102) 2023-08-06 13:26:14 -07:00
itsmattkc
b59d8ef5cf include directx 5 sdk
This is almost certainly abandonware, fairly small (<1MB), and is going to save us a lot of dev environment headaches
2023-08-06 12:47:16 -07:00
itsmattkc
67816d5213 disable "nonstandard extension used 'bool'" warning spam
In newer versions of MSVC, this could have been achieved with /wd4237, however 4.2 doesn't have this option, it only seems to have the pragma. Ah well.
2023-08-06 10:52:37 -07:00
Christian Semmler
c48fc69cf3
Implement/match MxDSAction constructor (#101)
* Implement MxDSAction constructor

* Update mxdsaction.cpp
2023-08-06 10:39:22 -07:00
MS
71950cd40a
lego1: MxVariableTable (#87)
* MxStringVariable -> MxVariable

* cursor test

* GetVariable to 100

* meh

* node insert inline

* move to header file

* use reference to match available code

* variable table init in mxomni, some reshuffling
2023-08-03 17:13:41 -07:00
Joshua Peisach
b6ada8f46c
Small implementations in MxEntity/MxEventManager (#96)
* Small implementations in MxEntity/MxEventManager

* Cleanup

* Update LEGO1/mxentity.cpp

---------

Co-authored-by: MattKC <34096995+itsmattkc@users.noreply.github.com>
2023-08-03 16:43:36 -07:00
Joshua Peisach
dc585c7f61
MxBackgroundAudioManager (#97)
* Start MxBackgroundAudioManager

* Match MxBackgroundAudioManager constructor. This took WAY too much time.

* add size assert

* improve readability of MxBackgroundAudioManager::Enable

While the previous iteration wasn't incorrect, it definitely reads like pseudocode (i.e. it's very unlikely any actual developers would have written that). This is much more readable/likely to have been written and still results in the same asm.

---------

Co-authored-by: itsmattkc <34096995+itsmattkc@users.noreply.github.com>
2023-08-03 11:42:12 -07:00
Mark Langen
694045abd8
Implement MxVector2/3/4 and MxMatrix (#100)
* All of the MxVectors share an inheritance chain. MxVector4 inherits
  from MxVector3 which inherits from MxVector2.

* They all operate on a shared `float*` data member which points to the
  underlying storage.

* There are also MxVector3/4Data classes, which inherit from Vector3/4,
  but add concrete storage for the Vector data rather than just an
  abstract data pointer.

* The same is true for MxMatrix, with there being an abstract and a
  concrete variant of it.

* Also improve reccmp.py register matching algorithm. It previously
  could not recognize an effective match when a swap had to take place
  between two registers used on the same line. It turns out this happens
  a lot in floating point math code so I adjusted the implementation to
  break the disassembly lines on spaces rather than just linebreaks
  allowing the existing effective match code to handle that case too.
2023-08-03 11:25:29 -07:00
itsmattkc
ee7c419be8 fix the pizza conflict
Sounds like an episode of a neo-noir TV show
2023-08-03 11:21:05 -07:00
pewpew
0f92e345b3
MxTickleManager mostly done (#94)
* Checkpoint to show MxTickleManager::SetClientTickleInterval match.

* Match MxTickleManager::~MxTickleManager, obliterate MxTickleManager::SetClientTickleInterval.

* Make conditional more realistic, move MxTime to mxtypes.h, add TODO for MxTickleManager::Tickle.
2023-08-03 11:19:05 -07:00
Christian Semmler
932baa2a87
lego1: Add MxDisplaySurface class members and some functions (#95)
* Add MxDisplaySurface class members and some functions

* Add size assert

* style
2023-08-03 11:13:27 -07:00
Joshua Peisach
ff13dc691c
Start IslePathActor (#93)
* Start IslePathActor

* Update types/add needed type in LegoPathActor for Pizza

Yes, this is a recommit because last time I pushed my cmake dir

* Fix types in  islepathactor

* Adjust variables

* add size asserts

---------

Co-authored-by: itsmattkc <34096995+itsmattkc@users.noreply.github.com>
2023-08-03 11:10:54 -07:00
Joshua Peisach
e75d57f43f
Don’t include class name in method declaration 2023-08-03 13:46:41 -04:00
Roman Masanin
db2b98c248
MxDirectDraw functions and structures (#33)
* MxDirectDraw functions and structures

* fix indents, and globals

* fix build, add mxdirectdraw build configuration

* add new files to cmake

* MxDirectDraw: Add code from my PR #19 on main repo

Merging in the missing functions from my pull request for MxDirectDraw on the main repo. Credit to @foxtacles for the GetPrimaryBitDepth function. All match 100% on reccmp except ErrorToString, but the problem there is with the jump table at the end.

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

* improve match

* improve accuracy

* improve accuracy

* move _countof, impove up to 96.90%

* Update LEGO1/mxdirectdraw.h

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

* Update LEGO1/mxdirectdraw.cpp

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

* Update LEGO1/mxdirectdraw.cpp

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

* Update LEGO1/mxdirectdraw.cpp

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

* Update LEGO1/mxdirectdraw.cpp

* Update LEGO1/mxdirectdraw.cpp

---------

Co-authored-by: itsmattkc <34096995+itsmattkc@users.noreply.github.com>
Co-authored-by: disinvite <disinvite@users.noreply.github.com>
Co-authored-by: Christian Semmler <mail@csemmler.com>
2023-08-03 10:09:22 -07:00
Joshua Peisach
ac89815663
🍕 (#79)
* start pizza

* Add some pizza vtable functions (they are stubs at the moment)

Unknown parameter types, likely either Pizzeria or PizzaMissionState.

* Pizza: Add/update functions as according to MxCore inheritance

IsleActor::Notify needs to be stubbed
---------

Co-authored-by: Kai Kaufman <ktkaufman@wpi.edu>

* match pizza destructor

* Update pizza members

* add size asserts

---------

Co-authored-by: Kai Kaufman <ktkaufman@wpi.edu>
Co-authored-by: itsmattkc <34096995+itsmattkc@users.noreply.github.com>
2023-08-03 09:54:08 -07:00
Joshua Peisach
db2a93b534
Begin work on FUN_100bd450 (ImportColorsToPalette)
This took a lot of time, finally I got a good understanding of it.

Primarily what's left now is the loop
https://hackmd.io/@KsNMFSBHTO2gxDyRIPRQ1g/H1LCVQXon
2023-07-29 21:13:34 -04:00
Joshua Peisach
0223d8fb50
Cleanup MxBitmap::LoadFile 2023-07-29 16:52:54 -04:00
Joshua Peisach
c5f7a4df28
if you want to do more of vtable18 have fun 2023-07-29 16:29:49 -04:00
Joshua Peisach
9ef1f3543b
Got vtable18 into a better state
It's progress doesn't affect the status of CopyColorData, which is
back at 100%, as it makes sense the loop is a memcpy
2023-07-29 15:38:54 -04:00
Joshua Peisach
8206a7be6a
Implement MxBitmap::vtable18 2023-07-28 22:15:26 -04:00
Joshua Peisach
74013e8956
getting closer 2023-07-28 21:46:36 -04:00