Commit Graph

76 Commits

Author SHA1 Message Date
cajun ebc4c4fa8d add global scope 2024-09-29 14:07:07 -05:00
Twan van Laarhoven c9c708dfbe Fix #63: don't use reference arguments in openFileInPackage 2020-05-27 22:16:48 +02:00
Twan van Laarhoven c8bf037815 Fix: correct line numbers for parse errors in included files 2020-05-22 00:24:05 +02:00
Twan van Laarhoven 1a0e17221b Added StringView type (similar to std::string_view) 2020-05-21 19:29:42 +02:00
Twan van Laarhoven 7781a428f6 Add constant for escaped < 2020-05-12 21:10:01 +02:00
Twan van Laarhoven 3d6e3b3103 Use iterators instead of string positions 2020-05-12 02:09:10 +02:00
Twan van Laarhoven 420c329bc4 Added "case-of" control structure 2020-05-09 18:41:30 +02:00
Twan van Laarhoven 5f615b3117 Fix #5. Use our own function instead of wxRemoveFile, because the latter shows an error when the file doesn't exist. 2020-04-28 21:25:05 +02:00
Twan van Laarhoven 618df3b534 Script parser now produces warnings about statements where expressions are expected, and about the = comparison operator. 2020-04-27 19:14:17 +02:00
Twan van Laarhoven bad9981ad9 Cleaned up copyright block.
Removed the year so we don't get tempted to change this ever again.
2020-04-26 01:11:14 +02:00
Twan van Laarhoven 4327abb803 Remove DECLARE_TYPEOF
It is no longer needed since C++11
2020-04-26 00:51:16 +02:00
Twan van Laarhoven 64ea1d7322 Clean up pointer use:
* Use unique_ptr for Actions instead of manual memory management
 * Use unique_ptr in KeywordDatabase
 * Use unique_ptr instead of shared_ptr for file formats
 * Don't pass shared_ptr to Reader/Writer, use references instead
Also
 * Switch to C++17 so we can use map::try_emplace
2020-04-25 22:20:51 +02:00
Twan van Laarhoven a6cd6c2dd0 Spelling of canonical 2020-04-21 21:48:47 +02:00
Twan van Laarhoven 0d38c64e86 Fix parsing issues on linux: iswalpha and friends don't work correctly on non-ascii characters. 2020-04-18 01:01:57 +02:00
Twan van Laarhoven 6e7a4485a8 Cleaned up utf8 decoding code.
It was actually completely broken in newer wxWidgets versions, putting '\0' characters in the string, which broke things like concatenation.
2020-04-08 01:24:19 +02:00
Lymia Aluysia 1d912a6853 Update copyright strings. 2017-01-18 08:52:57 -06:00
Lymia Aluysia d2c635f739 Change tabs to two spaces. 2017-01-18 08:43:21 -06:00
twanvl 262b684469 don't warn about \' escape sequence.
added numeric escapes

git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@1643 0fc631ac-6414-0410-93d0-97cfa31319b6
2011-01-25 22:42:54 +00:00
twanvl 0625cd0aff Short-circuiting "and" and "or" operators
git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@1461 0fc631ac-6414-0410-93d0-97cfa31319b6
2010-07-23 23:52:34 +00:00
twanvl 4bdd0d5c01 perhaps "orelse" is better syntax then "or else"?
git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@1445 0fc631ac-6414-0410-93d0-97cfa31319b6
2010-07-21 16:50:39 +00:00
coppro cf91f9c43b Update copryright date to 2010.
git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@1438 0fc631ac-6414-0410-93d0-97cfa31319b6
2010-03-01 23:33:25 +00:00
coppro 47aa7ce923 Rename 'cannocial_name_form' to 'canonical_name_form'
git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@1433 0fc631ac-6414-0410-93d0-97cfa31319b6
2009-12-04 06:04:57 +00:00
coppro 79b18c1e72 Script cleanup for standards-compliance (not going out of bounds on vectors).
I_POP is no longer considered a binary instruction because all other binary instructions expect the stack to have at least two elements - adding a manual check is kludgy
Added I_TAILCALL to accomodate indended optimizations



