diff --git a/include/reign.h b/include/reign.h index 32767f9..a59de14 100644 --- a/include/reign.h +++ b/include/reign.h @@ -195,6 +195,8 @@ struct RE_plugin *RE_plugin_new(enum RE_plugin_version version); void RE_plugin_free(struct RE_plugin *plugin); bool RE_plugin_bind(struct RE_plugin *plugin, int sprite); bool RE_plugin_unbind(struct RE_plugin *plugin); +bool RE_plugin_suspend(struct RE_plugin *plugin); +bool RE_plugin_resume(struct RE_plugin *plugin); bool RE_build_model(struct RE_plugin *plugin, int elapsed_ms); bool RE_set_viewport(struct RE_plugin *plugin, int x, int y, int width, int height); bool RE_set_projection(struct RE_plugin *plugin, float width, float height, float near, float far, float deg); diff --git a/src/3d/reign.c b/src/3d/reign.c index a0b08d9..e0e6edd 100644 --- a/src/3d/reign.c +++ b/src/3d/reign.c @@ -277,6 +277,28 @@ bool RE_plugin_unbind(struct RE_plugin *plugin) return true; } +bool RE_plugin_suspend(struct RE_plugin *plugin) +{ + if (!plugin) + return false; + plugin->suspended = true; + struct sact_sprite *sp = sact_try_get_sprite(plugin->sprite); + if (sp) + sprite_set_show(sp, false); + return true; +} + +bool RE_plugin_resume(struct RE_plugin *plugin) +{ + if (!plugin) + return false; + plugin->suspended = false; + struct sact_sprite *sp = sact_try_get_sprite(plugin->sprite); + if (sp) + sprite_set_show(sp, true); + return true; +} + bool RE_build_model(struct RE_plugin *plugin, int elapsed_ms) { if (!plugin) diff --git a/src/hll/ReignEngine.c b/src/hll/ReignEngine.c index 3856fcb..0e4243a 100644 --- a/src/hll/ReignEngine.c +++ b/src/hll/ReignEngine.c @@ -1865,11 +1865,7 @@ HLL_WARN_UNIMPLEMENTED(false, bool, TapirEngine, SetThreadLoadingMode, int plugi static bool TapirEngine_Suspend(int plugin_number) { - struct RE_plugin *p = get_plugin(plugin_number); - if (!p) - return false; - p->suspended = true; - return true; + return RE_plugin_suspend(get_plugin(plugin_number)); } static bool TapirEngine_IsSuspend(int plugin_number) @@ -1880,11 +1876,7 @@ static bool TapirEngine_IsSuspend(int plugin_number) static bool TapirEngine_Resume(int plugin_number) { - struct RE_plugin *p = get_plugin(plugin_number); - if (!p) - return false; - p->suspended = false; - return true; + return RE_plugin_resume(get_plugin(plugin_number)); } //int TapirEngine_GetNumofPlugin(void);