Commit graph

102 commits

Author SHA1 Message Date
Kamron Batman
bf20800382
fix: Removes BodyValue and fixes modifying Body and BodyMod in props gump. (#743)
* Removes BodyValue
* Removes BodyPicker gump
* Fixes setting Body and BodyMod in props gump
* Props will now look for an `implicit cast` in order to find a way to allow you to modify values with the props gump.
* Fixed `[self set body 0x190` so it works too.
2021-08-28 22:56:00 -07:00
Kamron Batman
0dc4acc164
fix(core): Removes implicit cast between Serial and uint (#728)
* Fixes spellbooks using serial ctor
* Fixes misc items where someone thought they had an amount and it didn't
* Fixes all `Food` types.
2021-08-25 00:27:19 -07:00
Kamron Batman
9729b5a7b0
fix(map): Fixes map diffs (Old Haven/Minax) (#720)
* Fixes reading map/static diffs.
2021-08-22 23:35:18 -07:00
Kamron Batman
3293ffcf06
fix: Cleanup IPoint3D calls (#704) 2021-08-19 09:11:48 -07:00
Kamron Batman
b0f8fe0350
fix: Optimize OrderedHashSet and introduce more high perf collections (#679)
* Optimizes OrderedHashSet using the learnings here: https://github.com/dotnet/runtime/issues/10050
* Removes ValueCollection since it was a relic from the conversion of the OrderedDictionary
* Centralizes throw strings.
* Adds pooled ordered hash set (but doesn't use it)

Closes #448
2021-08-08 21:37:25 -07:00
Kamron Batman
b112be4e1f
fix: Fixes vendor OPL (#672) 2021-08-03 00:34:44 -07:00
romanlysenko
20422e5f11
feat(content): Adds configuration for extended status override (UOML) (#634) 2021-06-03 09:31:18 -07:00
Kamron Batman
a0893b68c0
fix(core): Updates slice with range selectors (#583)
- [X] Replaces Span slicing with range selection
- [X] Replaces string slicing with range selection
2021-04-23 20:57:24 -07:00
Kamron Batman
9f9d990f85
chore(logging): Logging cleanup (#580) 2021-04-23 18:57:42 -07:00
Pedro Pardal
3a619e0103
feat(logging): Adds support for Serilog (#573)
Example:
```cs
public class SomeClass
{
  private static ILogger _logger;
  private static Logger => _logger ??= LogFactory.GetLogger(typeof(SomeClass));
  ...
}
```
2021-04-19 23:43:54 -07:00
Kamron Batman
ad7f3b3b5c
fix(networking): Standardizes SecureTrade packets (#577)
- Updates secure trade packets. Ref: https://docs.polserver.com/packets/index.php?Packet=0x6F
2021-04-16 11:26:21 -07:00
Kamron Batman
98ce65083a
fix(core): Updates expansion and map configurations (fixes map issues) (#570)
- [X] Adds question about expansion at start of server
- [X] Adds question about client version to determine old have and map diffs
- [X] Adds config setting "maps.enablePre6000Trammel"
- [X] Rearranges some of the loading order.
- [X] Added support for deserializing nullable enums from json

TODO:
Expand the nullable enums deserialization factory to work with any type by pulling the factory and creating an instance of the converter.
2021-04-14 01:45:18 -07:00
Kamron Batman
b51bab5f1d
fix(core): Fixes item mask in incoming mobile packet (#568)
- [X] FIxes the item mask in incoming mobile packet
- [X] Streamlines some of the send info stuff
- [X] Adds a few missing packet initializations
2021-04-10 21:48:07 -07:00
Kamron Batman
107b4a2bf4
fix(core): Fixes virtue packet (#563)
* Fixes check on virtue packet

Closes #562
2021-04-05 23:55:13 -07:00
Kamron Batman
6c4308bce6
fix(core): Caches DateTime.NowUtc (#548)
- [X] Caches DateTime.NowUtc on the game loop (not other threads)
- [X] Replaces all locations where it makes sense
- [X] Adds Min/Max for `IComparable` (TimeSpan, DateTimes, etc)

Closes #261
2021-03-13 01:32:04 -08:00
Kamron Batman
3c88331607
fix(core): Fixes map packet length (#543) 2021-03-06 18:21:58 -08:00
Kamron Batman
ec1cc10821
fix(network): Converts House Design Detailed Packet (#538)
- [X] Converts design state detailed packet
- [X] Removes `Packet` class
- [X] Removes `Send(Packet)` function signatures
- [X] Removes `PacketWriter` class
- [X] Updates dependencies.
2021-03-03 02:09:15 -08:00
Kamron Batman
6f5312cb89
fix(core): Changes invalid gump response to write to network errors. (#510) 2021-02-15 08:31:53 -08:00
Kamron Batman
ea5d09a7d7
fix(core): Fixes map issues at New Haven (#509)
- [X] Fixes map issues at New Haven by turning off static diffs
- [X] Some code cleanup and reformatting of tile matrix, tile matrix patch, and tile data
- [X] Adds NetState.Flush for generating spawners so it doesn't feel like the server is frozen
- [X] Reverts NativeReader changes from a while back.
- [X] Adds more string reading for BufferReader.


Notes:
BufferReader is still `little endian` compared to `SpanReader` which is `big endian` (for packets). To that end, the RunUO deserialization `ReadString()` was made obsolete since it is ambiguous, and contains extra fields other than simply reading a string. Furthermore, we shouldn't be using UTF8 (for now) since it is slow.
2021-02-14 16:06:49 -08:00
Kamron Batman
952a3e0265
fix(core): Handles a rare NPE with LoginTimer (#508) 2021-02-11 23:47:02 -08:00
Kamron Batman
b8a625dcd3
fix(network): Removes error messages for socket exceptions (#503) 2021-02-09 10:37:38 -08:00
Kamron Batman
8903028b5f
fix(core): Tightens the network stack (#479)
- [X] Removes network pause/resume
- [X] Adds back packet profiler
- [X] Adds state machine to keep track and trace netstates
- [X] Changes NetState.Running back to using an interlock exchange
- [X] Adds preliminary packet throttling support


### Packet Throttling
- `[GetThrottle <packetId>` to get the delay in milliseconds for that packet
- `[SetThrottle <packetId> <delay>` to set the delay in milliseconds for that packet
The settings are saved to `Configuration/throttles.json`
2021-02-07 23:30:56 -08:00
Kamron Batman
67625ad249
fix(core): Removes disposable netstates. (#467)
- [X] Removes IDisposable from NetState
- [X] Swaps Disconnect and Dispose methods
2021-02-05 14:33:35 -08:00
Jabin
6295699b3d
fix(network): Adds setting NetState.PacketEncoder only if not null (#460) 2021-02-04 17:07:41 -08:00
Kamron Batman
50e9b367fc
fix(core): Fixes buy packet (#453)
- [X] Fixes buy packet
- [X] Changes from null to empty string in gump initial text
2021-02-04 10:40:41 -08:00
Kamron Batman
6f0e1a22f9
fix(core): Core cleanup, adds event loop synchronization, and fixes gumps (#429)
- [X] Cleans up gump packets
- [X] Adds event loop task synchronization
- [X] Moves timer pause and cleans up the delay task timer class
- [X] Cleans up the conserve cpu
- [X] Renames variables to make them consistent with the new style
- [X] Removes process delta recursion checking.
- [X] Properly diposes net states. This fixes edge cases that may cause hanging connections to stay open longer than they should.
- [X] Fixes an issue with gump items not compiling properly

Users can now utilize `Timer.Pause()` since the code will be executed on the proper thread.

```cs
public void async void Talk()
{
    _canTalk = false;
    await Timer.Pause(Utility.RandomMinMax(5000, 8000)); // Talk after 5-8 seconds
    DoTalk();
    await Timer.Pause(Utility.RandomMinMax(12000, 25000)); // Reset ability to talk after 12-25 seconds
    _canTalk = true;
}
```
2021-01-25 21:06:46 -08:00
Kamron Batman
87764ca968
fix(build): Attempt to fix possible nullable warnings as errors with releases (#418) 2021-01-18 11:52:31 -08:00
Kamron Batman
08f05afd01
fix(core): Converts boat packets (#416)
- [X] Converts boat packets
- [X] Makes a packet container builder for packet 0xF7
- [X] Generalizes world item packet so it works for mobiles too

Notes:
- This PR doesn't address proper smooth movement for boats.
2021-01-18 08:38:32 -08:00
Kamron Batman
fbafd7210d
fix(core): Converts some packets & misc fixes/cleanup (#414)
- [X] Adds a stop music packet
- [X] Converts chat packets
- [X] Breaks out chat code a little bit more
- [X] Converts character statue animation packet
- [X] Renames some folders to have spaces
- [X] Organizes and consolidates incoming/outgoing packets for other content
- [X] Fixes virtual checks
2021-01-16 21:01:54 -08:00
Kamron Batman
97f311d7be
fix(core): Removes 6017 handler (#411)
- [X] Removes 6017 handler since it is only used in one place
- [X] Exposes a ref int to modify the packet length. This is acceptable since we technically have access to the entire reader/buffer.
2021-01-16 13:43:16 -08:00
Kamron Batman
c58aad733d
fix(core): Converts BB packets (#406)
- [X] Organizes and splits up bulletin boards
- [X] Converts packets
2021-01-13 22:28:31 -08:00
Kamron Batman
f4dd7c8e7f
fix(party): Converts party packets (#401)
- [X] Converts party packets
2021-01-10 14:23:10 -08:00
Kamron Batman
764d303543
chore: Code cleanup (#399)
- [X] Code cleanup
2021-01-10 09:14:03 -08:00
Kamron Batman
8763be8a21
fix(core): Cleans up uninitialized packets (#397)
- [X] Encapsulates/abstracts buffer cache checking
- [X] Changes mobile moving cache to use Span2D
2021-01-09 14:10:29 -08:00
Kamron Batman
5882b1ab3f
fix(core): Fixes OPL packets (#395)
- [X] Fixes an issue with OPL packets using the wrong endianness and not updating the position properly.
- [X] Fixes an issue with SpanWriter not updating bytes written when it is used adhoc.
- [X] Moves packet creation for OPL inside the SendInfoTo function.

Bumps release version
2021-01-08 23:55:23 -08:00
Kamron Batman
1006352333
fix(core): Disables new movement and time sync (#391)
Bumps release version
2021-01-06 22:40:07 -08:00
Kamron Batman
dfe89024ca
Makes gump code a little more readable (#390)
- [X] Adds a WriteAscii for individual characters
- [X] Updates gump code to use it so it is a little more readable
2021-01-06 01:17:34 -08:00
Kamron Batman
03bdff2293
fix(content): Converts buff icon packets (#389)
- [X] Converts buff icon packets, and avoids string formatting.
2021-01-06 01:01:21 -08:00
Kamron Batman
0912876f7c
fix(core): Converts virtual hair packets (#388)
- [X] Converts virtual hair packets
2021-01-05 22:14:54 -08:00
Kamron Batman
a278623f38
fix(core): Converts Gump Packets (v1) (#379)
- [X] Converts gump packets
2021-01-05 01:17:34 -08:00
Kamron Batman
3dd0d8f42b
fix(core): Converts the rest of the packets (#385)
- [X] Converts vendor buy packets
- [X] Converts vendor sell packets
- [X] Converts target packets
- [X] Converts secure trade packets
- [X] Converts some player packets that were missed
2021-01-05 00:35:56 -08:00
Kamron Batman
ffc26459ff
fix(core): Converts message, mobile, movement, player packets (#384)
- [X] Converts message packets
- [X] Convers mobile packets
- [X] Converts movement packets
- [X] Converts player packets
2021-01-04 23:47:20 -08:00
Kamron Batman
353b46fbbd
fix(core): Converts more packets (#383)
- [X] Converts damage packets
- [X] Converts effect packets
- [X] Converts equipment packets
- [X] Converts gump packets
- [X] Converts light packets
- [X] Converts map packets
- [X] Converts menu packets
2021-01-04 23:11:43 -08:00
Kamron Batman
75c0527284
fix(core): Converts combat and container packets (#382)
- [X] Converts container packets
- [X] Converts combat packets
2021-01-04 21:17:39 -08:00
Kamron Batman
ac76c57c39
fix(core): Converts account packets to spanwriter (#381)
- [X] Converts account packets to spanwriter
2021-01-04 18:47:20 -08:00
Kamron Batman
3b413371dc
fix(core): Adds Gump component functionality (#377)
- [X] Adds gump close packet
- [X] Fixes gump tooltip
- [X] Adds new compile/append functions for the new gump packets
2021-01-02 19:08:35 -08:00
Kamron Batman
2a2af424ad
fix(core): Converts vendor sell packets (#375)
- [X] Converts vendor sell packets

Bumps release version
2020-12-30 16:27:37 -08:00
Kamron Batman
540a879d63
fix(core): Converts remaining player packets (#374)
- [X] Converts the remainder of the player packets
2020-12-30 16:09:51 -08:00
Kamron Batman
a59fda6a3a
fix(core): Converts some player packets (#372)
- [X] Converts some player packets

Note:
- Not caching weather packet because it is copying directly from stackalloc using aggressive inlining. Don't need to do more optimizations.
2020-12-29 23:47:56 -08:00
Kamron Batman
7ef1d41c6f
fix(core): Converts mobile incoming packet (#370)
- [X] Converts mobile incoming packet

Bumps release version
2020-12-28 02:30:47 -08:00