Commit graph

95 commits

Author SHA1 Message Date
turleypol
6a2bd7c705 Merge remote-tracking branch 'origin/master' into vector_classes
* origin/master: (93 commits)
  Add support for dictionary creation (#277)
  Add do-while statement (#276)
  Add foreach loops (#275)
  New compiler: array initialization (#274)
  Disambiguator: figure out if label is a case statement dispatch selector, or should apply to a statement within the case dispatch group's block. (#273)
  New compiler: Add support for case statements (#272)
  Change "logical" to "bitwise". (#258)
  Fix divide-by-zero errors, and mask FormatError if it were thrown in a destructor. (#271)
  Add break and continue statements. (#270)
  New compiler: assignment to local and global variables. (#269)
  Add support for while loops (#268)
  Optimize if statements, and emit module functions in legacy order (#267)
  Optimizations: binary operators (#266)
  Add binary operators (#265)
  Add support for const declarations (#264)
  Handle default parameter values, pass-by-name, and return statements in functions. (#263)
  Add limited support for user functions (#262)
  New compiler: add return and exit statements (#261)
  Add support for if-then-else statements (#259)
  OG compiler: set module to Mod_Basic when a token is an identifier (#257)
  ...
2020-09-06 20:14:26 +02:00
Fernando Rozenblit
cbadd96b49
General cleanup of module includes (#253)
1) Made all module methods [[nodiscard]]. Glad to report no leaks were found. We should add the same to BObjects.

2) Protected members of NPCExecutorModule (were public before).
3) Added NPCExecutorModule::controlled_npc() so that osmod can access the npc's name and position.

4) Removed declarations for undefined functions:
- attributemod.h: mf_SetAttributeIntrinsicMod()
- osmod.h: mf_System_RPM()
- vitalmod.h: mf_SetVitalMaximumValue() and mf_SetVitalRegenRate()
2020-08-29 11:35:13 +02:00
turleypol
0db360106f missing header and wrong style 2020-04-18 16:39:43 +02:00
Fernando Rozenblit
a6d35d3929 Minor fixes 2020-04-05 23:16:44 +02:00
Kevin Eady
12d6186d10
Script option enhancements (#118)
* Fix SCRIPTOPT_CAN_ACCESS_OFFLINE_MOBILES

* Add SCRIPTOPT_SURVIVE_ATTACHED_DISCONNECT

* wip beginning work on templatization

* Use PolModule in pol-specific modules

* wip, creating PolModule with getXYZParam

* wip 1, moving getXYZ to UOExecutor

* compilable with PolObjectImp / PolApplicObj

* add type guard

* wip, change signatures

change signatures of script_method, script_method_id, and
custom_script_method

* compilable (windows)

* linux fixes

* namespace fixes

* remove uoexhelp

* formatting

* compilable

- move can_access_offline_mobiles back to uoexec
- add guildscrobj and partyscrobj sources
- move EGuildRefObjImp and EPartyRefObjImp
- wip, implement asUOExec
- formatting uoexec.cpp,.h

* finish uoexec() helper

* some cleanup
2020-02-08 09:21:35 +01:00
turleypol
7e8f92bc85 rewrote module function generation, maybe this works 2019-11-10 22:04:08 +01:00
Kevin Eady
ca850a0c76 project refactoring 2019-10-18 21:32:30 +02:00
Kevin Eady
5c0fb7c4ea First support for .em-parsed module function tbls
- Create module parser custom target
- Include generated tables in .cpp sources
- Standardize module function names based off .em names
2019-10-17 22:37:26 +02:00
Kevin Eady
b55e852a5b wip 1 2019-10-17 19:08:49 +02:00
Fernando Rozenblit
818c06af96 GetProcess(-1) will now return the script pid. GetProcess(0) will not find any script, as before. For this change, script pids had to be constrained to the range of valid signed ints. Please update your .em's and recompile. 2019-09-30 23:49:31 +02:00
turleypol
ee046a9904 os::HttpRequest can handle now compressed responses.
Added todo line that no sanitize happens for this method. Lets wait
until the first one has problems. Optional param maybe or check the
response header.
2019-09-04 17:50:14 +02:00
Jonathan Morland-Barrett
a31f1d509b Added error for if NaN sent as PID 2019-08-22 14:12:01 +08:00
Jonathan Morland-Barrett
35535a220a Fix for GetProcess() not actually loading the parent PID. 2019-08-22 07:42:08 +08:00
GIB
d8911acc72
Hotfix/start skill script (#90)
* Update os.em file so that script parameter is passed as a string by default instead of int.
Updated docs for start_skill_script to be clearer what is being asked for, and reflect changes to os.em
Modified script param check to also check the string length.
2019-06-17 21:23:57 +08:00
Fernando Rozenblit
f4f9c20afd Merge branch 'master' into network-improvements 2019-04-26 20:33:27 +02:00
Kevin Eady
f5fad28cf7 Reorder initializers 2019-03-15 01:11:59 +01:00
Kevin Eady
44f2ebbe90 Refactor to make os_module private in UOExecutor 2019-03-11 21:37:51 +01:00
Fernando Rozenblit
bc79dc046e Moved basic network files to clib 2019-03-04 21:41:27 +01:00
turleypol
1ae8963db9 Socket is now a only moveable type (like it always was)
cleanup connect api
2019-02-23 21:30:20 +01:00
Fernando Rozenblit
0c077678df Removed option "Multithread" from pol.cfg. POL for a long time has defaulted to using multiple threads. 2019-02-22 19:24:23 +01:00
turleypol
395083a31c memoryestimation did not add the module cost per executor
added EstimateSize util.em function returns estimated memorysize in
bytes of given argument. (docs to be done)
2019-02-01 23:18:43 +01:00
turleypol
9cfb4ec5a5 moved pkt headers into network folder 2018-12-30 21:35:54 +01:00
turleypol
3e656ed5f8 fixed all gcc/clang warnings which where disabled 2018-10-31 15:40:25 +01:00
esdete
dc2d29b433 NULL to nullptr 2018-07-31 14:30:29 +02:00
Gabriele Tozzi
b72f725e02 Whitespace fixes 2018-04-03 04:13:03 +02:00
turleypol
3afc41241b
CMake on windows (#48)
CMake can now also be used for windows
2018-02-24 22:34:55 +01:00
turleypol
dbb25bdb62
Include and buildsystem cleanup (#45)
Include cleanup
Reworked buildsystem (Linux only)
Removed dynamic libs, Linux now again uses static linking (like windows)
2018-01-29 21:55:48 +01:00
turley
414b53252f Fixed a few warnings 2018-01-03 15:18:47 +01:00
turleypol
5ed9973f0f fixed memleak 2018-01-03 12:30:23 +01:00
turleypol
ceb8a32fb4 Merge remote-tracking branch 'origin/master' into curl
* origin/master:
  fixed windows build due to missing header
  Cleanup of header includes.
2018-01-01 23:00:51 +01:00
turleypol
798eda5b63 Cleanup of header includes. 2018-01-01 21:52:14 +01:00
turleypol
4c804b4702 format httprequest method
removed unneeded dependency for poltool/uoconvert
2018-01-01 00:45:48 +01:00
Kevin Eady
517fe81314 Merge master and resolve conflicts 2017-12-28 18:15:55 +01:00
Kevin Eady
ff253776d3 Changes from review 2017-12-28 17:31:59 +01:00
Kevin Eady
ef5562f25c Initial implementation of libcurl support 2017-12-27 21:46:13 +01:00
turleypol
35a156dd20 added os::PerformanceMeasure() can be used to find scripts which slow
the server down.
2017-12-23 21:21:04 +01:00
turleypol
37ec763c81 format sources 2017-10-21 18:12:38 +02:00
turleypol
63a3979b2f activated for ingoing auxconnections the threadpool
fixed initialization order of AuxClientThread
do not let members uninitialized in AuxClientThread
some minor tunings
2017-10-21 18:07:46 +02:00
GIB
9d68a815e6 Changed some poor comparisons.
Fixed _assume_string being an int in auxclient.h
2017-10-21 05:57:19 +08:00
GIB
56c0695028 Fixing some bool problems. 2017-10-20 23:42:30 +08:00
GIB
38a4ff7bb5 Added assume_string flag to OpenConnection() 2017-10-20 21:30:35 +08:00
GIB
42fdf370c1 Fixed weak pointer 2017-10-18 21:56:45 +08:00
GIB
2402c08632 Changed param for OpenConnection to be optional.
Activated threadpool for OpenConnection similar to how AuxConnections currently work.
Cleared some required PERGON if's out of the globals/network file.
Modified Aux Client to support params.
2017-10-18 21:26:38 +08:00
GIB
6432d07b96 Added params to OS::OpenConnection() to allow you to pass parameters to the script that is run for the connection 2017-10-11 23:38:54 +08:00
turley
d99bf129e6 corrected unsigned usage requirement of the pid argument 2017-07-30 00:06:53 +02:00
Jono@home
f60babb407 +Added: _DEFAULT_TEXT_REQUIREDCMD := 0 to uo.em which allows to set a minimum cmd level that broadcasts will be sent to.
~Changed:Broadcast( text, font := _DEFAULT_TEXT_FONT, color := _DEFAULT_TEXT_COLOR, requiredcmdlevel := _DEFAULT_TEXT_REQUIREDCMD ) adding requiredcmdlevel argument which allows you to set a minimum cmd level that the broadcast will be sent to.
~Changed: No longer require a PID for GetProcess( pid  := "" ), not selecting a PID will use the PID of the parent script.
2017-07-23 20:44:37 +08:00
Fernando Rozenblit
eb34290222 Cleanup for modules' function tables 2017-01-24 21:57:16 +01:00
turley
f9c3db9e41 Modules share the same (helper) template base class
Optimize function name search for all modules not only uo by using an additional map, replaced c array with vector for functionsdef.
Simplified pragma pack order. (MSVC version is supported in all
compilers)
Removed compilerassert.h (asserteql,..) replaced with static_assert
Removed some old #ifs
2016-12-20 23:53:32 +01:00
frozenblit
c08100ef54 More reorganization...
Now pidlist and new_pid are also encapsulated. The class should probably
be split into two: script scheduler, script storage.
2016-11-07 00:05:16 +01:00
frozenblit
079aeeae29 More code reorganization for scriptscheduler
Runlist is now private. This will help when finally fixing
some
scheduler bugs. Still have to encapsulate pidlist...
2016-11-06 22:55:37 +01:00