blob: 0ea3dbcf5885b1aa1822bf32cc6927eaaaa1e344 (
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
|
#include "global.h"
#include "entity.h"
#include "structures.h"
#include "functions.h"
#include "room.h"
extern void sub_08080BC4(void);
extern u32 gUnk_0200B650;
extern u32 gUnk_02025EB0;
extern u8 gUnk_02000070;
extern void DoExitTransition(ScreenTransitionData*);
void sub_080808D8(void) {
gScreenTransition.transitionType = 0;
}
void sub_080808E4(void) {
if (sub_08052638(gScreenTransition.areaID)) {
gScreenTransition.transitionType = 0;
} else {
gScreenTransition.transitionType = 5;
}
}
void sub_08080904(void) {
gScreenTransition.transitionType = 1;
}
void sub_08080910(void) {
gScreenTransition.transitionType = 1;
}
void sub_0808091C(ScreenTransitionData* param_1, u32 param_2) {
DoExitTransition(param_1);
gScreenTransition.transitionType = param_2;
}
void sub_08080930(void)
{
gRoomControls.unk3 = 5;
gRoomControls.unk4 = 0;
gRoomControls.unk2 = 2;
gRoomControls.filler[0] = 0;
sub_0805E5A8();
}
u32* GetLayerByIndex(u32 param_1) {
if (param_1 == 2) {
return &gUnk_0200B650;
} else {
return &gUnk_02025EB0;
}
}
void sub_08080964(u32 time, u32 magnitude) {
gRoomControls.screenShakeTime = time;
gRoomControls.screenShakeMagnitude = magnitude & 7;
}
void sub_08080974(u32 arg0, u32 arg1) {
u32 var0, var1;
RoomControls* roomControls = &gRoomControls;
var0 = roomControls->roomOriginX;
if (arg0 <= var0 + 120) {
roomControls->roomScrollX = var0;
} else {
var0 += roomControls->width;
var1 = var0 - 120;
if (arg0 < var1) {
var1 = arg0;
}
roomControls->roomScrollX = var1 - 120;
}
var0 = roomControls->roomOriginY;
if (arg1 <= var0 + 80) {
roomControls->roomScrollY = var0;
} else {
var0 += roomControls->height;
var1 = var0 - 80;
if (arg1 < var1) {
var1 = arg1;
}
roomControls->roomScrollY = var1 - 80;
}
sub_080809D4();
gUnk_02000070 = 1;
}
void sub_080809D4(void) {
register Entity* target asm("r4");
int x, y;
int var1, var0;
RoomControls* roomControls = &gRoomControls;
roomControls->unk6 &= 0xFB;
target = roomControls->cameraTarget;
x = target->x.HALF.HI;
var0 = roomControls->roomOriginX;
if (x <= var0 + 120) {
roomControls->roomScrollX = var0;
} else {
var0 += roomControls->width;
var1 = var0 - 120;
if (x < var1) {
var1 = (u16)target->x.HALF.HI;
}
roomControls->roomScrollX = var1 - 120;
}
target = roomControls->cameraTarget;
y = target->y.HALF.HI;
var0 = roomControls->roomOriginY;
if (y <= var0 + 80) {
roomControls->roomScrollY = var0;
} else {
var0 += roomControls->height;
var1 = var0 - 80;
if (y < var1) {
var1 = (u16)target->y.HALF.HI;
}
roomControls->roomScrollY = var1 - 80;
}
sub_08080BC4();
gUnk_02000070 = 1;
}
|