Commit graph

194 commits

Author SHA1 Message Date
Christian Semmler
9d01f67abb Merge remote-tracking branch 'isle/master' into mergeisle4 2025-04-06 08:36:09 -07:00
Christian Semmler
e9467864d8
Match LegoHideAnimPresenter::FUN_1006db60 ()
* Match `LegoHideAnimPresenter::FUN_1006db60`

* Remove comment
2025-03-16 22:57:23 +01:00
Christian Semmler
622f00f628 Merge remote-tracking branch 'isle/master' into mergeisle3 2025-03-14 13:59:52 -07:00
MS
d663e26321
Use MxGeometry header ()
* Use MxGeometry header

* Fix comment

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2025-03-11 21:13:13 -04:00
Christian Semmler
ea5a722311
Fix Matrix4::operator[] annotation () 2025-02-22 06:48:11 -07:00
Christian Semmler
44d131ad18
Merge from isledecomp/isle 2025-02-17 17:52:38 -07:00
jonschz
d88ab0a50a
Match Act2Brick::Create ()
Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2025-02-15 16:47:55 +01:00
Christian Semmler
00dee618c0 Merge remote-tracking branch 'isle/master' into mergeisle 2025-01-22 16:34:28 -07:00
MS
4db8b44ce0
Implement LegoCarBuildAnimPresenter::Serialize () 2025-01-20 21:43:24 -05:00
Christian Semmler
fc03e7a682
Improve order until legomain.cpp ()
* Fix `LegoBackgroundColor` order

* Order

* Improve order in Act3Actors

* Improve order

* Add BETA annotation

* Order more

* More order

* More order

* Order

* Match/order

* Remove blank line

* Modern compiler fix

* vtable annotation
2025-01-17 18:33:27 -07:00
Christian Semmler
e8c856c585
Order symbols in Act1State ()
* Order functions in `Act1State`

* Remove IsPresent

* Revert some stuff
2025-01-17 02:25:31 +01:00
Christian Semmler
70b0f76fa1
Move Read/Write functions to LegoStorage base class, match Act1State::Serialize ()
* Move Read/Write function to LegoStorage base class

* Proper const use for vector / BETA match

* Match `Act1State::Serialize`
2025-01-17 00:13:23 +01:00
Christian Semmler
83fb9f04a7
Merge remote-tracking branch 'isle/master' 2025-01-15 16:53:43 -07:00
Christian Semmler
77a3dc0795
Match Serialize functions to BETA10 ()
* Begin refactor Serialize functions

* Match more Serialize functions

* Match `LegoVehicleBuildState::Serialize`

* Match `LegoGameState::Username::Serialize`

* Match `LegoGameState::ScoreItem::Serialize`

* Match `LegoGameState::History::Serialize`

* Var name

* Var name

* Revert "Var name"

This reverts commit 1c0cccfba799450cfe4f75566dc1f32db1c76a6b.

* Add other Serialize implementations

* Add remaining Serialize implementations

* Add Read for char*

* Improvements
2025-01-16 00:52:29 +01:00
Christian Semmler
a31900a6d4 Merge remote-tracking branch 'isle/master' into isleupd 2025-01-06 16:15:16 -07:00
Christian Semmler
c54805fde8
Order functions in binary up to the end of Helicopter; refactor vector/matrix classes ()
* Order experimentation

* Revert IslePathActor

* Fix order

* Fix inlining

* Fixes

* WIP

* WIP

* Refactor

* Refactor

* Fix operators

* Remove obsolete inline keyword

* Fix ctors

* Refactor

* Rename files

* Refactor

* Remove empty line
2025-01-04 15:07:04 -07:00
Christian Semmler
e568740208
Merge remote-tracking branch 'isle/master' 2024-12-29 14:46:00 -07:00
Anonymous Maarten
c77b5869f5
Fix warnings triggered by isle-portable ()
* Replace computed constant with more readable computed constants

* LegoAnim::GetActorUnknown0x04 returns a number, not a pointer

* Add macro for creating RGB555 colors

* Texture pixel data is passed through as const data

* Compare palette index against 0 instead of NULL pointer

* warning: deleting 'void*' is undefined [-Wdelete-incomplete] warning