git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@1417 0fc631ac-6414-0410-93d0-97cfa31319b6
2009-08-02 01:30:59 +00:00
coppro b73f081b60 Updated copyright information (2009 + my real name)
MSE now handles opening more gracefully - can handle directories and failures
Changed behavior to always save cards to separate files with intent to add VCS later (note: shouldn't do this for zip, but can't see a good way to approach this)


git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@1388 0fc631ac-6414-0410-93d0-97cfa31319b6
2009-06-19 03:09:05 +00:00
twanvl 2f3eb3ce78 warn about incorrect string escape sequences
git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@1266 0fc631ac-6414-0410-93d0-97cfa31319b6
2008-12-29 19:12:28 +00:00
twanvl 010c8d8d0b minor script parser things
git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@1243 0fc631ac-6414-0410-93d0-97cfa31319b6
2008-12-11 15:46:51 +00:00
twanvl d4e9476759 fixed: "include file" did not reset the parent package, so this didn't work:
script:
    include file: /other-package/stuff
    include file: something-from-this-package


git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@1242 0fc631ac-6414-0410-93d0-97cfa31319b6
2008-12-11 15:24:48 +00:00
twanvl dc9405e441 Added some more classes for ScriptErrors;
Added split_text function, which is the 'opposite' of break_text;
Script code "f\n(stuff)" now parses as "f;stuff" instead of a function call, "f(stuff)";
Fixed bug in cursor movement, which caused the closing > of a tag at end of input to be overwritten.

git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@1175 0fc631ac-6414-0410-93d0-97cfa31319b6
2008-08-27 18:44:59 +00:00
twanvl 9abfdd171c added "for each k:v in .. do .." statement
git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@1174 0fc631ac-6414-0410-93d0-97cfa31319b6
2008-08-27 13:06:24 +00:00
twanvl 5e4ce2862d fixed parsing of "x.0.y", the second dot was seen as a decimal point.
git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@1058 0fc631ac-6414-0410-93d0-97cfa31319b6
2008-08-05 00:31:45 +00:00
twanvl 13a37f4734 Simplified compilation of 'assert' pseudo function;
Added remove_duplicates flag to sort_list function;
Fixed documentation of <size:> tag

git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@1028 0fc631ac-6414-0410-93d0-97cfa31319b6
2008-07-22 22:46:04 +00:00
twanvl 7cb2292d36 Added ^ power operator,
Added abs, random_int, random_real, random_shuffle, random_select script functions.
Made == comparison of doubles use a small epsilon, so things like 3/2 == 1.5 are actually true.

git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@1013 0fc631ac-6414-0410-93d0-97cfa31319b6
2008-07-09 15:51:07 +00:00
twanvl c0d114c4a2 Fancier error messages for assert(X == Y)
git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@1008 0fc631ac-6414-0410-93d0-97cfa31319b6
2008-06-28 14:51:20 +00:00
twanvl 95d38f9ba6 Added 'assert' pseudo function so I can run some tests of the script code
git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@988 0fc631ac-6414-0410-93d0-97cfa31319b6
2008-06-18 21:01:17 +00:00
twanvl d00beeb55f Closure operator now behaves as default argument operator, documentation.
git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@965 0fc631ac-6414-0410-93d0-97cfa31319b6
2008-06-03 18:33:17 +00:00
twanvl c5159ebcf7 "div" operator for integer division,
Added parser support for closure operator fun@(args)
Use equal() function for all script comparisons, better support for deciding when to use strings and when to use pointers equality.

git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@964 0fc631ac-6414-0410-93d0-97cfa31319b6
2008-06-03 16:38:33 +00:00
twanvl 6912dfda09 Simplified script VM:
- removed I_RET instruction, return is now implicit at end of script
 - I_POP is not a binary instruction.

