79 Commits

Author SHA1 Message Date
PixieCore
7b5676210b Added new ConCommand to list all loaded rpaks. By @r-ex 2022-03-23 20:31:29 +01:00
Kawe Mazidjatari
328fc61b27 Fix MSVC compiler errors 2022-03-23 19:23:53 +01:00
Kawe Mazidjatari
3110bbfb78 Calculate CRC for AIN (for later)
Add CRC calculated from large NavMesh (used to build AIN..)  for later.
The future check will compare AIN CRC and NavMesh CRC and warn if they don't match (recommend a update, and auto run update if cvar set).

Also added better profiling to SaveNetworkGraph code
2022-03-22 01:59:02 +01:00
Kawe Mazidjatari
4bb3be2a8e Implement CPU utils and FastTimer
CPU system utilities and FastTimer (inline)
2022-03-21 23:13:03 +01:00
PixieCore
4330b8064b Fixed "mat_crosshair" callback.
Not registering a new command anymore. Instead we fix mat_crosshair.
2022-03-18 22:45:12 +01:00
PixieCore
8a672f4dfc CMaterialGlue changes.
Discovered new potential names for class vars.
2022-03-18 21:38:57 +01:00
PixieCore
96ee0a834d Added DXTexture fields to CMaterialGlue 2022-03-18 20:13:28 +01:00
PixieCore
0c9e184e3f GetMaterialAtCrossHair changes, CMaterialGlue changes.
CShaderGlue still needs to be reverse engineered.
CMaterialGlue still needs verification for S0-S2 to see if the struct matches.

Patterscanning GetMaterialAtCrossHair now.
2022-03-18 18:34:27 +01:00
PixieCore
627b25c120 Initial implementation of CMaterialGlue.
Some GUID's are still unknown.

Class members need verification like the material resolution member.

Added a ConCommand for getting the material we are currently looking it and printing it to the console.

Porting to other seasons still need to be done.
2022-03-18 13:47:22 +01:00
Kawe Mazidjatari
35ad8554a5 Somewhat correct working navmesh
The reachability table needs to be figured out still. The issue should be very small, but at the moment I do not have time for it.

