V-Gears 0
Free Final Fantasy VII engine.
FieldControlFlowInstruction.h
Go to the documentation of this file.
1/*
2 * V-Gears
3 * Copyright (C) 2022 V-Gears Team
4 *
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 */
18
19#pragma once
20
23
28
29 public:
30
36 static InstPtr Create();
37
46 virtual void ProcessInst(
47 Function& func, ValueStack& stack, Engine* engine, CodeGenerator* code_gen
48 ) override;
49
50 private:
51
78 void ProcessREQ(CodeGenerator* code_gen, const FieldEngine& engine);
79
107 void ProcessREQSW(CodeGenerator* code_gen, const FieldEngine& engine);
108
133 void ProcessREQEW(CodeGenerator* code_gen, const FieldEngine& engine);
134
161 void ProcessRETTO(CodeGenerator* code_gen);
162
185 void ProcessWAIT(CodeGenerator* code_gen);
186};
boost::intrusive_ptr< Instruction > InstPtr
Pointer to an Instruction.
Definition: Instruction.h:43
Base class for code generators.
Definition: CodeGenerator.h:58
Base class for engines.
Definition: Engine.h:34
A script flow control instruction.
Definition: FieldControlFlowInstruction.h:27
virtual void ProcessInst(Function &func, ValueStack &stack, Engine *engine, CodeGenerator *code_gen) override
Processes the instruction.
Definition: FieldControlFlowInstruction.cpp:29
void ProcessWAIT(CodeGenerator *code_gen)
Processes a WAIT command.
Definition: FieldControlFlowInstruction.cpp:123
void ProcessREQ(CodeGenerator *code_gen, const FieldEngine &engine)
Processes a REQ command.
Definition: FieldControlFlowInstruction.cpp:61
void ProcessREQEW(CodeGenerator *code_gen, const FieldEngine &engine)
Processes a REQEW command.
Definition: FieldControlFlowInstruction.cpp:91
void ProcessRETTO(CodeGenerator *code_gen)
Processes a RETTO command.
Definition: FieldControlFlowInstruction.cpp:114
void ProcessREQSW(CodeGenerator *code_gen, const FieldEngine &engine)
Processes a REQSW command.
Definition: FieldControlFlowInstruction.cpp:76
static InstPtr Create()
Create a FieldControlFlowInstruction.
Definition: FieldControlFlowInstruction.cpp:27
Represents the FF7 Field engine.
Definition: FieldEngine.h:31
Instruction performing a kernel function call.
Definition: KernelCallInstruction.h:23
Structure representing a function.
Definition: Function.h:26