Commit Graph
89 Commits
Author SHA1 Message Date
lolbot-iichan 0781584dfc WINTERMUTE: Suppress warning on Directory.Create() for Hamlet 2019-07-16 20:24:42 +03:00
lolbot-iichan ed635a5b01 WINTERMUTE: Fix File.WriteText method
Removed unnecessary '\0' byte written after a string. Reasons to remove:

1. Hamlet game does not write 0 after string when running this code:
var SomeFile = new File((Game.SaveDirectory + "\gamelet.save"));
SomeFile.OpenAsText(2);
SomeFile.WriteText(LVL_N);
SomeFile.Close();

2. Original WME does not have this:

https://github.com/retrowork/Wintermute-Engine/blob/master/src/engine_core/wme_base/SXFile.cpp#L303
2019-07-16 20:24:42 +03:00
lolbot-iichan 9eca2b4c54 WINTERMUTE: Implement saving files using SavefileManager 2019-07-16 20:24:42 +03:00
lolbot-iichan 4bb82a8dae WINTERMUTE: Add dummy implementation of Directory global object
Source:
http://docs.dead-code.org/wme/generated/scripting_ref_directory.html
2019-07-16 20:24:42 +03:00
lolbot-iichan 4b763f0e9e WINTERMUTE: Add debugN + comment for getNumScripts() 2019-06-25 08:10:16 +03:00
lolbot-iichan 1e005d37e2 WINTERMUTE: Handle enum in GetNumScripts
This code is used only in debug mode and only to display some script
counters.
States are handled in the very same way in WME Lite, so there is no
reason to log tons of warning here.
2019-06-25 08:10:16 +03:00
lolbot-iichan a7efc8afd8 WINTERMUTE: Fix Split() method of ext_string
It's hard to believe, but this fixes bug "#10432" WME Carol Reed
Mysteries hint system not working.