Some DirectX sdk's declars D3DRMIMAGE::buffer1 and D3DRMIMAGE::buffer2
as a void pointer.

* Don't use floats

* Fix wrong op

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-12-29 22:45:00 +01:00
Christian Semmler
795d6e144d
Match LegoPathActor::VTable0x8c ()
* Match `LegoPathActor::VTable0x8c`

* Fix
2024-12-29 20:46:03 +01:00
Anonymous Maarten
05cfe4ee25
Even more SDL usage ()
* Texture pixel data is passed through as const data

* Use SDL_Surface/SDL_Palette in LegoImage

* Use SDL_Process to run subprocess

* Pass SDL_Window handle to SDL_ShowSimpleMessageBox

this makes sure the message dialog is shown as modal dialog and is on top

* Log errors during initialization

* Show SDL error during initialization

* Include <climits> for INT_MAX

* Replace _access with SDL_GetPathInfo

* Use SDL_RemovePath instead of DeleteFile

* Use SDL_RenamePath instead of MoveFile

* Use MxS32 in legoutils.cpp

* Update LEGO1/lego/legoomni/src/common/legoutils.cpp

* Naming

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-12-28 16:52:34 +01:00
Christian Semmler
7d90befd05 Merge remote-tracking branch 'isle/master' into merge-isle-2 2024-12-27 10:48:38 -07:00
jonschz
70baf8cecc
Fix float constants and conversions ()
* Fix legoplants warnings, add BETA10 references

* Fix warnings in various header files, improve match

* Fix floats in legoactors.cpp

* Fix `legolocations.cpp`

* fix typo

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-12-25 21:01:00 +01:00
Christian Semmler
e54bfb5656 Merge remote-tracking branch 'isle/master' into isle-merge 2024-12-25 08:56:17 -07:00
Anonymous Maarten
bb4db6caac
Use SDL3 functions in more locations ()
* Use strcasecmp, strncasecmp, strlwr, strupr and itoa from SDL

* Use SDL_GetTicks instead of timeGetTime

* Use MxDSFile::OPEN_READ instead of OF_READ

* Use SDL_IOStream to read bitmaps

* Use SDL_LogXXX instead of OutputDebugString

* Undo mxvideoparam.h change

* Revert "Undo mxvideoparam.h change"

This reverts commit 4a20cf6c46.

* Fix _MxTrace

* Reapply "Undo mxvideoparam.h change"

This reverts commit b3a09dc520.

* fix _MxTrace

* Use __declspec(dllexport) for exporting symbols from dll

Refactored CMake script such that all objects are passed to the lego1 library.

* clang-format

* fix msvc build

* MSVC fixed for real now?

* Forgot about d3drm_guid

* Fix naming issue

* Use Uint64 in LegoCarBuild::Tickle for dTime
2024-12-24 18:04:46 -07:00
Christian Semmler
c2c9c75f1a
Fix Vector2/Vector3 order ()
* Fix Vector2/Vector3 order

* Refactor vector classes to be const and reference param consistent

* Add BETA10 annotations and fixes
2024-12-24 22:21:26 +01:00
Christian Semmler
7c41ff4569
Order compilation units according to retail, match and align Score class ()
* Initial changes for ordering, Score

* Add mxdebug

* Match `Score::Paint`

* Refactor

* Add BETA asserts

* BETA match
2024-12-24 19:38:15 +01:00
Christian Semmler
69bac21488 Merge remote-tracking branch 'isle/master' into merge 2024-12-23 09:38:55 -07:00
Christian Semmler
1b99d75543
Refactor geom library into geom and shape ()
* Refactor `geom` library into `geom` and `util`

* Rename to `shape`
2024-12-23 17:25:23 +01:00
Christian Semmler
cbc3d7227e
Implement/match LegoWEGEdge functions ()
* Implement/match `LegoWEGEdge::VTable0x04`

* Implement/match `LegoWEGEdge::FUN_1009aea0`

* Rename
2024-12-22 19:47:39 +01:00
Christian Semmler
e73f60e2c6
merge from isle/master 2024-12-20 11:54:06 -07:00
jonschz
7ed2ac9ccc
Progress on Helicopter::FUN_100042a0 ()
* Implement `LegoCameraController::FUN_100123b0`

