* WIP
* get rid of redundent case and some formatting issues
* move some things around for cleaner diffs
* remove dead code that does nothing and add connection check
* fix whitespace
* address feedback
Should be 100% live accurate as far as logic and bitstream reads goes.
Tested with all valiant weapons and crux prime weapons (drops from dragons) that combat does not desync and that the client reports the same level and amount of skill deserialize issues as before.
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
* Remove news in behavior members
Tested that GrowingFlowers still have their SkillEvent fired with the correct parameters, gftikitorch works, sharks eating stinky fish still work
* explicitly default move assignment and copy operators/constructors
---------
Co-authored-by: jadebenn <jadebenn@users.noreply.github.com>
was using very old code from pre-foss that has not been updated with the new behavior knowledge. The code has been updated accordingly to what the client expects.
Tested that ice shurikens can now destroy the legs of the skeleton towers in crux prime. Tested that the following weapons can still do damage to enemies and objects in the world:
surikens of ice
serratorizer
Super Morning Star
Super Dagger
elite long barrel blaster (charge and normal)
Mosaic Wand
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
tests
tested that red green and yellow bots waved when interacted with
tested that construction robot races when interacted with
wandering vendor does nothing before and after, but script is ready for use when npcs are implemented.
add scripts for robot city
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
* feat: refactor vanity
cleanup code to be generalized for objects
remove unused party feature
add fallback to data to text
Allow for better organizing data in multiple files
remove special case flag values in favor of config data
general cleanup and fixes
* newline at eof's
* 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
if we DONT find it, we want to kill/delete it. not the other way around where if we find it we try to delete it again.
tested that you no longer crash when trying to login
tested that bird monument issues are fixed
* Split out BehaviorMessage class changes from PR #1452
* remove <string_view> inclusion in ActionContext.h
* add the arguments nullptr check back in
* remove redundant std::string constructor calls
* Update AddStripMessage.cpp - change push_back to emplace_back
* 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?