Skip to content

Commit bc60e5e

Browse files
authored
Merge pull request #387 from xmvziron/name-anmvm-flags
Name some flags on AnmVm
2 parents 566edf8 + 6cf068b commit bc60e5e

File tree

3 files changed

+33
-36
lines changed

3 files changed

+33
-36
lines changed

src/AnmManager.cpp

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1085,8 +1085,8 @@ i32 AnmManager::ExecuteScript(AnmVm *vm)
10851085
vm->flags.flip ^= 1;
10861086
vm->scaleX *= -1.f;
10871087
break;
1088-
case AnmOpcode_25:
1089-
vm->flags.flag5 = curInstr->args[0];
1088+
case AnmOpcode_UsePosOffset:
1089+
vm->flags.usePosOffset = curInstr->args[0];
10901090
break;
10911091
case AnmOpcode_FlipY:
10921092
vm->flags.flip ^= 2;
@@ -1110,7 +1110,7 @@ i32 AnmManager::ExecuteScript(AnmVm *vm)
11101110
vm->scaleInterpFinalY = *local_18;
11111111
vm->scaleInterpEndTime = 0;
11121112
break;
1113-
case AnmOpcode_30:
1113+
case AnmOpcode_ScaleTime:
11141114
local_1c = (f32 *)&curInstr->args[0];
11151115
vm->scaleInterpFinalX = *local_1c++;
11161116
vm->scaleInterpFinalY = *local_1c++;
@@ -1133,7 +1133,7 @@ i32 AnmManager::ExecuteScript(AnmVm *vm)
11331133
vm->flags.blendMode = AnmVmBlendMode_InvSrcAlpha;
11341134
break;
11351135
case AnmOpcode_SetPosition:
1136-
if (vm->flags.flag5 == 0)
1136+
if (vm->flags.usePosOffset == 0)
11371137
{
11381138
vm->pos =
11391139
D3DXVECTOR3(*(f32 *)&curInstr->args[0], *(f32 *)&curInstr->args[1], *(f32 *)&curInstr->args[2]);
@@ -1153,7 +1153,7 @@ i32 AnmManager::ExecuteScript(AnmVm *vm)
11531153
case AnmOpcode_PosTimeLinear:
11541154
vm->flags.posTime = 0;
11551155
PosTimeDoStuff:
1156-
if (vm->flags.flag5 == 0)
1156+
if (vm->flags.usePosOffset == 0)
11571157
{
11581158
memcpy(vm->posInterpInitial, vm->pos, sizeof(D3DXVECTOR3));
11591159
}
@@ -1171,7 +1171,7 @@ i32 AnmManager::ExecuteScript(AnmVm *vm)
11711171
case AnmOpcode_Stop:
11721172
if (vm->pendingInterrupt == 0)
11731173
{
1174-
vm->flags.flag13 = 1;
1174+
vm->flags.isStopped = 1;
11751175
vm->currentTimeInScript.Decrement(1);
11761176
goto stop;
11771177
}
@@ -1189,7 +1189,7 @@ i32 AnmManager::ExecuteScript(AnmVm *vm)
11891189
}
11901190

