Subject | Hash | Author | Date (UTC) |
---|---|---|---|
Add CSL comments | 7a818e8b57cb38c9bfef922e66bd6f735b4962e4 | mse | 2021-09-12 09:26:07 |
Add Confectioner Scripting Language (CSL) & change array separator to ; | 8d980bfac5d649574f749b7c04a19af766f71091 | mse | 2021-09-11 12:31:58 |
Fix console /set bug | 7c45e27e7f40472bea317b0316e4367135b49704 | mse | 2021-09-11 01:32:11 |
Scriptable lines@, ids@, bugfix | 9f606fd2a793fd76a9d1b9e186434d231b973085 | mse | 2021-09-10 14:43:50 |
Add array scripting (@ operator, ARRLEN <array>) | 3f098b3e0a04922c2c7a981b232efd8d08a8d9a0 | mse | 2021-09-10 14:02:39 |
Optimize script runtime | a298b01c9b77192b7ed8aba3832a8ab51c9d389a | mse | 2021-09-09 06:57:49 |
Scriptable bg$, fg$, caption$ | 0ad08aa3887118d2376f4fa7f8b7c66e0f164c73 | mse | 2021-09-06 11:04:38 |
Animation command: ANIM <loop|play> <bg|fg> <fps> <directory> | 6066e2cae1dc29043902d46549f443c7b683fd88 | mse | 2021-09-06 06:42:13 |
Switch to C++17 | 489987b1b2749f37e0ac76594308635affbd24f2 | mse | 2021-09-05 10:51:02 |
Fix stats synchronization bug | 3b6195c3321a6f10af43839cc00d24f301eddb3e | mse | 2021-09-05 04:45:58 |
Add top-level command: STRLEN, scriptable player name$ | ec7a623cdc98b9832f35f0beb3e45179e6094436 | mse | 2021-09-05 03:17:47 |
Start work on animation system | d2aafd6f46c719342054e3f256f972f4917f2231 | mse | 2021-09-05 02:41:28 |
Add string scripting with $ operator | 20034a2b658ee8ad4f2082c44301c231b0323fc7 | mse | 2021-09-03 10:20:55 |
Enhance console /set command to support operators | 61032844fcb833f04e2f6d1e123f8f0f89333107 | mse | 2021-09-02 11:06:00 |
Add scriptable bribing & remove hard-coded karma increment | 41b4d79da6331b4b1ffd96f36ae1b032a869b482 | mse | 2021-08-31 17:51:29 |
Add floor operator (_) | 819304b561d474e962afa7397ef68ffae83e8649 | mse | 2021-08-31 13:49:57 |
Switch inventories and stats to floating-point | c6e4142e664648ca8f4aa913b48526093c985987 | mse | 2021-08-31 13:35:20 |
Switch scripting to floating-point & code comments | eb067496f4edb4420c05a09dc034ad0a25ad1e56 | mse | 2021-08-31 11:06:01 |
Add top-level command: GOSUB | 62e9520aec0471fe023ead290595f735a30eb806 | mse | 2021-08-26 09:31:27 |
Add persistent VN stats | 2d1ffc35afd8ae0f477cbd5aac0559fc02571600 | mse | 2021-08-23 10:44:16 |
File | Lines added | Lines deleted |
---|---|---|
base/dialogue_en/init.csl | 10 | 0 |
base/dialogue_en/init.json | 1 | 2 |
include/dialogue.h | 1 | 0 |
File base/dialogue_en/init.csl changed (mode: 100644) (index 632ef04..f925609) | |||
1 | #!/bin/confec could be a thing to put here. | ||
2 | |||
3 | # The [init] line is not required as the first ID defaults to init. It's only here for clarity. | ||
1 | 4 | [init] | [init] |
5 | # bg$:black is a quirky special case to make the background black. There is no bg$:white or bg$:green, but you can do bg$:image.png | ||
2 | 6 | bg$:black | bg$:black |
7 | # This "Game not found" message refers to the fact that the "game" folder overrides the "base" folder (and this file), and the "game" folder is where you can put proprietary media. | ||
3 | 8 | caption$:Game not found. | caption$:Game not found. |
9 | # "Test Controller Rumble" lines up with "rumble", and "Quit" lines up with "quit", in terms of array indices. lines@ and ids@ form value-key pairs for dialogue menus. | ||
4 | 10 | lines@:Test Controller Rumble;Quit | lines@:Test Controller Rumble;Quit |
5 | 11 | ids@:rumble;quit | ids@:rumble;quit |
6 | 12 | ||
13 | # When we run the rumble ID, its bg$, fg$, caption$, lines@, and ids@ are first reset, in this case making a blank screen because they are all empty. | ||
7 | 14 | [rumble] | [rumble] |
15 | # Make the first controller rumble at full power for 500 milliseconds. | ||
8 | 16 | :CALLBACK #RUMBLE 1.0 500 | :CALLBACK #RUMBLE 1.0 500 |
17 | # We need this GOSUB init part or the dialogue terminates, taking the game down with it. | ||
9 | 18 | :GOSUB init | :GOSUB init |
10 | 19 | ||
11 | 20 | [quit] | [quit] |
21 | # Graceful shutdown. | ||
12 | 22 | :CALLBACK QUIT | :CALLBACK QUIT |
File base/dialogue_en/init.json changed (mode: 100644) (index a6b197b..6d66583) | |||
1 | 1 | { | { |
2 | 2 | // init.json is currently the main entry point. CSL must be bootstrapped. | // init.json is currently the main entry point. CSL must be bootstrapped. |
3 | // When CSL supports comments and array indexing, init.csl can be loaded | ||
4 | // first instead. | ||
3 | // When CSL supports array indexing, init.csl can be loaded first instead. | ||
5 | 4 | "init": { | "init": { |
6 | 5 | "exec": { "void": "GOSUB init.csl" } | "exec": { "void": "GOSUB init.csl" } |
7 | 6 | } | } |
File include/dialogue.h changed (mode: 100755) (index 9486a26..ee7c2a7) | |||
... | ... | int Talk::parseCSL( std::string &text ){ | |
304 | 304 | Screen *screen_ptr = GetScreenPointer( "init" ); | Screen *screen_ptr = GetScreenPointer( "init" ); |
305 | 305 | ||
306 | 306 | auto Lex = [&]( std::string line ){ | auto Lex = [&]( std::string line ){ |
307 | if( line.length() && line[0] == '#' ) return; | ||
307 | 308 | if( line.length() >= 2 && line[0] == '[' ){ | if( line.length() >= 2 && line[0] == '[' ){ |
308 | 309 | line.erase( 0, 1 ); | line.erase( 0, 1 ); |
309 | 310 | size_t bracket_at = line.find_last_of( ']' ); | size_t bracket_at = line.find_last_of( ']' ); |