Carol Reed hint system happen to heavily use line.Split(";") results,
which were wrong by 1 byte (delimeter was appended to result while it
shouldn't be).

I started with decompiling Carol Reed source code, reproducing issue
with a stand-alone test project (which worked with WME and showed [null]
with ScummVM). then minimized it to a minimal testcase:

var line = new String("New Goal;Visit Christina at the Art
Museum;1;0;S;;");
var ar = line.Split(";");
if((ar[0] == "New Goal")) { var g = ar[1]; }
2019-06-18 21:20:33 +03:00
David Fioramonti 8e1f712327 WINTERMUTE: Use degree conversion common math funcs 2018-07-03 23:08:48 +01:00
Filippos Karapetis f629a32819 WINTERMUTE: Fix compilation with MSVC
Change the way that EXTENDED_DEBUGGER_ENABLED is checked. The way it
was used, it triggered a fatal error C1017
2016-08-22 13:06:20 +03:00
Tobia Tesan cd5229bc73 WINTERMUTE: Remember to delete watch instances 2016-03-01 20:40:46 +01:00
Tobia Tesan bf9865ebbb WINTERMUTE: Do not delete a pointer we do not own in resolveName 2016-03-01 20:40:46 +01:00
Tobia Tesan a120aa8559 WINTERMUTE: Add Watch functionality 2016-03-01 20:40:46 +01:00
Tobia Tesan dae732814c WINTERMUTE: Add name resolution to DebuggableScript 2016-03-01 20:40:45 +01:00
Tobia Tesan 06021d1aab WINTERMUTE: Add post instruction hook to DebuggableScript 2016-02-29 14:51:58 +01:00
Tobia Tesan d4f94b7d19 WINTERMUTE: Add DebuggableScript and DebuggableScriptEngine classes
These extend the script engine and allow for monitoring and adding
pre/post instruction hooks
2016-02-29 11:36:53 +01:00
Tobia Tesan cd5d60e44c WINTERMUTE: Make _operand protected in script.h 2016-02-29 00:28:05 +01:00
Tobia Tesan 04a96689c2 WINTERMUTE: Remove dead code from vestigial remnants of WME debugger 2016-02-29 00:28:05 +01:00
Johannes Schickel b6b6d39992 WINTERMUTE: Silence/fix some warnigns when compiling Symbian port.
See bug #6625 "WINTERMUTE: Symbian Compilation Warnings".
2014-06-08 18:53:39 +02:00
Filippos Karapetis 5d0ebad996 WME: Fix bug #6531 - "WME: Art of Murder - Assertion" 2014-02-19 00:42:10 +02:00
Johannes Schickel fc5ef58fff WINTERMUTE: Make GPL headers consistent in themselves. 2014-02-18 02:39:40 +01:00
Johannes Schickel a6fff7a805 WINTERMUTE: Switch WideString to U32String. 2013-11-23 21:34:54 +01:00
Einar Johan Trøan Sømåen 4e2bec5311 WINTERMUTE: Transfer Const Char* explicitly when saving/loading. 2013-11-05 13:58:02 +01:00
Einar Johan Trøan Sømåen 237d3d86ec WINTERMUTE: Transfer Char* explicitly when saving/loading. 2013-11-05 13:54:25 +01:00
Einar Johan Trøan Sømåen d07409def7 WINTERMUTE: Transfer Sint32s explicitly when saving/loading. 2013-11-05 13:48:11 +01:00
Einar Johan Trøan Sømåen 7892188bcf WINTERMUTE: Transfer Uint32s explicitly when saving/loading. 2013-11-05 13:31:13 +01:00
Einar Johan Trøan Sømåen 4c3c707671 WINTERMUTE: Transfer Doubles explicitly when saving/loading. 2013-10-29 02:59:53 +01:00
Einar Johan Trøan Sømåen 6b4adab654 WINTERMUTE: Transfer booleans explicitly when saving/loading. 2013-10-28 19:19:12 +01:00
Willem Jan Palenstijn 023914d121 WINTERMUTE: Disambiguate empty and NULL strings when saving
The string stored is now strlen(s)+1, with length 0 indicating NULL.

Increment savegame version for this new format.

Old savegames are fixed by assuming VAL_STRING should never be NULL.
2013-09-05 22:12:49 +02:00
Willem Jan Palenstijn dd9ab7accb WINTERMUTE: Don't clean up _scripts mid-iteration
Scripts executing from ScEngine::tick() can call
ScEngine::unbreakableTick() via scCallMethod("SaveGame") and
applyEvent("BeforeSave").

This recursive execution could cause finished scripts being removed
from _scripts while ScEngine::tick() is still iterating over that array.
2013-09-05 20:23:42 +02:00
Johannes Schickel 1ce54c217a WINTERMUTE: Fix end of namespace comments. 2013-08-04 00:51:09 +02:00
Einar Johan Trøan Sømåen e19656464c WINTERMUTE: Set _scriptStream to nullptr after deletion
(Clang static-analyzer issue)
2013-07-23 18:39:50 +02:00
Einar Johan Trøan Sømåen 7cc19bf29d WINTERMUTE: Avoid explicitly including <math.h> 2013-06-18 01:35:49 +02:00
Einar Johan Trøan Sømåen f1c3869669 WINTERMUTE: Fix ScriptExtDate-saving (bump savegame-version to 1.2.1).
This also fixes int->int32 in ScriptExtDate::transfer.
2013-04-20 18:32:42 +02:00
Einar Johan Trøan Sømåen d8eff7be22 WINTERMUTE: Change ScriptValue to use int32. 2013-04-20 18:18:54 +02:00
Einar Johan Trøan Sømåen a2fb3dfe9e WINTERMUTE: Replace a few more ints by int32s. 2013-04-19 18:13:42 +02:00
Einar Johan Trøan Sømåen 72d0affe01 WINTERMUTE: Rename transfer(void *) to transferPtr(void *) to avoid overload-misses. 2013-04-19 17:17:53 +02:00
Einar Johan Trøan Sømåen b6242d0ea5 WINTERMUTE: Use int32 instead of int in classes. 2013-04-18 17:45:50 +02:00
Einar Johan Trøan Sømåen 8f25b651e8 WINTERMUTE: Split the timers from BaseGame into a separate class. 2013-04-18 12:10:40 +02:00
Einar Johan Trøan Sømåen 3ff6af3dde WINTERMUTE: Use strlcpy instead of strcpy in SXString::scCallMethod() 2013-04-17 17:11:44 +02:00
D G Turner 69ba094f60 WINTERMUTE: Really fix build breakage...
strlcpy() needed qualification of Common namespace.
2013-03-24 19:04:36 +00:00
D G Turner 502cde4fa0 WINTERMUTE: Fix build breaking missing header declaration.
This is required to declare the strlcpy() function.
2013-03-24 18:56:48 +00:00
Einar Johan Trøan Sømåen d136e20d6e WINTERMUTE: Replace WMELite's String-Split-function with code from WME. 2013-03-24 18:55:33 +01:00
Einar Johan Trøan Sømåen 0407906bfa WINTERMUTE: Redo the way floats are saved, break savegame compatibility with WME Lite completely.
(This also breaks compatibility with savegames from ScummVM prior to this commit, AND resets the
Savegame-version, older savegames will have differing MAGIC-numbers in their headers, and will thus
not be recognized).
2013-01-31 23:59:21 +01:00
Einar Johan Trøan Sømåen 980dc4a456 WINTERMUTE: Replace all NULLs with nullptr. 2013-01-26 18:07:07 +01:00
Einar Johan Trøan Sømåen c239b868da WINTERMUTE: More formatting fixes. 2013-01-24 20:17:17 +01:00
Einar Johan Trøan Sømåen 5d4d65d6d9 JANITORIAL: Fix ){ -> ) { 2013-01-24 20:15:13 +01:00
Einar Johan Trøan Sømåen 487539f102 WINTERMUTE: Remove commented out code. 2013-01-24 18:39:57 +01:00
Einar Johan Trøan Sømåen 53512b0841 WINTERMUTE: Const-ify member-functions that obviously should be const. 2012-12-03 10:42:58 +01:00
Einar Johan Trøan Sømåen ea024cd203 WINTERMUTE: Avoid including script_ext_math.h in base_game.cpp 2012-12-02 20:46:26 +01:00
Einar Johan Trøan Sømåen afc21941e3 WINTERMUTE: Make scGetProperty use Common::String& instead of const char* 2012-09-29 00:47:12 +02:00