11911191
vm->pendingInterrupt = 0;
1192-
vm->flags.flag13 = 0;
1192+
vm->flags.isStopped = 0;
11931193
if (curInstr->opcode != AnmOpcode_InterruptLabel)
11941194
{
11951195
if (nextInstr == NULL)
@@ -1208,13 +1208,13 @@ i32 AnmManager::ExecuteScript(AnmVm *vm)
12081208
case AnmOpcode_SetVisibility:
12091209
vm->flags.isVisible = curInstr->args[0];
12101210
break;
1211-
case AnmOpcode_23:
1211+
case AnmOpcode_AnchorTopLeft:
12121212
vm->flags.anchor = AnmVmAnchor_TopLeft;
12131213
break;
12141214
case AnmOpcode_SetAutoRotate:
12151215
vm->autoRotate = curInstr->args[0];
12161216
break;
1217-
case AnmOpcode_27:
1217+
case AnmOpcode_UVScrollX:
12181218
vm->uvScrollPos.x += *(f32 *)&curInstr->args[0];
12191219
if (vm->uvScrollPos.x >= 1.0f)
12201220
{
@@ -1225,7 +1225,7 @@ i32 AnmManager::ExecuteScript(AnmVm *vm)
12251225
vm->uvScrollPos.x += 1.0f;
12261226
}
12271227
break;
1228-
case AnmOpcode_28:
1228+
case AnmOpcode_UVScrollY:
12291229
vm->uvScrollPos.y += *(f32 *)&curInstr->args[0];
12301230
if (vm->uvScrollPos.y >= 1.0f)
12311231
{
@@ -1236,7 +1236,7 @@ i32 AnmManager::ExecuteScript(AnmVm *vm)
12361236
vm->uvScrollPos.y += 1.0f;
12371237
}
12381238
break;
1239-
case AnmOpcode_31:
1239+
case AnmOpcode_SetZWriteDisable:
12401240
vm->flags.zWriteDisable = curInstr->args[0];
12411241
break;
12421242
case AnmOpcode_Nop:
@@ -1344,7 +1344,7 @@ i32 AnmManager::ExecuteScript(AnmVm *vm)
13441344
local_3c = 1.0f - local_3c;
13451345
break;
13461346
}
1347-
if (vm->flags.flag5 == 0)
1347+
if (vm->flags.usePosOffset == 0)
13481348
{
13491349
vm->pos.x = local_3c * vm->posInterpFinal.x + (1.0f - local_3c) * vm->posInterpInitial.x;
13501350
vm->pos.y = local_3c * vm->posInterpFinal.y + (1.0f - local_3c) * vm->posInterpInitial.y;

src/AnmVm.hpp

Lines changed: 20 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -50,15 +50,15 @@ ZUN_ASSERT_SIZE(AnmLoadedSprite, 0x38);
5050
#define AnmOpcode_PosTimeAccel 20
5151
#define AnmOpcode_Stop 21
5252
#define AnmOpcode_InterruptLabel 22
53-
#define AnmOpcode_23 23
53+
#define AnmOpcode_AnchorTopLeft 23
5454
#define AnmOpcode_StopHide 24
55-
#define AnmOpcode_25 25
55+
#define AnmOpcode_UsePosOffset 25
5656
#define AnmOpcode_SetAutoRotate 26
57-
#define AnmOpcode_27 27
58-
#define AnmOpcode_28 28
57+
#define AnmOpcode_UVScrollX 27
58+
#define AnmOpcode_UVScrollY 28
5959
#define AnmOpcode_SetVisibility 29
60-
#define AnmOpcode_30 30
61-
#define AnmOpcode_31 31
60+
#define AnmOpcode_ScaleTime 30
61+
#define AnmOpcode_SetZWriteDisable 31
6262

6363
struct AnmRawInstr
6464
{
@@ -70,24 +70,23 @@ struct AnmRawInstr
7070

7171
enum AnmVmFlagsEnum
7272
{
73-
AnmVmFlags_0 = 1 << 0,
73+
AnmVmFlags_Visible = 1 << 0,
7474
AnmVmFlags_1 = 1 << 1,
75-
AnmVmFlags_2 = 1 << 2,
76-
AnmVmFlags_3 = 1 << 3,
75+
AnmVmFlags_BlendMode = 1 << 2,
76+
AnmVmFlags_ColorOp = 1 << 3,
7777
AnmVmFlags_4 = 1 << 4,
78-
AnmVmFlags_5 = 1 << 5,
78+
AnmVmFlags_UsePosOffset = 1 << 5,
7979
AnmVmFlags_FlipX = 1 << 6,
8080
AnmVmFlags_FlipY = 1 << 7,
81-
AnmVmFlags_8 = 1 << 8,
82-
AnmVmFlags_9 = 1 << 9,
83-
AnmVmFlags_10 = 1 << 10,
84-
AnmVmFlags_11 = 1 << 11,
85-
AnmVmFlags_12 = 1 << 12,
86-
AnmVmFlags_13 = 1 << 13,
87-
AnmVmFlags_14 = 1 << 14,
88-
AnmVmFlags_15 = 1 << 15,
81+
AnmVmFlags_AnchorLeft = 1 << 8,
82+
AnmVmFlags_AnchorTop = 1 << 9,
83+
/* posTime missing because it is not really a flag */
84+
AnmVmFlags_ZWriteDisable = 1 << 12,
85+
AnmVmFlags_IsStopped = 1 << 13,
8986
};
9087

88+
#define ANM_VM_INITIAL_FLAGS 0x3
89+
9190
enum AnmVmBlendMode
9291
{
9392
AnmVmBlendMode_InvSrcAlpha,
@@ -117,14 +116,12 @@ union AnmVmFlags {
117116
u32 blendMode : 1;
118117
u32 colorOp : 1;
119118
u32 flag4 : 1;
120-
u32 flag5 : 1;
119+
u32 usePosOffset : 1;
121120
u32 flip : 2;
122121
u32 anchor : 2;
123122
u32 posTime : 2;
124123
u32 zWriteDisable : 1;
125-
u32 flag13 : 1;
126-
u32 flag14 : 1;
127-
u32 flag15 : 1;
124+
u32 isStopped : 1;
128125
};
129126
};
130127

@@ -148,7 +145,7 @@ struct AnmVm
148145
this->alphaInterpEndTime = 0;
149146
this->color = D3DCOLOR_RGBA(0xff, 0xff, 0xff, 0xff);
150147
D3DXMatrixIdentity(&this->matrix);
151-
this->flags.flags = AnmVmFlags_0 | AnmVmFlags_1;
148+
this->flags.flags = AnmVmFlags_Visible | AnmVmFlags_1;
152149
this->autoRotate = 0;
153150
this->pendingInterrupt = 0;
154151
this->posInterpEndTime = 0;

src/Gui.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ DIFFABLE_STATIC(ChainElem, g_GuiDrawChain);
2222

2323
ZunBool Gui::IsStageFinished()
2424
{
25-
return this->impl->loadingScreenSprite.activeSpriteIndex >= 0 && this->impl->loadingScreenSprite.flags.flag13;
25+
return this->impl->loadingScreenSprite.activeSpriteIndex >= 0 && this->impl->loadingScreenSprite.flags.isStopped;
2626
}
2727

2828
void Gui::EndPlayerSpellcard()

0 commit comments

Comments
 (0)