summaryrefslogtreecommitdiff
path: root/src/pso/TMainTask.cpp
blob: c02b4acadde493a3b0a4893fd67079236e8a4a5b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include "pso/THeap.h"
#include "pso/TMainTask.h"
#include "pso/TObject.h"

static const int tl_object_count = 20;

#define o(var, name) TObject *var;
TL_OBJECTS
#undef o

u32 some_main_task_flag = 1;
u32 main_task_flags;
u32 old_main_task_flags;
u32 lbl_805c5b98;
u32 lbl_805c5b9c;

void TMainTask::func_80228ae8() {}
void TMainTask::func_80228a7c() {}
void TMainTask::func_80228a3c() {}
void TMainTask::func_80228928() {}
void TMainTask::func_80228924() {}
void TMainTask::func_802289d0() {}

void TMainTask::func_0x10() {
	SET_OR_CLEAR_CHILD_FLAGS(lbl_805c5b98, lbl_805c5b9c, 4);
	set_task_flags(2);
	some_main_task_flag = 0;
	func_80228ae8();
	some_main_task_flag = 1;
	func_80228a7c();
	some_main_task_flag = 0;
	func_80228a3c();
	some_main_task_flag = 1;
	func_80228928();
	some_main_task_flag = 0;
	func_80228924();
	func_802289d0();
	clear_task_flags(2);
	set_task_flags(0x100);
}

void TMainTask::run_task() {
	SET_OR_CLEAR_CHILD_FLAGS(main_task_flags, old_main_task_flags, 3);
	some_main_task_flag = 0;
	set_task_flags(1);
	run_tasks();
	clear_task_flags(1);
	set_task_flags(0x80);
}

TMainTask::~TMainTask() {
	delete_children();
	delete alt_heap;
	delete obj_heap;
}

void TMainTask::init_main_task() {
	obj_heap = new THeap(0x7a000, 16);
	alt_heap = new THeap(0x17000, 16);
	#define o(var, dummy) \
		var = new TObject(this); \
		var->name = var##_name;
		TL_OBJECTS
	#undef o
}

TMainTask::TMainTask() : TObject(NULL) {
	name = TMainTask_name;
	task_flags = 0;
	mbr_0x20 = 0;
	mbr_0x24 = 0;
};