* Improve `UnknownMx4DPointFloat::Unknown7` match, add BETA10

* Add draft for `FUN_100042a0`

* Improve match

* Match

* Use better naming

* Remove comments

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-12-20 01:27:14 +01:00
Christian Semmler
90c687bde0
Implement/match Act3Brickster::FUN_10042300 ()
* Implement/match `Act3Brickster::FUN_10042300`

* Add comment about assignment operator

* Add another comment

* Fix

* add back BETA annotation
2024-12-17 23:16:00 +01:00
Christian Semmler
f51b1867ee
Use SDL3 for filesystem access ()
* Use SDL IOStream in for MXIOINFO

* Use SDL IOStream for WDB file

* Use SDL IOStream for LegoStorage

* Update README.md

* Fixes

* Add names to skip.yml

* Add #include <stdio.h> where necessary
2024-12-16 22:25:52 +01:00
Christian Semmler
3b7e60bdc0
merge from isle/master 2024-12-15 11:59:19 -07:00
Christian Semmler
1b4142c6a9
Implement/match Write functions in LegoAnim class ()
* Implement/match `LegoAnim::Write`

* Implement remaining Write functions

* Bump total function count
2024-12-15 18:15:10 +01:00
Christian Semmler
47c0e1a037
merge from isle/master 2024-12-15 08:24:45 -07:00
jonschz
97ff27af9e
Implement/match LegoPlantManager::FUN_10026410 ()
* Implement/match  `LegoPlantManager::FUN_10026410`

* Full match on LEGO1 and BETA10

* Improve `LegoBuildingManager::FUN_10030630`

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-12-14 16:35:08 +01:00
jonschz
054f56fd9f
Implement Act2Actor::FUN_10019700 ()
Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-12-12 17:54:51 -07:00
Christian Semmler
894034f9cf
Implement/match WriteDefaultTexture () 2024-12-12 19:02:14 +01:00
jonschz
07def56326
Implement Act2Actor::VTable0x70 ()
* Implement draft of `Act2Actor::VTable0x70`

* Fix CI errors

* Implement `Act2Actor::FUN_100199f0`

* WIP: cleanup

* Address review comments

* Run formatter

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-12-09 22:05:08 +01:00
Christian Semmler
d22c4cd1f2
merge from isle/master 2024-12-07 10:17:25 -07:00
Christian Semmler
5be00e1799
Implement/match LegoPathCtrlEdge::FUN_10048c40 ()
* Implement/match LegoPathCtrlEdge::FUN_10048c40

* Improve matches
2024-12-07 17:58:51 +01:00
Christian Semmler
94ce89cbaa
(Proposal) Introduce arithmetic operators to Vector2 () 2024-12-07 17:26:22 +01:00
Christian Semmler
4d8098a6c2
Implement LegoPathController::FUN_10048310 ()
* WIP

* Rename

* Fix

* More WIP

* WIP

* WIP

* Fix

* Annotations

* Add more annotations, improve match

* Raise max functions
2024-12-06 20:50:40 +01:00
Christian Semmler
5ade193261
merge from isle/master 2024-11-29 15:27:01 -07:00
jonschz
83b85f26a7
Implement LegoAct2::Tickle() and others ()
* Implement `LegoAct2::Tickle()` and others

* Fix decomplint errors

* Minor cleanup

* Address review comments

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2024-11-25 23:24:46 +01:00
Christian Semmler
5f0575124f
Merge from isle/master 2024-11-24 08:01:05 -07:00
MS
816bfe842d
Use alias functions from Lego3DManager ()
* Mark LegoEntity:Destroy (many vtables use it)

* Starting addrs for Lego3DManager helpers

* Addrs for users of Lego3DManager and changes where needed
2024-11-23 20:37:24 -07:00
Christian Semmler
e56ac9ab55
Implement/match LegoBuildingManager::FUN_10030630 () 2024-11-22 23:08:23 +01:00
Christian Semmler
63fee4d11d
Implement/match LegoAnimNodeData::SetName () 2024-11-15 19:15:33 +01:00