The pointer to the table, and table pointers to data is correct, however, not a single poly is ever getting marked as 'reachable' (0xffffffff). This could be either within recast itself (see build_link_table() and set_reachable() functions), or the way the engine parses the data. The function that determines whether poly is reachable is located at '0x140F448E0'
2022-03-18 03:14:07 +01:00
Amos
24cd3aa2d5 Small improvements 2022-03-12 13:19:31 +01:00
Amos
ff06cb71eb Fix build for S1 2022-03-07 11:36:45 +01:00
Amos
2fee28ae96 Adapt to new loggers 2022-03-04 15:59:33 +01:00
Amos
1058a6fa10 Use unicode character set instead and light cleanup/bug fixes 2022-03-04 12:22:17 +01:00
Amos
4a0772bd18 Cleanup completion functions
Use actual CCommand class instead of offsets to members + reduced comments of self explanatory function names now that we use the class instead.
2022-03-02 02:03:46 +01:00
Amos
2719a85504 Debug overlay QOL improvements + Con_NPrintf() hook
* Added ability to invert rect to calculate offsets from bottom/right as well so debug text doesn't get out of view, or obstruct view when window is resized.
* Added Con_NPrintf() hook which shows detailed systems running times and VGUI panel debug information.
2022-02-28 01:01:40 +01:00
Amos
62604e8fe9 CAI related stuff (see description)
* Partially rebuild CGlobalVarsBase and CGlobalVars struct.
* Partially implement BuildAINFile (disk builder) written by BobTheBob9. All that needs to be found are the addresses/offsets for 'pUnkStruct0Count' and 'pUnkLinkStruct1Count' (see ai_node.h). I didn't have time for it yet.
* Patch call which restarts the engine once AIN file has been build (so it doesn't get cleared from memory).
* Temporarily patch write operation in 'Detours_LevelInit()' which writes out of scope since the navmesh structure is misaligned somewhere still with a few bytes.

NOTE: 'CAI_NetworkBuilder::BuildFile()' is for now commented out until the 2 other structs are found in the game dll. Once found then we could start fixing the struct offsets and hope it works as-is.
2022-02-27 03:15:00 +01:00
Amos
23f37bfa50 RCON QOL improvements 2022-02-24 16:44:33 +01:00
Amos
d3c7b9baf5 Rename to make more sense 2022-02-23 21:11:35 +01:00
Amos
cfa572f20e Small fixes + improve console autocomplete readability 2022-02-23 21:02:37 +01:00
Amos
9506a5141a CConsole improvements
* Pad the autocomplete list with 18 to keep all items in view
* Show help text for ConCommand as well
+ Small code cleanup
2022-02-23 15:56:03 +01:00
Amos
0c069db90c Fix ConCommand size 2022-02-23 03:41:10 +01:00
Amos
9e66ed7f2e Fix warning 2022-02-23 00:21:54 +01:00
Amos
4cfb06ff4a Finish ConCommandBase/Concommand/ConVar classes 2022-02-23 00:18:46 +01:00
Amos
c6cf40f539 Optimize console autocomplete and show usage text 2022-02-22 16:31:24 +01:00
Amos
9b8dfee460 Improve ConVar class + rebuild ConCommand class 2022-02-21 17:56:31 +01:00
Amos
ae0b439a3c Additional cleanup + optimizations 2022-02-21 12:06:05 +01:00
Amos
8079e0ed4c Heavy cleanup for CHostState methods and signatures
* Add Cbuf_AddText and Cbuf_Execute signatures.
* Remove additional VGui stuff from dedicated statemachine.
* Move signatures to their respective headers.
* De-inline 'CHostState::FrameUpdate()'
* Ported al new patters to GAMEDLL_S1, CEngine still recreation needs extra work
2022-02-19 02:31:16 +01:00
Amos
5d60324a2e Add more color logging + RCON color logging 2022-02-17 18:00:29 +01:00
Amos
12c537284f Slight cleanup 2022-02-15 02:31:41 +01:00
Amos
10174a6206 Initial game client RCON implementation 2022-02-14 23:16:24 +01:00
Amos
976e8d9a41 Use SHA256 for password comparison
Put debug logging under cvar to avoid abusing by attempting to slow down server.
2022-02-14 03:02:38 +01:00
IcePixelx
308160369e RTech::UnloadAsset comment and rpak header rename. 2022-02-13 17:13:54 +01:00
IcePixelx
71dabb52e1 RTech var renames and struct renames. 2022-02-13 17:07:02 +01:00
Amos
a5b3b2dea4 Update comment blocks 2022-02-13 15:16:09 +01:00
Amos
a5da2e81bf RCON improvements (see description)
** SERVER **
* Close redundant connections if max sockets have been reached.
* Ban if client keeps spamming without authing first (ignoring message).
* Check for whitelisted address before issuing bans (whitelisted address in ConVar 'sv_rcon_whitelist_address' will never get banned or get its connection terminated.
* Transmit SQVM and DevMsg logs over the wire to the net console.

** NETCON **
* IPv6 support.
* Close connection properly after FIN request.
* Prompt user to reconnect after connection has been terminated instead of closing the application.
* Add proper quit command.

** SDKLAUNCHER **
* Rename to 'launcher.exe' to describe its purpose better. Our logo gets printed nice and large on the console during startup.

** SDK **
* Cleanup.
2022-02-08 16:32:00 +01:00
Amos
3411c41eac ConVar optimizations 2022-02-06 19:15:34 +01:00
Amos
d555c39434 Rename to 'cmd' 2022-02-06 17:06:22 +01:00
Amos
c187bed4c5 RCON implementation (see description)
* Fully rewritten protocol agnostic CNetAdr class
* Fully rebuilded legacy CNetAdr class
* Fully rebuilded dual-stack CSocketCreator class
* New project "netconsole" added (lightweight netconsole for RCON)

RCON is still work in progress
2022-02-06 16:48:52 +01:00
Amos
ee82a58133 Create RCON ConCommand 2022-02-06 15:59:46 +01:00
Amos
70a5f77121 Create RCON ConVar's 2022-02-06 15:54:52 +01:00
IcePixelx
2037ffa1f2 convar creation suggestion. 2022-01-29 18:00:29 +01:00
Amos
65299affa1 Fix issue where connected clients could kick/ban players
This was caused by a bad mistake I made when setting flags for ConVars and ConCommands.

Set 'IsFlagSet()' query debug ConVars as Replicated.
2022-01-28 01:32:27 +01:00
IcePixelx
2f82801261 Moved CEngine class functions to sys_engine.cpp. 2022-01-23 18:33:01 +01:00
IcePixelx
f43c5da8ae Huge engine/host commit.
* Rebuild CModGroupApp::Main, did not include the dedicated routine with the empty class global.
* Using a template function now for virtual function calls
* Implemented most of the CEngine class and grabbing its global var now.
* Using local CEngine now in FrameUpdate
* Implemented EngineParms_t fully and grabbing its global var.
* Added macro for adding class member variables at offsets.

A lot of comments added regarding what needs to be done for this commit.

* Check other season compability, wasn't able to do that due to not having access to said binaries at the moment.
* Fix sdklauncher to use widestrings to fix the bug with other languages in path
2022-01-23 18:26:48 +01:00
Amos
a1f96797c0 Console and Browser UX improvements
* Log warnings
* Improve style
* Vector size is now controlled by ConVar instead
* Keep current item in view when console is cleaning up the vector. This doesn't work ideally as its hard to keep track of the current item, and the scroll is a float. In the future it might be better to grab the first vertex of the center line on the console and track that perhaps.
2022-01-22 15:51:09 +01:00
Amos
7419720f78 Rename ConVar to make more sense + cleanup 2022-01-20 00:59:31 +01:00
Amos
963c189f35 Reset scroll position when AutoSuggest has updated 2022-01-20 00:24:41 +01:00
Amos
f418d36e1b Add flags to registered ConCommands 2022-01-19 23:46:03 +01:00
Amos
540e219c22 Clamp Autocomplete window properly
* Fixed cases where the horizontal scrollbar would conceal the only item in the autocomplete window

* Add new ConVar to show help text next to ConVar in autocomplete. disabled by default to prevent it from being cluttered.
2022-01-19 19:03:04 +01:00