Commit Graph

1040 Commits

Author SHA1 Message Date
Aaron Kimbrell
cf7fa8e52d
cleanup and define all unknowns in zone reading (#826)
* cleanup and define all unknowns in zone reading
fix for movement path config reading

* simplify reading and don't use intermediates

* fix spelling

* remove dup variable in struct
read to the proper name that relates to the enum
2022-11-12 08:44:03 -06:00
Aaron Kimbrell
1eff3ae454
Add checks to AssetBuffers before they are used (#820)
* add checks to buffers before they are used
to avoid crashing

* address feedback
2022-11-10 12:59:31 -06:00
Jack Kawell
7c2437173b
Fixed docker installation (#823) 2022-11-07 17:04:20 -06:00
Jonathan Romano
2570c74b71
Remove hardcoded port number in AuthPackets
Removes the hard coded port numbers in AuthPackets
2022-11-07 01:27:48 -08:00
Jonathan Romano
2f48981801
Address socket issues with MariaDB
Use a new method of determining how to send the connection information to the database
2022-11-07 01:26:15 -08:00
David Markowitz
1464762bcd
Implement GTest and change windows output path
Implement GTest as a testing infrastructure.
Make windows output binaries to the build folder instead of the release type folder (potentially issue further down the line)
Add a simple unit test for DestroyableComponent
2022-11-07 00:12:35 -08:00
Aaron Kimbrell
9c58ea5c41
add 1261 to the disable landing animation switch case (#819) 2022-11-05 19:09:39 -05:00
David Markowitz
1d5c71eb9b
Fix Pet Taming causing seg fault (#818)
* Fix Pet Taming

* Fix Pet Taming

* fix pet taming path loading
just make it go to build file since the asset managet handles intermediate steps
there is never res in the path in the live db, so no need to check

* special case BrickModels to uppercase if unpacked
remove redundent variable

Co-authored-by: Aaron Kimbrell <aronwk.aaron@gmail.com>
2022-11-05 19:09:26 -05:00
Aaron Kimbrell
162f84e285
simplify path fixing for packed vs unpacked (#816)
fix slashes for hasfile for unpacked client checking
2022-11-04 19:45:04 -05:00
David Markowitz
8880486c8b
Fix chat message reads (#817)
* Fix chat message reads

* Fix teams
2022-11-04 12:28:19 -07:00
David Markowitz
8d37d9b681
Organize dScripts (#814)
* Organize dScripts

whitespace

Remove parent scope

Remove parent scope from initial setter

Remove debug

Remove helper programs

* Fix NtImagimeterVisibility script

Co-authored-by: aronwk-aaron <aronwk.aaron@gmail.com>
2022-11-03 12:57:54 -05:00
Jett
b974eed8f5
Make changes to certain database functions and a debug assert (#804)
- Replace all interaction of std::string and sqlString.
- Add a return before a debug assertion can be triggered by lvl chunks being loaded on server start.
2022-11-02 22:53:45 -05:00
David Markowitz
8edade5f98
Fix client paths (#811) 2022-11-02 20:30:35 -07:00
Aaron Kimbrell
353c328485
compile fixes and default client_location (#809)
* support for gcc9 on ubuntu 18.04
This is needed to make filesystem work

* fix default for client location
2022-11-02 22:05:52 -05:00
Jett
4a6f3e44ee
Add support for packed clients (#802)
* First iteration of pack reader and interface

* Fix memory leak and remove logs

* Complete packed asset interface and begin on file loading replacement

* Implement proper BinaryIO error

* Improve AssetMemoryBuffer for reading and implement more reading

* Repair more file loading code and improve how navmeshes are loaded

* Missing checks implementation

* Revert addition of Manifest class and migration changes

* Resolved all feedback.
2022-11-01 13:21:26 -05:00
David Markowitz
971e0fb3b6
Modularize gargantuan objects (#797) 2022-10-31 17:32:17 -05:00
David Markowitz
62213cd701
Implement basic functionality (#794)
Implements the basic functionality and parsing of property behaviors.

Unhandled messages and logged and discarded for the time being.  The only implemented message is a basic one that sends the needed info the the client side User Interface to pop up.

Tested that the User Interface properly shows up with zero behaviors on it.  No other functionality is changed.
2022-10-31 17:32:07 -05:00
David Markowitz
d4af7d76a2
Add property behaviors migration (#790)
* Add behaviors migration

Add migration for behaviors.  Tested that the tables get altered correctly, names are set correctly.

Tested that I can place models, both regular and Brick-by-Brick ones and that they get deleted properly.  Tested that picking up models and re-placing them down properly updates them in the tables.

* Only update when empty
2022-10-31 17:31:49 -05:00
David Markowitz
89fb66c4a9
Change AMFArray getters to use Templates and fix CI halting when one matrix fails (#796)
* Change AMFArray getters to use Templates

Move Template definition to header

* Add more tests

Add tests for casting to wrong template type
Add tests for going out of bounds in the array.

* Try continue-on-error

* Update build-and-test.yml

* Try continue-on-error

Update build-and-test.yml

* change version

* Update CMakeMariaDBLists.txt

Update CMakeMariaDBLists.txt
2022-10-30 13:06:05 -07:00
David Markowitz
906887bda9
Add automatic cdclient migration runner support and setup (#789)
* Add automatic migrations for CDServer

Add support to automatically migrate and update CDServers with new migrations.  Also adds support to simplify the setup process by simply putting the fdb in the res folder and letting the server convert it to sqlite.

This reduces the amount of back and forth when setting up a server.

* Remove transaction language

* Add DML execution
`poggers`
Add a way to execute DML commands through the sqlite connection on the server.

* Make DML Commands more robust

On the off chance the server is shutdown before the whole migration is run, lets just not add it to our "finished list" until the whole file is done.

* Update README
2022-10-30 00:38:43 -07:00
Jett
a745cdb727
Implement a shared config between servers (#795)
* Implement a shared config between servers

* Auto move config file on CMake run
2022-10-29 16:17:35 -07:00
David Markowitz
d8e73def9d
Update GameMessages.cpp (#793) 2022-10-29 10:12:29 +02:00
Demetri Van Sickle
2bdbf129cf
removed migration runner from build script (#788) 2022-10-25 15:32:46 -05:00
David Markowitz
c13937bd1f
Address Brick-By-Brick builds not properly saving and make migrations automatic (#725)
* Properly store BBB in database

Store the BBB data in the database as the received SD0 packet as opposed to just the raw lxfml.  Addressed several memory leaks as well.

* Add Sd0Conversion

Add brick by brick conversion commands with 2 parameters to tell the program what to do with the data.

Add zlib -> sd0 conversion.  Files look good at a glance but should be tested in game to ensure stability.  Tests to come.

* moving to laptop

ignore this commit.  I need to move this to my laptop

* Add functionality to delete bad models

Adds functionality to delete bad models.  Models are batched together and deleted in one commit.

More testing is needed to ensure data safety.  Positive tests on a live database reveal the broken models were truncated and complete ones were kept around successfully.  Tests should be done to ensure larger sd0 models are properly saved and not truncated since this command should be able to be run any time.

Valgrind tests need to be run as well to ensure no memory leaks exist.

* Delete from query change

Changed from delete to delete cascade and instead deleting from properties_contents as opposed to ugc.

* Address numerous bugs

DELETE CASCADE is not a valid SQL command so this was changed to a better delete statement.

Added user confirmation before deleting a broken model.
Address appending the string model appending bad data, causing excess deletion.
Addressed memory leaks with sql::Blob

* Error handling for string

* Even more proper handling...

* Add bounds check for cli command

Output a message if a bad command is used.

Update MasterServer.cpp

* Remove user interference

-Add back in mariadb build jobs so i dont nuke others systems
- Remove all user interference and consolidate work into one command since 1 depends on the next.

* Add comments

test

Revert "test"

This reverts commit fb831f268b7a2f0ccd20595aff64902ab4f4b4ee.

* Update CMakeMariaDBLists.txt

Test

* Improve migration runner

Migration runner now runs automatically.
- Resolved an issue where extremely large sql queries caused the database to go into an invalid state.
- Made migrations run automatically on server start.
- Resolved a tiny memory leak in migration runner? (discarded returned pointer)
- Moved sd0 migrations of brick models to be run automatically with migration runner.
- Created dummy file to tell when brick migrations have been run.

* Update README

Updated the README to reflect the new server migration state.

* Make model deleter actually delete models

My complicated sql actually did nothing...  Tested that this new SQL properly gets rid of bad data.

* Revert "Update CMakeMariaDBLists.txt"

This reverts commit 8b859d8529.
2022-10-24 17:20:36 -05:00
Aaron Kimbrell
8d44f2f5da
Add missing property path checks for new zones (#783)
Co-authored-by: Jett <55758076+Jettford@users.noreply.github.com>
2022-10-24 00:54:21 -05:00
Aaron Kimbrell
366c3db7fe
fix reading respawn for older maps (#784) 2022-10-23 21:54:59 -05:00
David Markowitz
f02e9c0f6a
Address being able to friend yourself (#779)
* Address being able to friend yourself

Fix an issue where players could friend themselves.  Also stops yourself as appearing as a friend on your own friends list.

* Send a Response instead

Send a MYTHRAN response since the player is attempting to friend a Mythran.
2022-10-21 19:35:12 -05:00
Aaron Kimbrell
409d682c9d
fix loading scenes in some older formats (#782)
This fix is based on lcdr's luzviewer
2022-10-21 19:34:38 -05:00
David Markowitz
63af2c8da7
Add ZLIB for Windows (#768)
Added ZLIB for Windows.  Packets for character creation are now compressed on windows before sending and ZCompression can now be used on Windows.
2022-09-05 20:28:47 -07:00
Jett
ce2e6f595b
Resolve incorrectly marked consumables being unusable (#770)
A change was made in the mounts pull request that broke consumables without correctly marked types such as the picnic basket
2022-09-05 17:28:32 -05:00
Aaron Kimbrell
c552f46780
ignore empty.lua and empty scripts (#769)
* ignore empty.lua and empty scripts
and return early if it's an ignored script

* return it else if logic
2022-09-04 21:43:16 -05:00
Aaron Kimbrell
14d4bf3cc5
Script for aborting a wbl zone transfer (#766) 2022-09-02 13:49:38 -05:00
Aaron Kimbrell
26f2eb409f
Mounts v2 (#726)
* Mounts -v2

* fix stun state and make comments a bit nicer

* remove extra serilization

* update the char position a bit more correctly

* make vehicles face thr player's direction

* address feedback

* fix compiling for real this time

* removed uneeded check
2022-09-02 13:49:19 -05:00
Aaron Kimbrell
1af3e59348
Scripts for the AG sentinel camp QB wall (#761)
* Scripts for the AG sentinel camp QB wall

* use lookat

* Address feedback

* Fix stromling spawner

* fix aggro and remove logs

Co-authored-by: Jett <55758076+Jettford@users.noreply.github.com>
2022-09-01 21:44:26 -05:00
David Markowitz
e3077aa410
Fix Windows not working due to libbcrypt not working on Ninja (#765) 2022-09-01 19:24:00 -07:00
Aaron Kimbrell
3b75ecc0b4
Add script to playfx on canisters before consoles are active (#754)
* Add script to playfx on canisters before consoles are active

* remove debug stuff
2022-08-27 21:48:03 -05:00
Aaron Kimbrell
b70e7334e8
Parrot crash script to become a sneaky ninja and steal the pirate's booty (#752) 2022-08-26 22:58:41 -05:00
Aaron Kimbrell
500b7885e2
Add pirate rep script (#751)
* Add pirate rep script

* fix formattimg
2022-08-25 21:09:08 -05:00
Demetri Van Sickle
bc132487e9
Updated README (Formatting and flow) (#744)
* Updated flow of database section

* Changed bolded headers to actual headers

Will now allow you to link to them

* Updated Linux build command to match build script

* Updated database wording
2022-08-25 14:16:20 -07:00
Aaron Kimbrell
47f0830483
Add GF geyser script (#749)
* Add GF geyser script

* remove uneeeded include

* const
2022-08-25 15:51:22 -05:00
Aaron Kimbrell
e707207ffa
Add FV Geyser script (#748)
* Add FV Geyser script

* remove uneeded include

* const
2022-08-25 15:50:13 -05:00
David Markowitz
ceb374591f
Move mailbox closing to its script (#740) 2022-08-18 19:42:52 -07:00
David Markowitz
c05562a227
Modularize CMakeLists for submodules (#736)
* Use RecastNavigation CMakeLists

* Use tinyxml2 CMakeLists

* Use bcrypt CMakeLists

* Move variable init to CMakeLists

This has to be done here to prevent missing dependency errors.

* General improvements

Only link dynamic if on gnu
use more thirdparty cmakes

* Disable tinyxml2 testing
2022-08-18 19:23:42 -07:00
Aaron Kimbrell
f8c1e2fb52
Script for when archway rebuild is done (#739) 2022-08-18 15:33:32 -05:00
Aaron Kimbrell
e4a15a0f2e
Add imagimeter visibility script (#738) 2022-08-18 00:09:14 -05:00
Daniel Seiler
dd8091f60e
Hide dependency compilation warnings (#696)
* Hide raknet compilation warnings

* Move out MariaDB Connector/C++ logic

* remove mariadb warnings?

* hide mariadb cmake warnings?
2022-08-17 01:43:54 -07:00
David Markowitz
50b3946548
Fix death planes (#735)
* Correct death plane size

The death plane file size is not in units but is actually in 4x2 tiles.

* Make it a bit bigger for now

* Enjoy your crust

"These things add flavor they said"

Move the position of the death barrier down 13.521004 units so we effectively only extend its hitbox in the -Y direction as opposed to the +Y direction, resolving an issue in Battle of Nimbus Station where the death plane was too tall
2022-08-16 22:28:50 -05:00
Aaron Kimbrell
976bd3c41b
Selective saving for map and location (#732)
* Don't save the map and char location info if
we are in an instanced 
* LUP worlds will be handled in a future PR
* simplify check
2022-08-16 20:53:28 -05:00
David Markowitz
3b7f1dad54
Fix death planes (#733)
* Correct death plane size

The death plane file size is not in units but is actually in 4x2 tiles.

* Make it a bit bigger for now
2022-08-16 18:53:01 -07:00
Demetri Van Sickle
54021458bd
Change build command in build script (#729)
The script now uses the cmake build as to be compatible with all platforms as opposed to just platforms that supported gnu make.
2022-08-16 01:49:44 -07:00