Commit graph

93 commits

Author SHA1 Message Date
turley
ed7b16b233 normalized lineendings 2016-02-11 22:54:43 +01:00
Gabriele Tozzi
ff64e3b2b4 Minor: forcing SpinLock to be used only via SpinLockGuard 2016-02-03 06:08:26 +01:00
Gabriele Tozzi
fd24da5cd1 Documentation: reformatting some comment blocks 2016-01-25 01:17:56 +01:00
Gabriele Tozzi
530790c8f8 Comparison operators refactor: better handle weird cases, cleaning
- obj.isLesserThan() and obj.ieEqual() are now replaced by < and ==
- Removed obsolete isLT(), isLE(), isGT(), isGE()
- Also implemented comparison operators for BObjectImp
- These operators may now be fully overriden in child classes
- Default implementations are derived from == and < operators
- As a general rule (that fit into "undefined" behavior":
-- Objects are == if having the same address
-- Objects are < based on their type ID, except of Error and Uninit
   that always are < everything else.
-- Objects are supposed to implement their own < and fall back to
   base class. If not implemented, as a last fallback, the object's
   address in memory is used to do the comparison
- Added test case for comparison operators
2016-01-24 22:22:45 +01:00
Gabriele Tozzi
45959b92d2 Small memory improvement: BObjectImp.type_ is now u8 instead of int
It is very unlikely to grow to more than 256 elements any time soon.
This should save 3 bytes for every single object that derived from it.
Also added explicit int conversions and a not, for better robustness.
2015-12-29 03:21:02 +01:00
Thomas Volkert
f32001a63d Avoid compiler warnings 2015-11-01 01:04:29 +01:00
turley
c755d44e75 Added: array.cycle([count])
will move array backwards or forwards in-place as it were a conveyor belt.
{1, 2, 3}.cycle()
Will make it:
{3, 1, 2}
Accepts a negative value as a shift to move different direction
Changed: string.format()
Now actually faster than string concatenation in eScript
Fixes a bug where {:d} formating could cause an arbitrary number shown instead of a real value
tag errors are slightly more intuitive and compact.
Note: Patches submitted by andenixa
2015-07-27 19:17:49 +02:00
turley
dc3c54d3f0 misc stuff:
explicit initialization of some members
fixed a define
target cursor ids are now send 1-based instead of 0-based
clean up refpointers in sellhandlers after use (and not before)
iostats changed to atomics
2015-03-15 13:39:34 +01:00
turley
b77a13073c corrected several data races 2015-03-14 11:45:14 +01:00
turley
2ca9cac2e0 Moved fileaccess storage 2015-01-02 16:31:10 +01:00
turley
c67d744afb fixed debug build 2014-11-23 15:22:57 +01:00
frozenblit
943b820eba More and more cleanups
Added some missing include guards, corrected wrong include guard names.
Removed more stl_inc.h includes.
2014-11-02 19:40:40 +01:00
turley
54b4691bdd c++11 random mersenne twister usage added (patch submitted by Kimungu)
started to split the packet build logic into own classes (SendWorldItem/Multi checks itself which packet version needs to be build)
2014-08-01 17:05:58 +00:00
turley
331792c755 added more memoryusage estimation 2014-06-07 09:00:37 +00:00
turley
31ee263a45 activated new logging facility 2014-01-18 13:29:38 +00:00
turley
99d7dc3037 namespaces...finally :)
Hard part is finished every file is touched. Namespaces are currently rough named by directory name.
Maybe we could split it more
2013-12-21 09:10:46 +00:00
turley
b0338db350 some c++11 changes 2013-09-21 09:45:04 +00:00
turley
bed4a8ef19 automatically install clang,gcc4.8,vim
modified makefile to switch between gcc4.6,4.8 and clang (currently clang as default (nicer error msgs)
win32 default to xp toolset
more #define cleanup
replaced hash_map with c++11 unordered_map
2013-09-14 10:52:15 +00:00
turley
90f1fc9248 implemented the std mutex 2013-09-13 19:03:25 +00:00
turley
4c7f70fc79 first version of a generic message_queue (currently not lockfree, need to test more)
replaced old auto_ptr with unique_ptr
2013-09-13 18:07:19 +00:00
turley
593bea8cea the first version of the leak fix was of cause to easy... 2013-08-31 16:27:31 +00:00
turley
9d5c26cbed fixed escript memoryleak with array_assign and set_member
called on strings it always leaked, different objects only on failure.
2013-08-31 10:19:09 +00:00
turley
49b6d30aaa Some code cleanups
fixed possible crash with speech tokens
2012-09-28 16:58:05 +00:00
turley
dd214ec227 endless loop also in -= and *=
added testscript for all the 'senseless' operations
2012-02-17 19:08:42 +00:00
turley
0e1b6329fd fixed possible endless loop in - and * operator 2012-02-17 17:39:26 +00:00
turley
115dd7b2cc some more threadsafe stuff 2012-01-04 13:11:43 +00:00
turley
09800feec7 stackoverflow fix aka endlessloop 2012-01-03 14:22:53 +00:00
turley
65d51103fa major rewrite of primitive operators
major speedup of +=,-=,...
2012-01-03 11:32:26 +00:00
frozenblit
a8f62dd75a Some more cleanup for PREFAST ... 2011-12-31 00:34:44 +00:00
turley
4e7e400254 64bit compilation.. 2011-12-23 13:28:38 +00:00
KevinEady
25c1b0ccb8 11-22-2011 kevin:
Added:	pol/sqlscrobj.cpp pol/sqlscrobj.h
  Changed:	pol/module/sqlmod.cpp pol/module/sqlmod.h
  			Add preliminary MySQL database support.
  			New eScript objects: BSQLConnection, BSQLResultSet, BSQLRow 
  			Added several new sql module functions:
  				mysql_connect(host,username,password);
				mysql_query(connection,query);
				mysql_fetch_row(result);
				mysql_affected_rows(result);
				mysql_num_fields(result);
				mysql_num_rows(result);
				mysql_select_db(connection,database);
				mysql_field_name(result,column_index);
				mysql_free_result(result);
				mysql_close(connection);
			In order to build with MySQL support, define the HAVE_MYSQL preprocessor directive in your build configuration.
			You must have the MySQL headers and libraries installed. 
			Only really tested with dynamically linking mysql libraries on Linux.
			
	Added:	pol/network/auxclient.h
  Changed:	pol/network/auxclient.cpp pol/module/osmod.cpp pol/module/osmod.h clib/socketsvc.cpp clib/socketsvc.h
  			Moved AuxClient-related classes to its own header file (shared between auxclient.cpp and osmod.cpp)
  			Implemented os::OpenConnection() to create outgoing TCP/IP connections. 
  			
  Changed:	runecl/runecl.cpp
  			Added the sql module to runecl to allow quick testing

  Changed:	pol/uoscrobj.cpp pol/mobile/charactr.cpp pol/mobile/character.h bscript/parser.cpp bscript/objmembers.h
  			Added read/write property "mountedsteps" for mobiles. Represents number of steps taken while character was mounted.

  Changed:	bscript/parser.cpp
  			Declaring an array only using "{}" will show a compiler warning; please explicitly state 'array', 'struct', or 'dictionary' 
  Changed:	pol/pol.cpp
  			If using Linux, remove pol.pid on shutdown of pol.

  Changed:	pol/uoexec.h pol/scrsched.cpp
  			Added script option "AUXSVC_ASSUME_STRING" which will allow aux service connections to send and receive non-packed strings.

  Changed:	ecompile/ecompile.cpp
  			If using Linux, a slash ("/") cannot be used to define ecompile options to allow support for absolute filenames.

  Changed:	bscript/object.cpp bscript/bobject.h
  			Implemented array operation MultiSubscript. Will return a splice of an array, eg:
  				array{"a","b","c","d","e"}[2,4] will return array{"b","c","d"}
2011-11-23 05:49:30 +00:00
turley
4f053bc563 minor performance stuff + next try to fix memory problem 2011-05-16 14:48:11 +00:00
turley
d32cec7d6c Added: basic::TypeOfInt( expr ) + basic.em constants
returns like TypeOf() the type of given parameter, but returns instead of a string an integer (see basic.em constants)
since integer comparison are way faster then string comparison this function should always be used for comparisons
2011-03-12 10:51:10 +00:00
turley
a4f4686d99 Changed: "in" keyword now returns the arrayindex or 0 if no match was found 2011-02-15 16:52:32 +00:00
frozenblit
dc4ebac9bc Fixed some possibilities of leaking if an exception was thrown (bscript, code analysis) 2010-07-10 14:56:15 +00:00
turley
e10cd27cea sync: shini - long to int (prerequisit for 64-bit) 2010-03-29 14:52:03 +00:00
turley
8ad4da6ac5 Fixed: call of built-in method with ._methodname if overridden
Added: Multis now support method script
2009-12-21 13:52:18 +00:00
turley
f39cdbca71 more gcc fixes 2009-11-07 11:44:48 +00:00
turley
ff4936f20f more var scope cleanup 2009-10-07 11:47:42 +00:00
turley
8084d7c0e4 more cleanup
+pre-incrementing of iters is faster
2009-10-07 10:55:39 +00:00
muaddib_pol
4f01460d16 + bscript project upgrade to use literal paths. Removed include of ".."
+ Couple format/cleanup
2009-09-11 12:15:05 +00:00
turley
07e1c0daad Added: struct .? and .- as shortcut for .exists() and .erase() 2009-09-05 16:22:35 +00:00
muaddib_pol
d032ee448f + POL is now, open source. 2009-09-03 19:44:42 +00:00