Commit Graph
100 Commits
Author SHA1 Message Date
Sandu Liviu Catalin 87ab54d453 Expand the host plug-in API and not just the Squirrel API.
Extend the host plug-in API with a few more date/time functions.
Update some of the plugins to use the expanded functions of the host plug-in API.
2016-07-04 16:26:39 +03:00
Sandu Liviu Catalin 805251a6db Add utility to calculate date range in seconds on Chrono library. 2016-07-04 16:23:35 +03:00
Sandu Liviu Catalin 6613feb6ba Also include the command instance when checking invoker authority with script callbacks. 2016-07-03 19:43:37 +03:00
Sandu Liviu Catalin cfe2d3b4ed Forgot to the OnAuth property for commands manager which was still using the same name as OnFail. 2016-07-03 19:29:50 +03:00
Sandu Liviu Catalin 3094e14015 Forgot to swap command execution contexts in guard. 2016-07-03 19:03:36 +03:00
Sandu Liviu Catalin 1963c8e636 Implement option to retrieve the manager associated with a command and the number of commands managed by a manager. 2016-07-03 03:44:44 +03:00
Sandu Liviu Catalin dde8890941 Prevent common null objects from using dead virtual machines after reloads. 2016-07-03 03:27:18 +03:00
Sandu Liviu Catalin 1007eac3ed Initial implementation of the new command system. 2016-07-03 03:22:00 +03:00
Sandu Liviu Catalin e93319a381 Implement implicit or explicit conversions to boolean for Sqrat weak pointers. 2016-07-03 03:21:29 +03:00
Sandu Liviu Catalin 7f50156664 Move enumerations related to the command system from the base plugin config. 2016-07-03 03:20:51 +03:00
Sandu Liviu Catalin e0fd5fa214 Implement pointer stealing for the auto-deleter utility. 2016-07-03 03:20:23 +03:00
Sandu Liviu Catalin 46d8d12c74 Add method to return strings from MySQL result-set. 2016-06-30 15:52:20 +03:00
Sandu Liviu Catalin 7836f0ab23 Implement simple result stepping in the MySQL module. 2016-06-29 18:31:10 +03:00
Sandu Liviu Catalin 03237f9c15 Partial and untested revision of the MySQL module. 2016-06-28 01:15:31 +03:00
Sandu Liviu Catalin fdc73d3ee8 Minor correction in SQLite module. 2016-06-28 01:13:43 +03:00
Sandu Liviu Catalin 2e55f99860 Also release the context when terminating the command manager. 2016-06-27 17:46:12 +03:00
Sandu Liviu Catalin aad10948b9 Emit the ScriptLoaded event before importing server entities to allow the scripts to prepare. 2016-06-26 16:30:19 +03:00
Sandu Liviu Catalin 996c078105 Introduce a new module event to be called after the virtual machine was destroyed. Thus, preventing the release of the virtual machine while still in use.
Prevent releasing IRC sessions while they could still be in use.
Few other changes that had to be committed because of the change in the module API.
2016-06-26 16:18:23 +03:00
Sandu Liviu Catalin 2ee475bb8d Prevent server notifications of entity pool changes from introducing entity leaks and triggering events multiple times. Should close #9 2016-06-26 15:47:27 +03:00
Sandu Liviu Catalin 254bd9eee6 Avoid creating checkpoints for invalid player instances. 2016-06-25 00:08:16 +03:00
Sandu Liviu Catalin 36e3ed8f7a Clear vehicle instances on server shutdown or plugin reload. Should close #9 2016-06-25 00:01:36 +03:00
Sandu Liviu Catalin 8e0a9edb3e Update the checkpoint creation process to allow creating checkpoints for all players as well as dedicated to a certain player. Should close #10 2016-06-24 23:37:58 +03:00
Sandu Liviu Catalin df114cd128 Fix wrong macro in SQLite module. 2016-06-22 15:12:38 +03:00
Sandu Liviu Catalin 875ea33022 Fix negation inf entity searching algorithms. 2016-06-21 17:56:58 +03:00
Sandu Liviu Catalin cb82a98bf6 Fix incorrect size check in entity search algorithms. 2016-06-21 17:44:21 +03:00
Sandu Liviu Catalin b4bfced27b Register entity searching algorithms to enable them. 2016-06-21 17:29:09 +03:00
Sandu Liviu Catalin 40e024e72d Further improvements of the entity searching algorithms. 2016-06-21 17:25:43 +03:00
Sandu Liviu Catalin 66e604cec7 Add back some of the entity search functions. 2016-06-21 16:15:25 +03:00
Sandu Liviu Catalin 284e1be3f7 Improved the entity searching algorithms by removing duplicate code. 2016-06-21 16:04:21 +03:00
Sandu Liviu Catalin 29af51c518 Improve entity searching algorithms. 2016-06-21 15:17:08 +03:00
Sandu Liviu Catalin 1d12ddd60d Improve searching for active entities. Also fix a possible crash because the entity instance pushed on the stack was appending to itself instead of the array. 2016-06-21 09:02:44 +03:00
Sandu Liviu Catalin 22fc6c54c2 Minor updates to the JSON module. 2016-06-20 18:53:09 +03:00
Sandu Liviu Catalin 20ae4e602e Fix buffer wrapper reading data incorrectly. 2016-06-20 18:22:12 +03:00
Sandu Liviu Catalin ea70a21437 Improve the client script data event. Also fix a crash because the buffer type was not registered. 2016-06-20 18:02:44 +03:00
Sandu Liviu Catalin 29abf2e9c0 Add a helper class that implements RAII to delete an instance of not explicitly released. 2016-06-20 18:01:42 +03:00
Sandu Liviu Catalin 3a8d4952c1 Avoid sharing the same source file between multiple projects where there's a possibility that with each project object generated by the the source file could have a diffrent code used by other sources from the project.
Which can lead to undefined link time errors (at best) or run-time crashes (at worst).
2016-06-20 16:17:03 +03:00
Sandu Liviu Catalin ad55025bc8 Specialize the buffer creation functions. 2016-06-20 14:52:05 +03:00
Sandu Liviu Catalin c2ac1f3fd8 Add a small check to prevent forwarding event if we failed to create the buffer instance. 2016-06-20 14:30:48 +03:00
Sandu Liviu Catalin 5f983cdacf Fix the keybind creation process which was using the incorrect keybind identifier. 2016-06-20 09:02:13 +03:00
Sandu Liviu Catalin 8591efbcce Update the blip pool size to the correct value. 2016-06-20 08:55:04 +03:00
Sandu Liviu Catalin 933522f2a4 Add a method to the player class that plays a sound which follows the player character. 2016-06-20 08:27:39 +03:00
Sandu Liviu Catalin e6213d0932 Fix the player alpha modification. 2016-06-20 08:08:33 +03:00
Sandu Liviu Catalin 5d0a38cbd9 Fix the keybind creation by obtaining a keybind slot automatically if one was not specified. 2016-06-20 08:02:30 +03:00
Sandu Liviu Catalin dae66ca39f Export the function that must be used to obtain unused keybind slots. 2016-06-20 08:01:59 +03:00
Sandu Liviu Catalin c5c3af4f5e Avoid compile errors from implicit cast to int by making the type explicit. 2016-06-19 19:38:24 +03:00
Sandu Liviu Catalin 6ec8ca620f Update the player mesage broadcasting to also be more flexible and dynamic when detecting the message color.
Move the shared code that identifies the message color outside the player class source file.
2016-06-19 19:06:24 +03:00
Sandu Liviu Catalin f26ab29a14 Improve the player messaging functions to be more flexible and dynamic when detecting the message color. 2016-06-19 18:39:12 +03:00
Sandu Liviu Catalin 59968893f5 Update the sample config to indicate that log file name supports strftime format. 2016-06-19 15:25:16 +03:00
Sandu Liviu Catalin 89bbb74d06 Export the remaining functions for controlling the logger. 2016-06-19 15:24:25 +03:00
Sandu Liviu Catalin c431734311 Keep a consistent naming style in constants. 2016-06-19 11:07:35 +03:00
Sandu Liviu Catalin 3ebe127c2c Move message broadcasting into their own source file for better code structuring
Move message broadcasting into their own table to avoid polluting the global scope.
2016-06-19 09:32:16 +03:00
Sandu Liviu Catalin 431198378d Implement functions to broadcast messages to all players. 2016-06-19 08:13:38 +03:00
Sandu Liviu Catalin 4dc36b9889 Update player messaging to support alpha/transparency in the specified color. 2016-06-19 08:13:02 +03:00
Sandu Liviu Catalin 07c7ebb8d1 Update the sample config to comply with the revised script loading system. 2016-06-18 20:33:56 +03:00
Sandu Liviu Catalin 8846cb9351 Initial revision of the script loading system to be more flexible and accurate. 2016-06-18 20:31:35 +03:00
Sandu Liviu Catalin 54531071c7 Add a method to the INI library to allow processing section keys through a custom functor. 2016-06-18 20:30:48 +03:00
Sandu Liviu Catalin b59710ddeb Prepare the script container for the revised script loading system. 2016-06-18 20:29:28 +03:00
Sandu Liviu Catalin c8d5200dc0 Add a helper funtion to the system path library to obtain the full path of a file. 2016-06-18 20:27:51 +03:00
Sandu Liviu Catalin fe70560234 Add a helper function to obtain the last system error as a string and throw it. 2016-06-18 20:27:23 +03:00
Sandu Liviu Catalin 4be562c926 Update the script loading system to load and compile all scripts first and then execute them. 2016-06-18 13:09:08 +03:00
Sandu Liviu Catalin d1ae2fd7e8 Fix the 64bit build on windows by making sure the _WIN32_WINNT macro has the proper value to include GetTickCount64() and also default to regular GetTickCount() on 32bit as the 64bit placeholder. 2016-06-18 10:24:41 +03:00
Sandu Liviu Catalin 099c388b00 Fix the paths in the sandbox project. 2016-06-18 10:22:13 +03:00
Sandu Liviu Catalin e07809cb25 Initialize the handle during SQLite connection if one does not exist. 2016-06-17 07:21:04 +03:00
Sandu Liviu Catalin 24eddb8051 Minor spelling mistakes in core class. 2016-06-17 06:48:13 +03:00
Sandu Liviu Catalin 6a31e9ee58 Allow the option to toggle debugging from configuration file. 2016-06-17 03:33:58 +03:00
Sandu Liviu Catalin c76acc07dc Use the new script loading system to be able to hold script information for future debugging implementations.
Fixes issue with scripts being sorted rather then being executed in the load order.
2016-06-17 03:28:37 +03:00
Sandu Liviu Catalin 2242ac9394 Make constructor public in script container.
Throw exception if trying to create script container with invalid VM.
2016-06-17 03:26:29 +03:00
Sandu Liviu Catalin 2b6fdcd855 Implement utility to hold script contents for debugging purposes. 2016-06-17 03:15:02 +03:00
Sandu Liviu Catalin 399ef5a292 Fix minor misspelling in core class. 2016-06-17 03:14:26 +03:00
Sandu Liviu Catalin b3f0e98758 Implement script bundles in the script loading process. 2016-06-17 01:40:10 +03:00
Sandu Liviu Catalin 02aa2667a6 Allow chaining on Reset and Clear methods of the SQLite Statement type. 2016-06-16 06:37:32 +03:00
Sandu Liviu Catalin af9c00298c Fix infinite loop when registering constants. 2016-06-16 03:12:01 +03:00
Sandu Liviu Catalin f8fabaf0b5 Improve the names of elments in the Skins enumeration to be consistent with the other enumerations. 2016-06-16 02:44:13 +03:00
Sandu Liviu Catalin 9a66f2a5d6 Reduce overall compile time and executable size of constants registration. 2016-06-16 02:43:07 +03:00
Sandu Liviu Catalin db943d802c Ignore the sandbox folder. 2016-06-16 00:05:19 +03:00
Sandu Liviu Catalin 22dc3a03ed Add the SQLite library back to the project. 2016-06-16 00:03:17 +03:00
Sandu Liviu Catalin a1d2a620b5 Remove the SQLite library from the project. 2016-06-16 00:02:28 +03:00
Sandu Liviu Catalin 8087d0482f Untested revised implementation of the SQLite module. 2016-06-15 23:49:25 +03:00
Sandu Liviu Catalin 166760fd46 Export functions to at least create shared buffers from modules. 2016-06-15 10:01:07 +03:00
Sandu Liviu Catalin 861c830bb7 Improve the constructors in shared buffers implementation. 2016-06-15 10:00:28 +03:00
Sandu Liviu Catalin bca0e1f3c6 More validations on identifiers obtained from the server.
Prevent out_of_range exceptions leak into the script as it would end up in a crash since Sqrat doesn't know how to handle them.
2016-06-15 06:11:47 +03:00
Sandu Liviu Catalin ef41d0d243 Improve the SetAnimation method on player class.
Make it so that the animation group is optional.
2016-06-15 06:06:03 +03:00
Sandu Liviu Catalin 7391d9391e Prevent triggering the player option change event value din not change.
If the value for the specified option would not be changed then there's no point in triggering any event or attempting to set it again only and have the same effect.
Fixed minor misspelling in the player class source.
2016-06-14 04:42:18 +03:00
Sandu Liviu Catalin 5a225a70b9 Validate identifiers obtained from the server before using them.
Prevent aout_of_range exceptions from leaking to the script in case the server returns a negative identifier. Thus, resulting in a server crash since Squirrel would not know how to handle them.
2016-06-14 02:34:04 +03:00
Sandu Liviu Catalin 4327eaf72c Add helper functions to pack colors into integers.
This removes the need to create an instance of the Color3 or Color4 classes just to obtain a packed color integer.
2016-06-14 02:18:37 +03:00
Sandu Liviu Catalin a71b45567a Added LastArmor alias to the player class for consistency. 2016-06-14 00:50:20 +03:00
Sandu Liviu Catalin 9c547ae8a8 Add the Colour alias when retrieving the color from Checkpoints. 2016-06-13 01:33:52 +03:00
Sandu Liviu Catalin 85e881effa Fix const correctness in utility functions.
By not taking the object reference as const we are forced to make copies of objects that are const or use const_cast. Eitherway, this is the correct way because objects are not modified.
2016-06-13 00:27:06 +03:00
Sandu Liviu Catalin 67d0360fb3 Add the Colour alias when retrieving the color from Blips. 2016-06-13 00:23:30 +03:00
Sandu Liviu Catalin 6e76ec8012 Add an empty program for the Sandbox project. 2016-06-12 13:53:15 +03:00
Sandu Liviu Catalin a81b950952 Don't separate C++11 code from legacy code through macros. Make C++11 the default C++ version required. 2016-06-12 13:49:43 +03:00
Sandu Liviu Catalin 0240d192e9 Implement move semantics on the Sqrat function wrapper. 2016-06-12 13:43:29 +03:00
Sandu Liviu Catalin 3ca90d0698 Implement move semantics on the Sqrat table wrapper. 2016-06-12 13:43:19 +03:00
Sandu Liviu Catalin 4eaf365bee Implement move semantics on the Sqrat array wrapper. 2016-06-12 13:31:28 +03:00
Sandu Liviu Catalin f71a1aa667 Implement move semantics on the Sqrat object wrapper. 2016-06-12 13:31:21 +03:00
Sandu Liviu Catalin 67d6f54426 Minor optimizations in Sqrat when retrieving script strings. 2016-06-12 13:02:04 +03:00
Sandu Liviu Catalin d96a6dff0b Minor optimization when retrieving the last error. 2016-06-12 13:01:43 +03:00
Sandu Liviu Catalin 579bd4d76b Implement move semantics for Sqrat smart pointers. 2016-06-12 13:01:04 +03:00
Sandu Liviu Catalin eb58f59f81 Implemented the sub logging functionality in linux.
The sub logs used the same color as regular logs, instead of a darker/dim text.
2016-06-11 18:01:26 +03:00
Sandu Liviu Catalin e3ecc782ef Fix compile time error in Chrono library.
The get tick count functions were defined as members of the Chrono class.
2016-06-11 17:53:55 +03:00