diff options
| author | KonAki <konaki@anokonaki.org> | 2026-10-14 18:55:24 +0800 |
|---|---|---|
| committer | KonAki <konaki@anokonaki.org> | 2026-10-14 18:55:24 +0800 |
| commit | ae3e03e0c5663fe4e59c136115090f4777e63282 (patch) | |
| tree | f41e773ffac4341f0c987017d2a9437bcae8f58d /kon/konrm.h | |
| parent | ac3f5875c373ade26547fecb7ad2e2a53003aabc (diff) | |
add rm module: one host function for the RPG Maker commands
Diffstat (limited to 'kon/konrm.h')
| -rw-r--r-- | kon/konrm.h | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/kon/konrm.h b/kon/konrm.h new file mode 100644 index 0000000..edbae6d --- /dev/null +++ b/kon/konrm.h @@ -0,0 +1,56 @@ +/* SPDX-License-Identifier: MIT */ +/* + * konrm.h + * + * Copyright (c) 2026 KonAki + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef KONRM_H +#define KONRM_H + +#ifdef __cplusplus +extern "C" { +#endif + +/*** definition ***/ + +/* one place to send the RPG Maker commands that mzscript writes as host commands. it hands each to the module that knows + it: sound (241 to 251), screen effects (221 to 225) and pictures (231 to 235). what you did not build or did not give + is skipped, so the command is just not handled. the structs are yours, this only points to them */ +typedef struct kon_rm { + struct kon_soundDeck *sound; + struct kon_pictures *pictures; + struct kon_screenfx *fx; + int (*variable)(int id, void *user); /* for pictures placed by variables, NULL reads them as 0 */ + void *user; +} kon_rm_t; + +/* call this from your host function with what the command gives you. returns -1 when the code is not one of these, + 0 when it is done and 1 when the script should wait. a wait is over when kon_rmBusy says 0, then kon_scriptResume */ +int kon_rmHost(kon_rm_t *rm, int code, int b, int c, int d, const char *text); + +/* 1 while a screen effect or a picture is still changing */ +int kon_rmBusy(const kon_rm_t *rm); + +#ifdef __cplusplus +} +#endif +#endif |
