fixes an issue when stew blaster would stop for non-players and would stand still permanently due to enemy hitboxes being removed. Tested that stewblaster only stops for players and starts moving when there are no players in the vicinity
* remove goto
* Update MovementAIComponent.cpp
* convert to PathWaypoint
Easier for usage with paths
* add path parsing
* ref removal, simplification of work
* it works
* Update MovementAIComponent.cpp
* disable pathing for combat
we just need it for npcs for now, combat ai can be done later
* fixed stuttery enemies
wow
* start at ramped up speed
* add pausing and resuming
* Update MovementAIComponent.cpp
* Update MovementAIComponent.h
* Update CMakeLists.txt
Tested that players show up as normal on each others screens, tested that money magnet still works with item 8600, tested that gravity still works in Moon Base.
* add movement ai skeleton
Zone loading code is tested to load and read the correct values using logs. other ldf data is unaffected as I walked around crux and dragons/apes can still spawn and be killed.
* format
* Assorted pet improvements
* remove unecessary include
* updates to address some feedback
* fixed database code for testing
* messinng around with tables
* updated to address feedback
* fix world hang
* Remove at() in CDLootTableTable.cpp
* Uncapitalize LOT variable
* Uncapitalize LOT variable
* fix: more include changes
* fix: remove dZoneManager from global include
* fix: dDatabase
* fix: dCommon
* fix: object libs
* fix: rebase
* fix: bcrypt
* wip: try simplified connector build
* fix: update dockerfile
* fix: mariadb C/C++ on apple
* feat: Move scripts to CMAKE_MODULE_PATH
* fix: dPropertyBehaviors
* fix: macos?
* fix: Dockerfile
* fix: macos?
* fix: macos?
* fix: macos?
* fix: macos?
* fix: macos?
* try: install_name_tool
* fix not building on unix
* fix include paths
* Remove code changes
Will fix in another PR.
* format pass
remove 2 more included directories.
remove commented out code
add status to messages
* comments and format
surround include directories with quotes
remove commented out code
remove debug messages
* Update CMakeLists.txt
---------
Co-authored-by: David Markowitz <EmosewaMC@gmail.com>
Co-authored-by: David Markowitz <39972741+EmosewaMC@users.noreply.github.com>
* feat: move all ldf config to be in xml
cleanup dev-tribute.xml
add comments to atm.xml
remove custom script tag in favor of ldfconfig for it
* replace sto* calls with tryParse's
* remove unesessary .has_value() calls and check for null_lot
* remove member variable naming that on on-member vars
* move max's vendor inventory to be configurable via vanity
* Consolidate triplecated vendor code
* don't write name if one is not given
* Updates to vanity xml's and demo for later docs
* rename vars
* fix serialization
Was incorrect before. The only flags are if any data in the FrameStats has changed, you write them again. Velocities also do not use dirty flags for their values, they use a flag to determine if their velocity if zero or non-zero. if any velocity changes, re-write FrameStats.
Tested that 2 players can see each other move as before, enemies move as before and players racing is identical as before.
* Update HavokVehiclePhysicsComponent.cpp
Speed is used in more waypoints than not so we may as well reduce repeated references.
tested that the data is still loaded as normal in avant gardens
Update Zone.cpp
* Groundwork
* movie buying logic out of gm handler
make transaction result more useful
* Full implementation
Cleanup and fix some calls in gamemessages
* Load the component in the entity
Patch Auth
* new line at eof
* cache lookups
* remove sort
* fix includes
* EntityManager: ranges and cleanup
Use LWOOBJID for ghosting entities
use ranges::views::values for associative container iteration
remove dead code
comment magic numbers
little bit of optimization (not enough to be game changing or take the time to measure, they are free speedups anyways, we take those)
use cstdint types
* use size_t
* use lwoobjid for ghost candidate
* Moved unrelated changes out of the TryParse PR branch
* const correctness and cstdint type usage
* removing a few "== nullptr"
* amf constexpr, const-correctness, and attrib tagging
* update to account for feedback
* Fixing accidentally included header and hopefully fixing the MacOS issue too
* try reordering the amf3 specializations to fix the MacOS issue again
* Amf3 template class member func instantiation fix
* try including only on macos
* Using if constexpr rather than specialization
* Trying a different solution for the instantiation problem
* Remove #include "dPlatforms.h"
* Changed how the TryParse function works (and also did some general cleanup along the way)
* Update noexcept attributes (verified these are correct)
* Add fp overload for MacOS functionality
* resolving some feedback
* Split out unrelated changes to CleanupRoundup branch
* Update in response to feedback
* the consequences of emo's member variable renaming request
* Revert "the consequences of emo's member variable renaming request"
This reverts commit bf318caeda.
* Fully revert renaming attempt
* Revert "the consequences of emo's member variable renaming request"
This reverts commit bf318caeda.
Fully revert renaming attempt
* Created ClientVersion.h and moved the client version defaults to it
* Fix partial parsing and MacOS floating point errors
* attempting fix to MacOS compiler error
* syntax pass (should be the last commit unless the CI fails)
* ah, wait, forgot to uncomment the preprocessor statements for MacOS. THIS should be the last commit pending CI
* Okay, one last thing I noticed: We were including C headers here. Now they're C++ headers. Pinky swear this is it!
* typo and I am OCD. please let this be the last
* hash is usally but not always noexcept, so the specifier should go
* Address MOST of the feedback
* address the claim codes issue
* Move CDClientManager to be a namespace
Tested that worlds still load data as expected. Had no use being a singleton anyways.
* Move cdclient data storage to tu local containers
Allows some data from these containers to be saved on object by reference instead of always needing to copy.
iteration 2
- move all unnamed namespace containers to a singular spot
- use macro for template specialization and variable declaration
- use templates to allow for as little copy paste of types and functions as possible
* remember to use typename!
compiler believes T::StorageType is accessing a member, not a type.
* Update CDClientManager.cpp
* move to cpp?
* SystemAddress and destructor
* move respawn logic to character comp
Tested that respawn pos and rot can be set as per previously by crossing a respawn point and smashing to see if I would respawn at the new place.
* Move loot cheat checking
* Remove GetParentUser overload
Tested completing missions
control behaviors
collecting life crate
completing a bunch of missions using macros
loading into worlds
brick-by-brick
placing models
digging the x spot in gnarled forest
can still ban and mute players
cheat detection is still doing its thing
flags are still set (checked with flag 45)
claim codes still work (created new char, checked the lego club mail was there)
* Move player constructor logic
Its now at the bottom of Entity constructor. Time to remove Player
* Remove Player class
Removes the Player class. Tested that I can still login and see another player in Venture Explorer and logging out a few times still works as well as smashing enemies
* store ptr
* Update SlashCommandHandler.cpp
* Update a few components to use smart pointers for memory management
* 'final' keyword added to classes
* removed duplicate 'const'
* removed unused code
* Updated render component to store effects directly in a vector
* Use move instead of copy
* make pointers const
* attribute tags
* nitpicking
* delete default effect constructor
* Added a vector size check to the RemoveEffect() function
* use empty() instead of size()
* allow usage of NiPoint3 and NiQuaternion in constexpr context
* removed .cpp files entirely
* moving circular dependency circumvention stuff to an .inl file
* real world usage!!!!!
* reverting weird branch cross-pollination
* removing more weird branch cross-pollination
* remove comment
* added inverse header guard to inl file
* Update NiPoint3.inl
* trying different constructor syntax
* reorganize into .inl files for readability
* uncomment include
* moved non-constexpr definitions to cpp file
* moved static definitions back to inl files
* testing fix
* moved constants into seperate namespace
* Undo change in build-and-test.yml
* nodiscard
Removes the singleton inheritance from dpWorld.
Tested that crux prime, nimbus station, avant gardens and nexus tower still use navmeshes and physics and that physics volumes are still collided with.
* Moving and organizing Player code
- Move code to CharacterComponent
- Remove extraneous interfaces
- Simplify some code greatly
- Change some types to return and take in const ref (only structs larger than 8 bytes benefit from this change.)
- Update code to use CharacterComponent for sending to zone instead of Player*.
* Moving and organizing Player code
- Move code to CharacterComponent
- Remove extraneous interfaces
- Simplify some code greatly
- Change some types to return and take in const ref (only structs larger than 8 bytes benefit from this change.)
- Update code to use CharacterComponent for sending to zone instead of Player*.
- Remove static storage container (static containers can be destroyed before exit/terminate handler executes)
* remove player cast
* Remove extra includes
* Add a player manager
Used for the static Player functions. Further removes stuff from the Player class/file.
* chore: Move ghosting functionality to component
Tested that ghosting still works and players are still firing off the OnPlayerLeave and relevant handlers.
* move to unordered_set
* Moving and organizing Player code
- Move code to CharacterComponent
- Remove extraneous interfaces
- Simplify some code greatly
- Change some types to return and take in const ref (only structs larger than 8 bytes benefit from this change.)
- Update code to use CharacterComponent for sending to zone instead of Player*.
* Moving and organizing Player code
- Move code to CharacterComponent
- Remove extraneous interfaces
- Simplify some code greatly
- Change some types to return and take in const ref (only structs larger than 8 bytes benefit from this change.)
- Update code to use CharacterComponent for sending to zone instead of Player*.
- Remove static storage container (static containers can be destroyed before exit/terminate handler executes)
* remove player cast
* Remove extra includes
* Add a player manager
Used for the static Player functions. Further removes stuff from the Player class/file.
* Moving and organizing Player code
- Move code to CharacterComponent
- Remove extraneous interfaces
- Simplify some code greatly
- Change some types to return and take in const ref (only structs larger than 8 bytes benefit from this change.)
- Update code to use CharacterComponent for sending to zone instead of Player*.
* Moving and organizing Player code
- Move code to CharacterComponent
- Remove extraneous interfaces
- Simplify some code greatly
- Change some types to return and take in const ref (only structs larger than 8 bytes benefit from this change.)
- Update code to use CharacterComponent for sending to zone instead of Player*.
- Remove static storage container (static containers can be destroyed before exit/terminate handler executes)
* remove player cast
* Remove extra includes
* Assorted pet improvements
* remove unecessary include
* updates to address some feedback
* fixed database code for testing
* Removed reference member (for now)
* Removed cmake flag
* chore: continue work on removing raw packet reading
tested that logging in, deleted a char, renaming a char, and transfeering to a zone all work still
* Address Feedback
* Add addstrip handling
add SendBehaviorBlocksToClient serialization
add id generation and auto updating
add behaviorlisttoclient serialization
* fix crash
happened if you added state 0 and 6 and nothing in between
* Section off code
Use proper encapsulation to hide code away and only let specific objects do certain jobs.
* Organize serialization
Section off into operational chunks
Write data at the level most appropriate
* Remove and simplify BlockDefinitions
Remove pointer usage for BlockDefinitions and move to optional.
* ControlBehaviors: Add addaction handling
* re-organization
remove const from return value
change to int from uint
use generic methods to reduce code clutter
* add strip ui position handling
* add split strip functionality
* fix issues
fix an issue where if you were on an empty state, the server would allow you to remain on that state
fix an issue where the ui would not open on the previously opened state
fix an issue where deleting strips in order caused the wrong strips to be deleted
* update how you remove behaviors from models
* Add remove actions and rename
* migrate actions
* update action and rearrange strip
* merge strips
* add and move to inventory
* Remove dead code
* simplify code
* nits and move finish MoveToInventory
constify serialize
further include path fixes
use const, comments
fix amf message
Update ModelComponent.cpp
replace operator subscript with at
* Update ModelComponent.cpp
* Update MigrateActionsMessage.h
* const
* Move to separate translation units
* include amf3
its precompiled, but just in case