Commit Graph

60 Commits

Author SHA1 Message Date
Willem Jan Palenstijn
3d0c691694 SCI: Handle pronouns in parser
When parsing a sentence, its type 0x142 word (presumably the object) is
now stored. Any pronouns (type 0x080) are then automatically replaced by
this stored word.
2015-05-03 17:21:07 +02:00
Filippos Karapetis
740d1620f2 SCI: Simplify check for non-alphanumeric characters in the parser
This is also for bug #6608. Many thanks to wjp for his help with this
2014-10-15 19:44:03 +03:00
Filippos Karapetis
e6d1337e11 SCI: Ignore most of the non-alphanumeric characters in the parser
This is a more proper handling of non-alphanumeric characters (e.g.
apostrophes) in SCI games with a parser - bug #6608
2014-10-15 18:51:14 +03:00
Filippos Karapetis
e11fe13620 SCI: Handle 's at the end of words - bug #6608 2014-08-08 03:59:02 +03:00
Filippos Karapetis
593c8c9bed SCI: Code formatting fixes 2014-08-08 02:59:45 +03:00
Johannes Schickel
daa8d57a86 ALL: Rename Debugger::DebugPrintf to Debugger::debugPrintf. 2014-05-27 02:04:07 +02:00
Johannes Schickel
8fc7d60feb SCI: Make GPL headers consistent in themselves. 2014-02-18 02:39:37 +01:00
Martin Kiewitz
3f116d98bc SCI: fix negative array access in parseNodes
was used for debug command only
CID 1003543
2014-01-27 22:27:21 +01:00
Willem Jan Palenstijn
38fa74d24a SCI: Fix (unlikely) memory leak 2013-04-25 20:48:32 +02:00
Willem Jan Palenstijn
b1534913c1 SCI: Remove dead code 2013-04-17 23:49:08 +02:00
Willem Jan Palenstijn
9ffe3e11d9 Merge pull request #182 from fingolfin/forbid-ctype
ALL: Avoid using is* macros from ctype.h
2012-02-21 11:33:32 -08:00
Max Horn
4f8665fc83 COMMON: Move isFoo functions to namespace Common, add doxygen comments 2012-02-20 16:18:27 +01:00
Tarek Soliman
a4798602d7 JANITORIAL: Fix missing whitespace in pointer cast
find -name '*.h' -or -name '*.cpp' | xargs sed -r -i 's@\(([A-Za-z0-9]+)\*\)@(\1 *)@g'

This seems to have caught some params as well which is not undesirable IMO.
It also caught some strings containing this which is undesirable so I
excluded them manually. (engines/sci/engine/kernel_tables.h)
2012-02-15 10:07:10 -06:00
Max Horn
658080deed ALL: Avoid using is* macros from ctype.h
On some systems, passing signed chars to macros like isspace() etc. lead
to a runtime error. Hence, mark these macros as forbidden by default,
and introduce otherwise equivalent alternatives for them.
2012-02-15 16:51:37 +01:00
Christoph Mallon
23a0f5318c JANITORIAL: Remove trailing empty lines. 2011-08-07 13:53:33 +02:00
Max Horn
88913c0139 ALL: Remove trailing whitespaces
This tries to make our code a bit more compliant with our code formatting
conventions. For future use, this is the command I used:
  git ls-files "*.cpp" "*.h" | xargs sed -i -e 's/[ \t]*$//'
2011-06-20 00:59:48 +02:00
Willem Jan Palenstijn
0788493015 SCI: Don't do suffix expansions after exact dict match
This fixes the parsing of "buy healing pills" in QfG2 (bug #3288328).
The behaviour is half-confirmed with experimentation in SSCI.
2011-05-14 18:08:20 +02:00
strangerke
69b1485a22 GIT: Clean up: Suppress SVN tags, now useless 2011-05-12 01:16:22 +02:00
Ori Avtalion
9414d7a6e2 JANITORIAL: Reduce header dependencies in shared code
Some backends may break as I only compiled SDL
2011-04-28 15:08:58 +03:00
dhewg
d83a83ef50 JANITORIAL: Remove/comment unused vars
Found by GCC 4.6's -Wunused-but-set-variable
2011-03-29 21:57:56 +02:00
Willem Jan Palenstijn
eece58df7f SCI: Remove unused argument to said 2011-03-08 22:50:32 +01:00
md5
72f65b3946 SCI: Renamed SCI_VERSION_1_EGA to SCI_VERSION_1_EGA_ONLY
This renaming allows us to better distinguish that this version is for games
that only had an EGA version, and avoid confusion with newer SCI1 game releases
with EGA graphics (e.g. KQ5 EGA). The only game with this SCI version is QFG2,
a SCI1 EGA game with a parser. Also, added some games for each SCI version.
2011-02-27 16:48:53 +02:00
Matthew Hoops
1bbe49dba9 SCI: Silence a gcc warning
svn-id: r55043
2010-12-26 14:56:51 +00:00
Filippos Karapetis
9af30a2546 SCI: Now saving/loading the list of synonyms (set by kSetSynonyms), like SSCI did
This is a more correct way of fixing bug #3037618 than in rev #55017.
- Changed replaceant/replacement to be uint16's (they're very small positive
values, usually smaller than 4096)
- Changed SynonymList to an Array (so that it can be saved/loaded)
- Removed the PQ2 script patch to Game::replay()
- Added savegame history

