summaryrefslogtreecommitdiff
path: root/kon/konrm.h
diff options
context:
space:
mode:
authorKonAki <konaki@anokonaki.org>2026-10-14 18:55:24 +0800
committerKonAki <konaki@anokonaki.org>2026-10-14 18:55:24 +0800
commitae3e03e0c5663fe4e59c136115090f4777e63282 (patch)
treef41e773ffac4341f0c987017d2a9437bcae8f58d /kon/konrm.h
parentac3f5875c373ade26547fecb7ad2e2a53003aabc (diff)
add rm module: one host function for the RPG Maker commands
Diffstat (limited to 'kon/konrm.h')
-rw-r--r--kon/konrm.h56
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