git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@963 0fc631ac-6414-0410-93d0-97cfa31319b6
2008-06-03 14:08:11 +00:00
twanvl 5b47f6f498 Improved position reporting of script errors
git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@931 0fc631ac-6414-0410-93d0-97cfa31319b6
2008-06-01 01:07:45 +00:00
twanvl f3ff6f22ae Renamed global PackageManager object to package_manager to reduce confusion
git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@907 0fc631ac-6414-0410-93d0-97cfa31319b6
2008-05-31 14:45:04 +00:00
twanvl 1b516e781f Script support for AColors. All colors in script related code are now AColor.
git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@852 0fc631ac-6414-0410-93d0-97cfa31319b6
2008-05-16 20:51:16 +00:00
coppro 26562e03e3 Updated copyright information - added my name and also changed 2007 to 2008
git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@837 0fc631ac-6414-0410-93d0-97cfa31319b6
2008-04-06 18:16:32 +00:00
twanvl d2196eea09 Finally got precompiled headers to work.
Now all C++ files need to #include <util/prec.hpp>
 That is why all .cpp files are touched by this commit

Many changes to installers and update checking:
     - the window is now called PackagesWindow, in a new source file
     - update checking is now independent from the PackagesWindow. For update checking only a list of package versions are needed (vector<PackageDependency>). This is much less information to download at each startup.
     - the list of available packages is now a list of available Installers, since an installer can contain multiple packages.
     - moved the logic of dependency checking etc. to data/installer
     - moved the actual installation to util/io/package_manager
     - moved directory iteration/creation logic to util/file_utils
     - added PackageDirectory: the local and global package directory now have their own object (was part of PackageManager)
     - added PackageVersion: for detecting if a package has been modified after it was installed.
     - added PackageDescription: description/header of a package. Basicly the same as what Packaged provides.
     - added DownloadableInstaller: where to find an insaller, what does it contain?
     - added InstallablePackage: brining it all together: installer, package, status, action.

Current status: the insaller is currently broken in a few places, more on that soon.

git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@792 0fc631ac-6414-0410-93d0-97cfa31319b6
2007-12-29 18:30:41 +00:00
twanvl 547a48b98d - Optimization: common parameters to built in functions are no longer looked up as a string at each call, instead their integer ids are global constants
- Optimization: some other minor tweaks.
 - Nicer --help message

git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@783 0fc631ac-6414-0410-93d0-97cfa31319b6
2007-12-24 02:04:45 +00:00
twanvl 36a36356c5 The 'Big Whine' patch:
Any use of a file from another package without a declared dependency will give a warning;

Also added some more _LOCALE_123_ macros so we need less format_string calls

git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@753 0fc631ac-6414-0410-93d0-97cfa31319b6
2007-09-24 20:24:22 +00:00
twanvl 087af8360d Added <soft> tag that takes up no space for alignment purposes;
used this tag for magic creature types;
Added correct handling of Tribal sub types;
Fixed sort_index use by spoiler export template

git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@637 0fc631ac-6414-0410-93d0-97cfa31319b6
2007-08-28 20:49:25 +00:00
twanvl fcc89b64d6 Added support for scripts to determine word lists;
Added 'trim' and 'remove_tags' script functions;
Simplified safety improvements of locale checker;
Added 'is_targeted' function to magic game to replace the contains(..) calls

git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@635 0fc631ac-6414-0410-93d0-97cfa31319b6
2007-08-28 18:33:38 +00:00
twanvl c7d31ddb4a Implemented selection using rectangles in symbol editor
git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@535 0fc631ac-6414-0410-93d0-97cfa31319b6
2007-07-09 21:19:59 +00:00
twanvl b409188013 Symbol editor now has constraints on selection, but part list allows selection inside groups.
Added logical 'xor' operator for scripting.

git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@534 0fc631ac-6414-0410-93d0-97cfa31319b6
2007-07-09 20:43:16 +00:00
twanvl 4ca572a29f Added min and max script pseudo-functions
git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@497 0fc631ac-6414-0410-93d0-97cfa31319b6
2007-07-05 23:55:31 +00:00
twanvl 86393f33dc Fixed bug in script parser/compiler: "x[if a then b else c]" was incorrectly optimized;
Sciript parse errors in include files now get reported for the right file and line number.

git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@458 0fc631ac-6414-0410-93d0-97cfa31319b6
2007-07-01 18:11:48 +00:00