Use integer for rotation

This commit is contained in:
2024-12-09 01:15:06 +03:00
parent 54a9b6f9ad
commit 49a0fd7e74

View File

@@ -133,79 +133,53 @@ protected:
int check;
int mask;
String item;
Basis basis;
int basis_rot;
Vector3 offset;
bool exterior;
};
struct pmatch match_data[] = {
{ 1, 1 | 256, "outside-wall", Basis(),
{ 1, 1 | 256, "outside-wall", 0,
Vector3(0, 0, -2), true },
{ 2, 2 | 512, "outside-wall",
Basis().rotated(Vector3(0, 1, 0), Math_PI),
{ 2, 2 | 512, "outside-wall", 2,
Vector3(0, 0, 2), true },
{ 4, 4 | 1024, "outside-wall",
Basis().rotated(Vector3(0, 1, 0),
Math_PI / 2),
{ 4, 4 | 1024, "outside-wall", 1,
Vector3(-2, 0, 0), true },
{ 8, 8 | 2048, "outside-wall",
Basis().rotated(Vector3(0, 1, 0),
-Math_PI / 2),
{ 8, 8 | 2048, "outside-wall", -1,
Vector3(2, 0, 0), true },
{ 2 | 8, 2 | 8, "outside-wall-corner",
Basis().rotated(Vector3(0, 1, 0), Math_PI),
{ 2 | 8, 2 | 8, "outside-wall-corner", 2,
Vector3(2, 0, 2), true },
{ 1 | 4, 1 | 4, "outside-wall-corner",
Basis().rotated(Vector3(0, 1, 0), 0),
{ 1 | 4, 1 | 4, "outside-wall-corner", 0,
Vector3(-2, 0, -2), true },
{ 1 | 8, 1 | 8, "outside-wall-corner",
Basis().rotated(Vector3(0, 1, 0),
-Math_PI / 2),
{ 1 | 8, 1 | 8, "outside-wall-corner", -1,
Vector3(2, 0, -2), true },
{ 2 | 4, 2 | 4, "outside-wall-corner",
Basis().rotated(Vector3(0, 1, 0),
Math_PI / 2),
{ 2 | 4, 2 | 4, "outside-wall-corner", 1,
Vector3(-2, 0, 2), true },
{ 16, 16 | 256 | 4096, "internal-wall", Basis(),
{ 16, 16 | 256 | 4096, "internal-wall", 0,
Vector3(0, 0, -2), false },
{ 32, 32 | 512 | 8192, "internal-wall",
Basis().rotated(Vector3(0, 1, 0), Math_PI),
{ 32, 32 | 512 | 8192, "internal-wall", 2,
Vector3(0, 0, 2), false },
{ 64, 64 | 1024 | 16384, "internal-wall",
Basis().rotated(Vector3(0, 1, 0),
Math_PI / 2),
{ 64, 64 | 1024 | 16384, "internal-wall", 1,
Vector3(-2, 0, 0), false },
{ 128, 128 | 2048 | 32768, "internal-wall",
Basis().rotated(Vector3(0, 1, 0),
-Math_PI / 2),
{ 128, 128 | 2048 | 32768, "internal-wall", -1,
Vector3(2, 0, 0), false },
{ 16, 16 | 256, "internal-wall-skirting",
Basis(), Vector3(0, 0, -2), false },
{ 32, 32 | 512, "internal-wall-skirting",
Basis().rotated(Vector3(0, 1, 0), Math_PI),
{ 16, 16 | 256, "internal-wall-skirting", 0,
Vector3(0, 0, -2), false },
{ 32, 32 | 512, "internal-wall-skirting", 2,
Vector3(0, 0, 2), false },
{ 64, 64 | 1024, "internal-wall-skirting",
Basis().rotated(Vector3(0, 1, 0),
Math_PI / 2),
{ 64, 64 | 1024, "internal-wall-skirting", 1,
Vector3(-2, 0, 0), false },
{ 128, 128 | 2048, "internal-wall-skirting",
Basis().rotated(Vector3(0, 1, 0),
-Math_PI / 2),
{ 128, 128 | 2048, "internal-wall-skirting", -1,
Vector3(2, 0, 0), false },
{ 16 | 4096, 16 | 256 | 4096, "internal-door",
Basis(), Vector3(0, 0, -2), false },
0, Vector3(0, 0, -2), false },
{ 32 | 8192, 32 | 512 | 8192, "internal-door",
Basis().rotated(Vector3(0, 1, 0), Math_PI),
Vector3(0, 0, 2), false },
2, Vector3(0, 0, 2), false },
{ 64 | 16384, 64 | 1024 | 16384,
"internal-door",
Basis().rotated(Vector3(0, 1, 0),
Math_PI / 2),
Vector3(-2, 0, 0), false },
"internal-door", 1, Vector3(-2, 0, 0),
false },
{ 128 | 32768, 128 | 2048 | 32768,
"internal-door",
Basis().rotated(Vector3(0, 1, 0),
-Math_PI / 2),
Vector3(2, 0, 0), false },
"internal-door", -1, Vector3(2, 0, 0),
false },
#if 0
{ 1 | 256, 1 | 256, "external-window",
Basis().rotated(Vector3(0, 1, 0),
@@ -216,31 +190,21 @@ protected:
-Math_PI / 2),
Vector3(2, 0, 0), false }
#endif
{ 1 | 256, 1 | 256, "outside-window", Basis(),
{ 1 | 256, 1 | 256, "outside-window", 0,
Vector3(0, 0, -2), true },
{ 2 | 512, 2 | 512, "outside-window",
Basis().rotated(Vector3(0, 1, 0), Math_PI),
{ 2 | 512, 2 | 512, "outside-window", 2,
Vector3(0, 0, 2), true },
{ 4 | 1024, 4 | 1024, "outside-window",
Basis().rotated(Vector3(0, 1, 0),
Math_PI / 2),
{ 4 | 1024, 4 | 1024, "outside-window", 1,
Vector3(-2, 0, 0), true },
{ 8 | 2048, 8 | 2048, "outside-window",
Basis().rotated(Vector3(0, 1, 0),
-Math_PI / 2),
{ 8 | 2048, 8 | 2048, "outside-window", -1,
Vector3(2, 0, 0), true },
{ 16 | 256, 16 | 256, "internal-window",
Basis(), Vector3(0, 0, -2), false },
{ 32 | 512, 32 | 512, "internal-window",
Basis().rotated(Vector3(0, 1, 0), Math_PI),
{ 16 | 256, 16 | 256, "internal-window", 0,
Vector3(0, 0, -2), false },
{ 32 | 512, 32 | 512, "internal-window", 2,
Vector3(0, 0, 2), false },
{ 64 | 1024, 64 | 1024, "internal-window",
Basis().rotated(Vector3(0, 1, 0),
Math_PI / 2),
{ 64 | 1024, 64 | 1024, "internal-window", 1,
Vector3(-2, 0, 0), false },
{ 128 | 2048, 128 | 2048, "internal-window",
Basis().rotated(Vector3(0, 1, 0),
-Math_PI / 2),
{ 128 | 2048, 128 | 2048, "internal-window", -1,
Vector3(2, 0, 0), false },
};
struct match_window {
@@ -293,8 +257,11 @@ protected:
match_data[i].item);
assert(id >= 0);
Transform item_transform;
item_transform.basis =
match_data[i].basis;
item_transform.basis = Basis().rotated(
Vector3(0, 1, 0),
Math_PI *
match_data[i].basis_rot /
2);
item_transform.origin =
match_data[i].offset;
if (match_data[i].exterior)