svn-id: r55032
2010-12-24 14:47:47 +00:00
Filippos Karapetis
de2ef2edc0 SCI: Removed the system strings code and replaced it with a much more simplified version, thus greatly simplifying handling of system strings
svn-id: r54805
2010-12-07 00:47:05 +00:00
Max Horn
ba3e826872 SCI: Remove any use of printf
svn-id: r54037
2010-11-02 09:49:47 +00:00
Max Horn
a984fb17c2 GUI: Add GCC_PRINTF to GUI::Debugger::DebugPrintf & fix resulting warnings
svn-id: r54007
2010-11-01 16:03:35 +00:00
Willem Jan Palenstijn
11d9f1ec54 SCI: Support alternative inputs from vocab 913
This allows the input of accented characters and Japanese using plain ascii
in non-English games.

svn-id: r53001
2010-10-03 20:58:50 +00:00
Willem Jan Palenstijn
73310fe237 SCI: Remove unused function
svn-id: r52990
2010-10-03 10:49:58 +00:00
Willem Jan Palenstijn
f98536eef5 SCI: Allow multiple word groups in parser
In SCI01 and up, each typed word may be interpreted as multiple
class,group pairs. This patch adds support to the vocabulary and
parser. It uses the matcher support added in r52985.

This fixes parser issues in German LSL3, but needs testing.

svn-id: r52989
2010-10-03 10:49:42 +00:00
Willem Jan Palenstijn
a6839d5ffd SCI: Fix memleak
svn-id: r52986
2010-10-02 23:17:19 +00:00
Willem Jan Palenstijn
ab46bf0f61 SCI: Allow multiple word groups in parse tree leafs
This is to prepare for multilingual SCI versions. In those a single typed word
may be parsed to multiple class,group pairs, any of which may match
the said specs. The actual parsing is not yet implemented.

svn-id: r52985
2010-10-02 23:17:03 +00:00
Willem Jan Palenstijn
4a9f2204c4 SCI: Fix typo in testcase
svn-id: r52984
2010-10-02 22:11:51 +00:00
Matthew Hoops
07b67fe44b SCI: Fix using the parser in SCI Fan Games
Get a pointer to the said spec instead of copying to a buffer. The fan games use a said spec with size < 64. Also, make said() take a const pointer as the spec cannot change. Thanks to waltervn and wjp.

svn-id: r51432
2010-07-28 19:03:49 +00:00
Matthew Hoops
00ff92e9e0 SCI: Remove SCI01 vocab warning, this behavior is normal
svn-id: r51421
2010-07-28 14:34:32 +00:00
Martin Kiewitz
d49d1d60fe SCI: added said spec dump ability to logkernel
svn-id: r51242
2010-07-24 11:51:09 +00:00
Willem Jan Palenstijn
198986b25b SCI: Add more parser test cases
svn-id: r51167
2010-07-22 21:16:36 +00:00
Willem Jan Palenstijn
688416ca30 SCI: Swap suffix' class_mask result_class
Now 'coldly' is correctly recognized as the adverb form of 'cold',
and 'attained' as the adjective form of 'attain'.

svn-id: r51166
2010-07-22 21:13:06 +00:00
Willem Jan Palenstijn
a97d8875f5 SCI: Rewrite said spec handling.
We now use a manual parser instead of a bison-generated one, and the
new code to match said trees with parse trees matches sierra's more
closely.

Also change the parse/spec tree nodes to use direct pointers to
their child nodes to make it more convenient to manipulate the trees.

This has a high potential for regressions.

svn-id: r51099
2010-07-21 19:59:33 +00:00
Martin Kiewitz
f4a5714477 SCI: make sci0 foreign vocabulary also work
makes pq2 load japanese vocabulary too

svn-id: r51033
2010-07-19 16:01:16 +00:00
Martin Kiewitz
b7b904f981 SCI: fix regression of r51027
we have to reset the parser when switching vocabulary

svn-id: r51031
2010-07-19 15:30:27 +00:00
Martin Kiewitz
cda55fe770 SCI: parser now matches extended chars too
fixes multilingual games not accepting words that contain extended chars (>= 0x80)

svn-id: r51029
2010-07-19 14:50:37 +00:00
Martin Kiewitz
2a0cff5c6d SCI: implement foreign vocabulary support
not fully working, extended chars do not work currently as input

svn-id: r51027
2010-07-19 13:50:06 +00:00
Martin Kiewitz
07009b045e SCI: fix parser crash on >=0x80 chars
svn-id: r51025
2010-07-19 11:41:20 +00:00
Martin Kiewitz
42107e2f5c SCI: vocab version change for pq2 japanese
pq2 japanese only uses sci01 vocabulary and everything else is still like in sci0 - fixes pq2 not accepting any input in parser

svn-id: r51024
2010-07-19 10:38:03 +00:00
Willem Jan Palenstijn
1e72d48867 SCI: Work on optional expressions in said rules.
This fixes a number of said specs in Iceman, but has a good
chance of introducing regressions since it's fairly invasive.
It also removes the need for the hack in r50958.

svn-id: r50992
2010-07-18 13:31:23 +00:00
Martin Kiewitz
bbcf020457 SCI: adding detection for SCI01 vocab inside a SCI0 game that's using the SCI0 vocab resource number, fixes pq2 japanese crashing on startup
svn-id: r50970
2010-07-17 22:11:35 +00:00
Martin Kiewitz
7ac5c3ef4f SCI: added iceman hack to original said.y as well
svn-id: r50959
2010-07-17 12:57:05 +00:00
Martin Kiewitz
e9ed821953 SCI: add hack for iceman to skip [!*] in kSaid, fixes green board / depth affirmative not recognized
svn-id: r50958
2010-07-17 12:46:57 +00:00
Martin Kiewitz
e000d28654 SCI: fix debugging code of parser, add 0xffe special group into debug support
svn-id: r50956
2010-07-17 12:06:31 +00:00