summaryrefslogtreecommitdiff
path: root/src/f_pc/f_pc_base.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/f_pc/f_pc_base.cpp')
-rw-r--r--src/f_pc/f_pc_base.cpp35
1 files changed, 29 insertions, 6 deletions
diff --git a/src/f_pc/f_pc_base.cpp b/src/f_pc/f_pc_base.cpp
index 68fba36923..c94a072977 100644
--- a/src/f_pc/f_pc_base.cpp
+++ b/src/f_pc/f_pc_base.cpp
@@ -11,10 +11,19 @@
#include "f_pc/f_pc_method.h"
#include "f_pc/f_pc_pause.h"
#include "f_pc/f_pc_profile.h"
+#include "f_pc/f_pc_debug_sv.h"
+
+#if VERSION == VERSION_SHIELD_DEBUG
+#include "Z2AudioLib/Z2AudioMgr.h"
+#endif
/* 8002064C-8002065C 0010+00 s=0 e=14 z=0 None .text fpcBs_Is_JustOfType__Fii */
BOOL fpcBs_Is_JustOfType(int i_typeA, int i_typeB) {
- return i_typeB == i_typeA ? TRUE : FALSE;
+ if (i_typeB == i_typeA) {
+ return TRUE;
+ } else {
+ return FALSE;
+ }
}
/* 80450D00-80450D04 0004+00 s=1 e=0 z=0 None .sbss g_fpcBs_type */
@@ -37,13 +46,27 @@ int fpcBs_MakeOfId() {
/* 800206C4-80020720 005C+00 s=0 e=1 z=0 None .text fpcBs_Execute__FP18base_process_class */
int fpcBs_Execute(base_process_class* i_proc) {
- int result;
- layer_class* save_layer = fpcLy_CurrentLayer();
+ int result = 1;
+
+#ifdef DEBUG
+ if (!fpcBs_Is_JustOfType(g_fpcBs_type, i_proc->type)) {
+ if (g_fpcDbSv_service[10] != NULL) {
+ g_fpcDbSv_service[10](i_proc);
+ }
+
+ return 0;
+ }
+#endif
- fpcLy_SetCurrentLayer(i_proc->layer_tag.layer);
- result = fpcMtd_Execute(i_proc->methods, i_proc);
+ if (result == 1) {
+ layer_class* save_layer = fpcLy_CurrentLayer();
- fpcLy_SetCurrentLayer(save_layer);
+ fpcLy_SetCurrentLayer(i_proc->layer_tag.layer);
+ result = fpcMtd_Execute(i_proc->methods, i_proc);
+
+ fpcLy_SetCurrentLayer(save_layer);
+ }
+
return result;
}