V-Gears 0
Free Final Fantasy VII engine.
FieldModelInstruction.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2022 V-Gears Team
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 3 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#pragma once
19
22
27
28 public:
29
38 virtual void ProcessInst(
39 Function& func, ValueStack &stack, Engine* engine, CodeGenerator* code_gen
40 ) override;
41
42 private:
43
71 void ProcessJOIN(CodeGenerator* code_gen);
72
121 void ProcessSPLIT(CodeGenerator* code_gen);
122
143 void ProcessTLKON(CodeGenerator* code_gen, const std::string& entity);
144
145 void ProcessPC(CodeGenerator* code_gen, const std::string& entity, int char_id);
146
147 void ProcessCHAR(CodeGenerator* code_gen, const std::string& entity);
148
149 void ProcessDFANM(CodeGenerator* code_gen, const std::string& entity, int char_id);
150
151 void ProcessANIME1(CodeGenerator* code_gen, const std::string& entity, int char_id);
152
153 void ProcessVISI(CodeGenerator* code_gen, const std::string& entity);
154
155 void ProcessXYZI(CodeGenerator* code_gen, const std::string& entity);
156
157 void ProcessMOVE(CodeGenerator* code_gen, const std::string& entity);
158
185 void ProcessTURA(
186 CodeGenerator* code_gen, const std::string& entity, const FieldEngine& engine
187 );
188
189 void ProcessMSPED(CodeGenerator* code_gen, const std::string& entity);
190
191 void ProcessDIR(CodeGenerator* code_gen, const std::string& entity);
192
193 void ProcessTURNGEN(CodeGenerator* code_gen, const std::string& entity);
194
195 void ProcessGETAI(CodeGenerator* code_gen, const FieldEngine& engine);
196
197 void ProcessANIM_2(CodeGenerator* code_gen, const std::string& entity, int char_id);
198
199 void ProcessCANIM2(CodeGenerator* code_gen, const std::string& entity, int char_id);
200
201 void ProcessCANM_2(CodeGenerator* code_gen, const std::string& entity, int char_id);
202
203 void ProcessCC(CodeGenerator* code_gen, const FieldEngine& engine);
204
253 void ProcessJUMP(CodeGenerator* code_gen, const std::string& entity);
254
284 void ProcessAXYZI(CodeGenerator* code_gen);
285
344 void ProcessLADER(CodeGenerator* code_gen, const std::string& entity);
345
366 void ProcessSLIDR(CodeGenerator* code_gen, const std::string& entity);
367
388 void ProcessSOLID(CodeGenerator* code_gen, const std::string& entity);
389
435 void ProcessOFST(CodeGenerator* code_gen, const std::string& entity);
436};
437
Base class for code generators.
Definition: CodeGenerator.h:58
Base class for engines.
Definition: Engine.h:34
Represents the FF7 Field engine.
Definition: FieldEngine.h:31
A model instruction.
Definition: FieldModelInstruction.h:26
void ProcessPC(CodeGenerator *code_gen, const std::string &entity, int char_id)
Definition: FieldModelInstruction.cpp:196
void ProcessCC(CodeGenerator *code_gen, const FieldEngine &engine)
Definition: FieldModelInstruction.cpp:427
void ProcessSLIDR(CodeGenerator *code_gen, const std::string &entity)
Processes an SLIDR opcode.
Definition: FieldModelInstruction.cpp:515
void ProcessCANIM2(CodeGenerator *code_gen, const std::string &entity, int char_id)
Definition: FieldModelInstruction.cpp:392
void ProcessDFANM(CodeGenerator *code_gen, const std::string &entity, int char_id)
Definition: FieldModelInstruction.cpp:210
void ProcessXYZI(CodeGenerator *code_gen, const std::string &entity)
Definition: FieldModelInstruction.cpp:250
void ProcessANIM_2(CodeGenerator *code_gen, const std::string &entity, int char_id)
Definition: FieldModelInstruction.cpp:377
void ProcessJOIN(CodeGenerator *code_gen)
Processes a JOIN opcode.
Definition: FieldModelInstruction.cpp:151
void ProcessTURA(CodeGenerator *code_gen, const std::string &entity, const FieldEngine &engine)
Processes a TURA opcode.
Definition: FieldModelInstruction.cpp:291
virtual void ProcessInst(Function &func, ValueStack &stack, Engine *engine, CodeGenerator *code_gen) override
Processes the instruction.
Definition: FieldModelInstruction.cpp:27
void ProcessCHAR(CodeGenerator *code_gen, const std::string &entity)
Definition: FieldModelInstruction.cpp:204
void ProcessVISI(CodeGenerator *code_gen, const std::string &entity)
Definition: FieldModelInstruction.cpp:243
void ProcessCANM_2(CodeGenerator *code_gen, const std::string &entity, int char_id)
Definition: FieldModelInstruction.cpp:409
void ProcessSPLIT(CodeGenerator *code_gen)
Processes a SPLIT opcode.
Definition: FieldModelInstruction.cpp:155
void ProcessJUMP(CodeGenerator *code_gen, const std::string &entity)
Processes a JUMP opcode.
Definition: FieldModelInstruction.cpp:434
void ProcessOFST(CodeGenerator *code_gen, const std::string &entity)
Processes an OFST opcode.
Definition: FieldModelInstruction.cpp:535
void ProcessANIME1(CodeGenerator *code_gen, const std::string &entity, int char_id)
Definition: FieldModelInstruction.cpp:228
void ProcessTLKON(CodeGenerator *code_gen, const std::string &entity)
Processes a TLKON opcode.
Definition: FieldModelInstruction.cpp:189
void ProcessMSPED(CodeGenerator *code_gen, const std::string &entity)
Definition: FieldModelInstruction.cpp:313
void ProcessLADER(CodeGenerator *code_gen, const std::string &entity)
Processes a LADER opcode.
Definition: FieldModelInstruction.cpp:478
void ProcessAXYZI(CodeGenerator *code_gen)
Processes a AXYZI opcode.
Definition: FieldModelInstruction.cpp:466
void ProcessTURNGEN(CodeGenerator *code_gen, const std::string &entity)
Definition: FieldModelInstruction.cpp:334
void ProcessMOVE(CodeGenerator *code_gen, const std::string &entity)
Definition: FieldModelInstruction.cpp:274
void ProcessDIR(CodeGenerator *code_gen, const std::string &entity)
Definition: FieldModelInstruction.cpp:325
void ProcessSOLID(CodeGenerator *code_gen, const std::string &entity)
Processes a SOLID opcode.
Definition: FieldModelInstruction.cpp:528
void ProcessGETAI(CodeGenerator *code_gen, const FieldEngine &engine)
Definition: FieldModelInstruction.cpp:364
Instruction performing a kernel function call.
Definition: KernelCallInstruction.h:23
Structure representing a function.
Definition: Function.h:26