Commit Graph
156 Commits
Author SHA1 Message Date
kichikuou 36cee9aff8 Treat touches outside the viewport as right-clicks
The old method to simulate right click (two-finger touch) still works.
2023-03-03 10:50:54 +09:00
kichikuou 3a13f27dcf Add a hack to improve menu usability in Alice's Cottage 3
Some screens in Alice's Cottage 3 have menus implemented on the script
side. The script does not know the absolute position of the mouse
pointer (cursor movement is done by obtaining the relative movement
distance of the mouse), so the mouse pointer and the selected item were
often misaligned, and the cursor could not be moved by touch operation.

This adds a hack to the K3 command that emulates cursor movements by
absolute mouse pointer location.
2023-02-25 14:29:04 +09:00
Adrian Graber 76a255619d Log fatal errors through SDL_LogError too 2022-10-29 08:25:07 +09:00
kichikuou bbb51f4912 Always enable GameController, and remove unused USE_JOY code 2022-10-27 20:03:47 +09:00
Adrian Graber 034ab8dd03 Implement GameController through SDL2 2022-10-27 20:02:02 +09:00
kichikuou 2f2e5f9aa7 Skip 400ms delay after opening menu if mouse movement is disabled
This removes the 400ms delay in NACT::wait_after_open_menu() if
automatic mouse movement is disabled, because there's less risk of
miss-clicking.
2022-08-07 18:12:18 +09:00
kichikuou 2f55371c10 Windows: Add a menu command to control automatic mouse movement 2022-08-07 17:36:13 +09:00
kichikuou 2cb0b2a2a2 Reuse SDL_Renderer after VM reset
Otherwise mouse input doesn't work after restart in emscripten port.
2022-06-26 15:00:23 +09:00
kichikuou 578a8bf095 Emscripten: Expose sys_restart() function 2022-06-26 14:56:23 +09:00
Xanardi 1d52d0d411 Fix MSVC2017 build error 2022-04-23 08:52:48 +09:00
kichikuou cc75dd7c94 Convert linebreaks from CRLF to LF 2022-04-03 11:34:48 +09:00
kichikuou dc471399e5 Rewrite fade in / fade out implementation
Before this change, fade in and fade out was implemented using a
16-steps dithering pattern.

Now fading uses alpha-blending. It behaves like the PC98 version, where
fading was done by palette animation.

This reduces `sizeof(AGS)` by 1.2MB.
2021-11-20 17:09:17 +09:00
kichikuou da91f10779 Allow overriding hard-coded strings by system3.ini
Some strings ("戻る" and "次のページ" in menu, character names in DPS)
are not included in game files but are hard-coded in the executable.

Now those strings can be overridden by adding [string] section to
system3.ini. For example, system3.ini for English translation of DPS
may look like this:

  [config]
  game  = dps
  title = D.P.S - Dream Program System

  [string]
  back        = Back
  next_page   = Next Page
  dps_custom  = Custom
  dps_linus   = Linus
  dps_katsumi = Katsumi
  dps_yumiko  = Yumiko
  dps_itsumi  = Itsumi
  dps_hitomi  = Hitomi
  dps_mariko  = Mariko
2021-09-11 13:20:48 +09:00
kichikuou cbf2a9c86f Report parse error of AG00.DAT 2021-09-09 21:06:15 +09:00
kichikuou 4004d39f22 Add "title" system3.ini option
So that translators don't need to change C++ code to localize game
titles.
2021-09-08 17:35:23 +09:00
kichikuou ccd99dab07 Apply character encoding conversion to hard-coded strings
This fixes an issue where menu items like "戻る" were garbled in Unicode
mode.
2021-09-05 15:10:22 +09:00
kichikuou 7834004648 Fix unicode conversion on Android / Emscripten
This also moves functions in utfsjis.cpp to encoding.cpp.
2021-09-05 10:02:31 +09:00
kichikuou 14d0033db3 Add support for UTF-8 encoded scenario files
If `encoding = utf8` is specified in system3.ini, system3-sdl2 uses
UTF-8 as its multibyte character encoding. It will be used to run games
translated into non-(Japanese|English) languages.
2021-09-04 15:21:52 +09:00
kichikuou 92487ada06 Introduce Encoding class
It represents a multi-byte character encoding. Currently, SjisEncoding
is the only implementation of it.
2021-09-04 13:41:37 +09:00
kichikuou d3c89aa697 Do hankaku-zenkaku conversion after Unicode conversion
As a bonus, Unicode character literal syntax can be used now.
2021-09-04 10:42:16 +09:00
kichikuou ddd1be04ef Map gaiji to Unicode Private Use Area U+E000-U+E0BB 2021-09-04 10:33:19 +09:00
kichikuou 55e2b3bd8c Redraw screen on SDL_WINDOWEVENT_EXPOSED
Fixes #17.
2021-09-01 20:35:52 +09:00
kichikuou d0e40c1c6d Fix a bug in M command + quoted string 2021-08-30 19:28:10 +09:00
kichikuou 201924f88c Fix escaping in quoted strings
Do not treat 0x5c as an escaping character if it is part of a multibyte
character.

