81cc19f985
Fix failed task QItem handling, implement /itemQ command
2021-05-14 14:24:35 -05:00
19fd4ecb83
Various fixes in Trading.cpp
2021-05-14 14:21:18 -05:00
CakeLancelot
243e4f6d50
Add a fallback to racingCancel if a respawn point isn't found
...
Fixes segfault when canceling or timing out race in Mandark's House Future.
Also expanded on the comment for why this respawn is necessary.
2021-05-14 14:10:19 -05:00
gsemaj
6f59001be1
Only loop NPC movement if the NPC has a looping path assigned
...
Allows paths to terminate.
Also fixes a bug where follower NPCs sometimes oscillate their positions.
2021-05-09 08:38:14 -04:00
gsemaj
e5d9e7217e
Fix potentially expensive copying of ChunkPos in escort path assignment
2021-05-09 08:36:45 -04:00
5c1bb0acc9
Add enabledpatches config option
...
The server administrator must now specify which patches they want the
server to load (if deviating from the defaults). There are multiple
reasons for this:
* It's useful to be able to pick and choose which patches you want to
boot the server with; without having to move the directories in and out
of the patch directory
* This way, we can have different default patches for different builds
of the game (104 vs 1013)
* ...ergo, it's easier to rapidly switch builds without having to
rearrange your workspace to properly run them
* This also allows us to remove the std::filesystem stuff, which has
spotty compatibility with slightly older (but still current) versions of
the compilers
2021-05-07 21:29:18 +02:00
gsemaj
32daa68458
Clean up /path command handler
2021-05-06 12:17:34 -04:00
gsemaj
2d7aa3c536
Fix EOL in settings.cpp
2021-05-06 12:17:34 -04:00
gsemaj
eb8ec85746
Scan all chunks in instance instead of in view for escort missions
2021-05-06 12:17:34 -04:00
gsemaj
a90ba9ea08
Assign paths with matching taskIDs to escort tasks on task start
2021-05-06 12:17:34 -04:00
gsemaj
974b67d4b6
Move constructPathNPC to Transport
2021-05-06 12:17:34 -04:00
gsemaj
6ae4ab2cbf
Move findApplicablePaths to Transport, add taskID argument
2021-05-06 12:17:34 -04:00
gsemaj
9fb41342b3
Fix server crash if patch folder doesn't exist
2021-05-06 12:17:34 -04:00
gsemaj
0ccc66208d
Added /path here
2021-05-06 12:17:34 -04:00
gsemaj
ebd3b7b75a
Fix path matching breaking prematurely
2021-05-06 12:17:34 -04:00
gsemaj
d41122157f
Fix gruntwork paths not saving targeted types
2021-05-06 12:17:34 -04:00
gsemaj
917407f164
Apply finished NPC paths immediately
2021-05-06 12:17:34 -04:00
gsemaj
c393bf7af2
Prioritize ID match over type match when finding a path for an NPC
2021-05-06 12:17:34 -04:00
gsemaj
72b62cd5a4
Don't load NPCs with types not found in the XDT
2021-05-06 12:17:34 -04:00
gsemaj
e508a06eca
Automatically flush gruntwork after /path end
2021-05-06 12:17:34 -04:00
gsemaj
f71d2581bd
Read completed NPC paths from gruntwork
2021-05-06 12:17:34 -04:00
gsemaj
89a32ac9a4
Write completed NPC paths to gruntwork
2021-05-06 12:17:34 -04:00
gsemaj
c7e2e66a51
Add /path command
2021-05-06 12:17:34 -04:00
gsemaj
37b1d11948
Fix JSON type ambiguity in loadPaths
2021-05-06 12:17:34 -04:00
gsemaj
c960b06227
Apply matching paths to NPCs and mobs on spawn
2021-05-06 12:17:34 -04:00
gsemaj
2721f21427
Fix gruntwork file being flushed to root
2021-05-06 12:17:34 -04:00
gsemaj
d5e65fda3c
Update to new path schema + add NPCPath struct
2021-05-06 12:17:34 -04:00
gsemaj
5f29ea93d8
Undo pathing check bypass + update to patched academy tdata
2021-05-06 12:17:34 -04:00
gsemaj
36cb32454d
Add force property override feature to patcher
...
This has a variety of applications, but is particularly useful when we want to replace arrays instead of add onto them
2021-05-06 12:17:34 -04:00
gsemaj
af8dd61967
Clean up tabledata init
2021-05-06 12:17:34 -04:00
gsemaj
26894c8a69
Implement automatic tdata patching
2021-05-06 12:17:34 -04:00
gsemaj
bf12ed4c47
Fix patcher refusing to patch between unsigned and signed integers
2021-05-06 12:17:34 -04:00
gsemaj
59303ba30d
Update tdata to patch format, change config constants accordingly
2021-05-06 12:17:34 -04:00
gsemaj
b2a8b86e4c
Temporarily disable spawn check for mob pathing
2021-05-06 12:17:34 -04:00
gsemaj
0c05fc4add
Offset NPC IDs by 1 to avoid ID 0
2021-05-06 12:17:34 -04:00
gsemaj
c415db3fd3
Implement recursive JSON patching functionality
2021-05-06 12:17:34 -04:00
gsemaj
183586afe4
[refac] Clean up new tdata init routine
2021-05-06 12:17:34 -04:00
gsemaj
e546d3948c
[refac] Stop using WarpLocation for coordinates and introduce a Vec3
2021-05-06 12:17:34 -04:00
gsemaj
a0e758f5b7
[refac] Move WarpLocation to Transport.hpp
2021-05-06 12:17:34 -04:00
gsemaj
f58c6b72b3
[refac] Stylistic changes
2021-05-06 12:17:34 -04:00
gsemaj
438eba4aa8
Fix sliders leaving their paths
2021-05-06 12:17:34 -04:00
gsemaj
805fd93b3c
Remove academy-specific tdata settings, add patch path
2021-05-06 12:17:34 -04:00
gsemaj
4bcf3af90f
Use static JSON key as NPC ID for NPCs and mobs
2021-05-06 12:17:34 -04:00
gsemaj
4eeb93ad51
Update to new tabledata format
...
Incredibly, this requires no changes to the loading routines as iterating through an array in JSON is just like iterating through an object's properties
2021-05-06 12:17:34 -04:00
gsemaj
e761c700dc
[refac] Compartmentalize TableData.cpp
2021-05-06 12:17:34 -04:00
gsemaj
14562f889e
[refac] Create typedef for nlohmann::json
2021-05-06 12:17:34 -04:00
gsemaj
dd3066849b
Make dynamic IDs count down from max instead of up from 0
2021-05-06 12:17:34 -04:00
gsemaj
91dd5d5280
[AppVeyor] Do not build PR commits twice
2021-05-05 20:47:34 +02:00
2658ed5900
Check if the destination chunk exists after leaving the source chunk
...
This fixes a crash if a player does a /refresh in the zeroeth chunk.
2021-05-02 19:51:59 +02:00
gsemaj
1c3e1d83de
Normalize line endings
2021-04-30 04:17:34 -04:00