Fixes #15.
2021-08-29 16:52:03 +09:00
kichikuou 1e04c03469 Add Language field to CRCTable struct 2021-08-28 13:40:25 +09:00
kichikuou 6ec42bbdfc Make window resizable 2021-08-14 13:28:56 +09:00
kichikuou c58d5b690a Fix mouse cursor movement in fullscreen mode
Ported from kichikuou/xsystem35-sdl2@91d30c9.
2021-08-14 13:18:42 +09:00
kichikuou 8f48093409 Update emscripten to 2.0.25 2021-07-14 18:29:50 +09:00
kichikuou 98038a5c74 Do not use SDL_RWFromFile on Windows
It does not work in the MSVC build of SDL2 (although it works in
Mingw-w64's SDL2 package).

Fixes #11.
2021-07-08 17:08:20 +09:00
kichikuou 52eea935fe Android: Allow specifying custom fonts in system3.ini
Now custom font files specified in system3.ini (as relative paths from the
game directory) can be loaded correctly.
2021-06-06 22:08:07 +09:00
kichikuou 0f4984bef5 Introduce Config struct
For now, it's just a container for command line arguments.
2021-06-06 16:18:17 +09:00
kichikuou 34175d5a85 Add English translations for string constants 2021-03-18 09:38:13 +09:00
kichikuou 4c6d8d5f8b Support Y240 (hankaku mode) in System1 2021-03-18 09:38:13 +09:00
kichikuou 8417e7758a Skip SysEng's "new style" marker
It can be simply skipped, because SysEng's command set is a superset
of System1-3.
2021-03-18 09:38:13 +09:00
kichikuou 9a8ebbdcb0 Support SysEng's quoted message commands 2021-03-18 09:38:10 +09:00
kichikuou 20e06235d2 Add CRC32 for English translations of Little Vampire / Rance 4.x
Note that these are still in beta; CRC32s may change.
2021-03-17 20:47:01 +09:00
kichikuou 77d50780f8 Implement AGS::paint() 2021-01-23 10:51:05 +09:00
kichikuou db66e62b88 emscripten: Drop MIDI support
After kichikuou/web@c901b19, the web port only supports FM sound.
2021-01-17 17:37:58 +09:00
kichikuou cbb40d0b67 emscripten: minor refactoring
- Remove the use of EXPORTED_FUNCTIONS in favor of EMSCRIPTEN_KEEPALIVE
- SDL_Delay is no longer aliased to emscripten_sleep
2021-01-17 13:55:43 +09:00
kichikuou 8519bc1a55 Implement NACT::set_cursor() 2021-01-11 20:48:49 +09:00
kichikuou 1d3715580b MSVS build: Suppress warning C4244 (possible loss of data)
VC++ is picky about narrowing conversion. Let's ignore it instead of
scattering static_casts.
2021-01-02 13:22:36 +09:00
kichikuou 60a0b43831 Fix warnings in MSVS build 2021-01-02 10:45:38 +09:00
kichikuou 56bb588ca7 Support building with Microsoft Visual Studio 2021-01-02 09:10:51 +09:00
kichikuou 75cbb2bcef Windows: Add "Save Screenshot" menu command 2020-12-31 14:17:55 +09:00
kichikuou fab3b2eaa0 Support propotional fonts 2020-12-30 22:21:59 +09:00
kichikuou d3d820d727 emscripten: Support message skip
Also add flags that control message skip behavior.
2020-12-29 12:09:34 +09:00
kichikuou 46827f35ef Use common menu selection function in all systems 2020-12-24 22:55:33 +09:00
kichikuou 958e922d54 Apply NACT_Sys3 changes to NACT_Sys1, NACT_Sys2
Some fixes / improvements were made only in NACT_Sys3 but not in
NACT_Sys1 and NACT_Sys2. This applies the followings to NACT_Sys[12]:

f680fb3e Add savedir option
ba359b4b Performance tweak
bde689ea Text hook

Especially, this fixes a bug where save files were created not in save
directory, but in game directory.
2020-12-24 22:19:37 +09:00
kichikuou e091bd9c1c Improve message skip
When message skip is enabled while executing cmd_a(), skip starts
immediately.

This also makes messages displayed during skip visible for a moment.
2020-12-24 22:18:52 +09:00
kichikuou c2ff6de675 Stop message skip on unseen text
This makes System3-sdl2 stop message skip when it sees text that has not
been read by the player. Seen / unseen flags are stored in MSGSKIP.DAT
file in the save folder.
2020-12-24 17:12:47 +09:00