mirror of
https://github.com/pret/pokeplatinum.git
synced 2026-08-28 04:15:44 -05:00
Document unk_02023790.c function params
This commit is contained in:
@@ -7,74 +7,82 @@
|
||||
#include "unk_02023790.h"
|
||||
|
||||
struct Strbuf_t {
|
||||
u16 unk_00;
|
||||
u16 unk_02;
|
||||
u32 unk_04;
|
||||
u16 unk_08[1];
|
||||
u16 maxsize;
|
||||
u16 size;
|
||||
u32 magic;
|
||||
u16 data[1];
|
||||
};
|
||||
|
||||
Strbuf* sub_02023790 (u32 param0, u32 param1)
|
||||
#define SIZEOF_STRBUF_HEADER (sizeof(Strbuf) - sizeof(u16))
|
||||
#define STRBUF_MAGIC (0xB6F8D2EC)
|
||||
|
||||
static inline void Strbuf_Check(const Strbuf *strbuf)
|
||||
{
|
||||
Strbuf* v0;
|
||||
GF_ASSERT(strbuf != NULL);
|
||||
GF_ASSERT(strbuf->magic == STRBUF_MAGIC);
|
||||
}
|
||||
|
||||
v0 = Heap_AllocFromHeap(param1, (sizeof(Strbuf) - sizeof(u16)) + sizeof(u16) * param0);
|
||||
Strbuf* sub_02023790(u32 size, u32 heapID) // Strbuf_Init
|
||||
{
|
||||
Strbuf *strbuf;
|
||||
|
||||
if (v0) {
|
||||
v0->unk_04 = 0xb6f8d2ec;
|
||||
v0->unk_00 = param0;
|
||||
v0->unk_02 = 0;
|
||||
v0->unk_08[0] = 0xffff;
|
||||
strbuf = Heap_AllocFromHeap(heapID, SIZEOF_STRBUF_HEADER + sizeof(u16) * size);
|
||||
|
||||
if (strbuf) {
|
||||
strbuf->magic = STRBUF_MAGIC;
|
||||
strbuf->maxsize = size;
|
||||
strbuf->size = 0;
|
||||
strbuf->data[0] = 0xffff;
|
||||
}
|
||||
|
||||
return v0;
|
||||
return strbuf;
|
||||
}
|
||||
|
||||
void sub_020237BC (Strbuf *param0)
|
||||
void sub_020237BC(Strbuf *strbuf) // Strbuf_Free
|
||||
{
|
||||
GF_ASSERT((param0) != NULL); GF_ASSERT((param0)->unk_04 == 0xb6f8d2ec);;
|
||||
Strbuf_Check(strbuf);
|
||||
|
||||
param0->unk_04 = 0xb6f8d2ec + 1;
|
||||
Heap_FreeToHeap(param0);
|
||||
strbuf->magic = STRBUF_MAGIC + 1;
|
||||
Heap_FreeToHeap(strbuf);
|
||||
}
|
||||
|
||||
void sub_020237E8 (Strbuf *param0)
|
||||
void sub_020237E8(Strbuf *strbuf) // Strbuf_Clear
|
||||
{
|
||||
GF_ASSERT((param0) != NULL); GF_ASSERT((param0)->unk_04 == 0xb6f8d2ec);;
|
||||
Strbuf_Check(strbuf);
|
||||
|
||||
param0->unk_02 = 0;
|
||||
param0->unk_08[0] = 0xffff;
|
||||
strbuf->size = 0;
|
||||
strbuf->data[0] = 0xffff;
|
||||
}
|
||||
|
||||
void sub_02023810 (Strbuf *param0, const Strbuf *param1)
|
||||
void sub_02023810(Strbuf *dst, const Strbuf *src) // Strbuf_Copy
|
||||
{
|
||||
GF_ASSERT((param0) != NULL); GF_ASSERT((param0)->unk_04 == 0xb6f8d2ec);;
|
||||
GF_ASSERT((param1) != NULL); GF_ASSERT((param1)->unk_04 == 0xb6f8d2ec);;
|
||||
Strbuf_Check(dst);
|
||||
Strbuf_Check(src);
|
||||
|
||||
if (param0->unk_00 > param1->unk_02) {
|
||||
memcpy(param0->unk_08, param1->unk_08, (param1->unk_02 + 1) * sizeof(u16));
|
||||
param0->unk_02 = param1->unk_02;
|
||||
if (dst->maxsize > src->size) {
|
||||
memcpy(dst->data, src->data, (src->size + 1) * sizeof(u16));
|
||||
dst->size = src->size;
|
||||
return;
|
||||
}
|
||||
|
||||
GF_ASSERT(0);
|
||||
}
|
||||
|
||||
Strbuf* sub_02023868 (const Strbuf *param0, u32 param1)
|
||||
Strbuf* sub_02023868(const Strbuf *src, u32 heapID) // Strbuf_Clone
|
||||
{
|
||||
Strbuf* v0;
|
||||
Strbuf_Check(src);
|
||||
|
||||
GF_ASSERT((param0) != NULL); GF_ASSERT((param0)->unk_04 == 0xb6f8d2ec);;
|
||||
Strbuf *strbuf = sub_02023790(src->size + 1, heapID);
|
||||
|
||||
v0 = sub_02023790(param0->unk_02 + 1, param1);
|
||||
|
||||
if (v0) {
|
||||
sub_02023810(v0, param0);
|
||||
if (strbuf) {
|
||||
sub_02023810(strbuf, src);
|
||||
}
|
||||
|
||||
return v0;
|
||||
return strbuf;
|
||||
}
|
||||
|
||||
void sub_020238A0 (Strbuf *param0, int param1, u32 param2, int param3, int param4)
|
||||
// Strbuf_From32
|
||||
void sub_020238A0(Strbuf *dst, int num, u32 maxDigits, int paddingMode, int charWidth)
|
||||
{
|
||||
static const u32 v0[] = {
|
||||
1,
|
||||
@@ -113,46 +121,47 @@ void sub_020238A0 (Strbuf *param0, int param1, u32 param2, int param3, int param
|
||||
0x129,
|
||||
0x12a
|
||||
};
|
||||
|
||||
Strbuf_Check(dst);
|
||||
|
||||
GF_ASSERT((param0) != NULL); GF_ASSERT((param0)->unk_04 == 0xb6f8d2ec);;
|
||||
v1 = (num < 0);
|
||||
|
||||
v1 = (param1 < 0);
|
||||
|
||||
if (param0->unk_00 > (param2 + v1)) {
|
||||
if (dst->maxsize > (maxDigits + v1)) {
|
||||
u32 v4, v5, v6;
|
||||
const u16 * v7 = (param4 == 0) ? v2 : v3;
|
||||
const u16 * v7 = (charWidth == 0) ? v2 : v3;
|
||||
|
||||
sub_020237E8(param0);
|
||||
sub_020237E8(dst);
|
||||
|
||||
if (v1) {
|
||||
param1 *= -1;
|
||||
param0->unk_08[param0->unk_02++] = (param4 == 0) ? 0xf1 : 0x1be;
|
||||
num *= -1;
|
||||
dst->data[dst->size++] = (charWidth == 0) ? 0xf1 : 0x1be;
|
||||
}
|
||||
|
||||
for (v6 = v0[param2 - 1]; v6 > 0; v6 /= 10) {
|
||||
v5 = (u16)(param1 / v6);
|
||||
v4 = (u32)(param1 - (v6 * v5));
|
||||
for (v6 = v0[maxDigits - 1]; v6 > 0; v6 /= 10) {
|
||||
v5 = (u16)(num / v6);
|
||||
v4 = (u32)(num - (v6 * v5));
|
||||
|
||||
if (param3 == 2) {
|
||||
param0->unk_08[param0->unk_02++] = (v5 < 10) ? v7[v5] : 0xe2;
|
||||
if (paddingMode == 2) {
|
||||
dst->data[dst->size++] = (v5 < 10) ? v7[v5] : 0xe2;
|
||||
} else if ((v5 != 0) || (v6 == 1)) {
|
||||
param3 = 2;
|
||||
param0->unk_08[param0->unk_02++] = (v5 < 10) ? v7[v5] : 0xe2;
|
||||
} else if (param3 == 1) {
|
||||
param0->unk_08[param0->unk_02++] = (param4 == 0) ? 0x1 : 0x1e2;
|
||||
paddingMode = 2;
|
||||
dst->data[dst->size++] = (v5 < 10) ? v7[v5] : 0xe2;
|
||||
} else if (paddingMode == 1) {
|
||||
dst->data[dst->size++] = (charWidth == 0) ? 0x1 : 0x1e2;
|
||||
}
|
||||
|
||||
param1 = v4;
|
||||
num = v4;
|
||||
}
|
||||
|
||||
param0->unk_08[param0->unk_02] = 0xffff;
|
||||
dst->data[dst->size] = 0xffff;
|
||||
return;
|
||||
}
|
||||
|
||||
GF_ASSERT(0);
|
||||
}
|
||||
|
||||
void sub_020239D4 (Strbuf *param0, u64 param1, u32 param2, int param3, int param4)
|
||||
// Strbuf_From64
|
||||
void sub_020239D4(Strbuf *dst, u64 num, u32 maxDigits, int paddingMode, int charWidth)
|
||||
{
|
||||
static const u64 v0[] = {
|
||||
1,
|
||||
@@ -201,46 +210,47 @@ void sub_020239D4 (Strbuf *param0, u64 param1, u32 param2, int param3, int param
|
||||
0x129,
|
||||
0x12a
|
||||
};
|
||||
|
||||
Strbuf_Check(dst);
|
||||
|
||||
GF_ASSERT((param0) != NULL); GF_ASSERT((param0)->unk_04 == 0xb6f8d2ec);;
|
||||
v1 = (num < 0);
|
||||
|
||||
v1 = (param1 < 0);
|
||||
|
||||
if (param0->unk_00 > (param2 + v1)) {
|
||||
if (dst->maxsize > (maxDigits + v1)) {
|
||||
u64 v4, v5, v6;
|
||||
const u16 * v7 = (param4 == 0) ? v2 : v3;
|
||||
const u16 * v7 = (charWidth == 0) ? v2 : v3;
|
||||
|
||||
sub_020237E8(param0);
|
||||
sub_020237E8(dst);
|
||||
|
||||
if (v1) {
|
||||
param1 *= -1;
|
||||
param0->unk_08[param0->unk_02++] = (param4 == 0) ? 0xf1 : 0x1be;
|
||||
num *= -1;
|
||||
dst->data[dst->size++] = (charWidth == 0) ? 0xf1 : 0x1be;
|
||||
}
|
||||
|
||||
for (v6 = v0[param2 - 1]; v6 > 0; v6 /= 10) {
|
||||
v5 = (u64)(param1 / v6);
|
||||
v4 = (u64)(param1 - (v6 * v5));
|
||||
for (v6 = v0[maxDigits - 1]; v6 > 0; v6 /= 10) {
|
||||
v5 = (u64)(num / v6);
|
||||
v4 = (u64)(num - (v6 * v5));
|
||||
|
||||
if (param3 == 2) {
|
||||
param0->unk_08[param0->unk_02++] = (v5 < 10) ? v7[v5] : 0xe2;
|
||||
if (paddingMode == 2) {
|
||||
dst->data[dst->size++] = (v5 < 10) ? v7[v5] : 0xe2;
|
||||
} else if ((v5 != 0) || (v6 == 1)) {
|
||||
param3 = 2;
|
||||
param0->unk_08[param0->unk_02++] = (v5 < 10) ? v7[v5] : 0xe2;
|
||||
} else if (param3 == 1) {
|
||||
param0->unk_08[param0->unk_02++] = (param4 == 0) ? 0x1 : 0x1de;
|
||||
paddingMode = 2;
|
||||
dst->data[dst->size++] = (v5 < 10) ? v7[v5] : 0xe2;
|
||||
} else if (paddingMode == 1) {
|
||||
dst->data[dst->size++] = (charWidth == 0) ? 0x1 : 0x1de;
|
||||
}
|
||||
|
||||
param1 = v4;
|
||||
num = v4;
|
||||
}
|
||||
|
||||
param0->unk_08[param0->unk_02] = 0xffff;
|
||||
dst->data[dst->size] = 0xffff;
|
||||
return;
|
||||
}
|
||||
|
||||
GF_ASSERT(0);
|
||||
}
|
||||
|
||||
u64 sub_02023B38 (const Strbuf *param0, BOOL * param1)
|
||||
// Strbuf_ToInt
|
||||
u64 sub_02023B38(const Strbuf *src, BOOL *success)
|
||||
{
|
||||
u64 v0 = 0, v1 = 0, v2 = 1;
|
||||
int v3;
|
||||
@@ -248,19 +258,19 @@ u64 sub_02023B38 (const Strbuf *param0, BOOL * param1)
|
||||
u16 v5 = 0xa2;
|
||||
u16 v6 = 0x121;
|
||||
|
||||
if (param0->unk_02 > 18) {
|
||||
if (src->size > 18) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
for (v3 = (param0->unk_02 - 1); v3 >= 0; v3--) {
|
||||
v4 = param0->unk_08[v3];
|
||||
for (v3 = (src->size - 1); v3 >= 0; v3--) {
|
||||
v4 = src->data[v3];
|
||||
v0 = v4 - v5;
|
||||
|
||||
if (v0 >= 10) {
|
||||
v0 = v4 - v6;
|
||||
|
||||
if (v0 >= 10) {
|
||||
*param1 = 0;
|
||||
*success = 0;
|
||||
return v1;
|
||||
}
|
||||
}
|
||||
@@ -270,20 +280,21 @@ u64 sub_02023B38 (const Strbuf *param0, BOOL * param1)
|
||||
v2 *= 10;
|
||||
}
|
||||
|
||||
*param1 = 1;
|
||||
*success = 1;
|
||||
return v1;
|
||||
}
|
||||
|
||||
int sub_02023BE0 (const Strbuf *param0, const Strbuf *param1)
|
||||
// Strbuf_Compare
|
||||
int sub_02023BE0(const Strbuf *strbuf1, const Strbuf *strbuf2)
|
||||
{
|
||||
GF_ASSERT((param0) != NULL); GF_ASSERT((param0)->unk_04 == 0xb6f8d2ec);;
|
||||
GF_ASSERT((param1) != NULL); GF_ASSERT((param1)->unk_04 == 0xb6f8d2ec);;
|
||||
Strbuf_Check(strbuf1);
|
||||
Strbuf_Check(strbuf2);
|
||||
|
||||
{
|
||||
int v0;
|
||||
|
||||
for (v0 = 0; param0->unk_08[v0] == param1->unk_08[v0]; v0++) {
|
||||
if (param0->unk_08[v0] == 0xffff) {
|
||||
for (v0 = 0; strbuf1->data[v0] == strbuf2->data[v0]; v0++) {
|
||||
if (strbuf1->data[v0] == 0xffff) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
@@ -292,22 +303,24 @@ int sub_02023BE0 (const Strbuf *param0, const Strbuf *param1)
|
||||
}
|
||||
}
|
||||
|
||||
u32 sub_02023C3C (const Strbuf *param0)
|
||||
// Strbuf_Size
|
||||
u32 sub_02023C3C(const Strbuf *strbuf)
|
||||
{
|
||||
GF_ASSERT((param0) != NULL); GF_ASSERT((param0)->unk_04 == 0xb6f8d2ec);;
|
||||
return param0->unk_02;
|
||||
Strbuf_Check(strbuf);
|
||||
return strbuf->size;
|
||||
}
|
||||
|
||||
u32 sub_02023C5C (const Strbuf *param0)
|
||||
// Strbuf_NumLines
|
||||
u32 sub_02023C5C(const Strbuf *strbuf)
|
||||
{
|
||||
GF_ASSERT((param0) != NULL); GF_ASSERT((param0)->unk_04 == 0xb6f8d2ec);;
|
||||
Strbuf_Check(strbuf);
|
||||
|
||||
{
|
||||
int v0;
|
||||
u32 v1;
|
||||
|
||||
for (v0 = 0, v1 = 1; v0 < param0->unk_02; v0++) {
|
||||
if (param0->unk_08[v0] == 0xe000) {
|
||||
for (v0 = 0, v1 = 1; v0 < strbuf->size; v0++) {
|
||||
if (strbuf->data[v0] == 0xe000) {
|
||||
v1++;
|
||||
}
|
||||
}
|
||||
@@ -316,18 +329,19 @@ u32 sub_02023C5C (const Strbuf *param0)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_02023C9C (Strbuf *param0, const Strbuf *param1, u32 param2)
|
||||
// Strbuf_CopyLineNum
|
||||
void sub_02023C9C(Strbuf *dst, const Strbuf *src, u32 linenum)
|
||||
{
|
||||
GF_ASSERT((param1) != NULL); GF_ASSERT((param1)->unk_04 == 0xb6f8d2ec);;
|
||||
GF_ASSERT((param0) != NULL); GF_ASSERT((param0)->unk_04 == 0xb6f8d2ec);;
|
||||
Strbuf_Check(src);
|
||||
Strbuf_Check(dst);
|
||||
|
||||
{
|
||||
int v0 = 0;
|
||||
|
||||
if (param2) {
|
||||
for (v0 = 0; v0 < param1->unk_02; v0++) {
|
||||
if (param1->unk_08[v0] == 0xe000) {
|
||||
if (--param2 == 0) {
|
||||
if (linenum) {
|
||||
for (v0 = 0; v0 < src->size; v0++) {
|
||||
if (src->data[v0] == 0xe000) {
|
||||
if (--linenum == 0) {
|
||||
v0++;
|
||||
break;
|
||||
}
|
||||
@@ -335,55 +349,57 @@ void sub_02023C9C (Strbuf *param0, const Strbuf *param1, u32 param2)
|
||||
}
|
||||
}
|
||||
|
||||
sub_020237E8(param0);
|
||||
sub_020237E8(dst);
|
||||
|
||||
for ( ; v0 < param1->unk_02; v0++) {
|
||||
if (param1->unk_08[v0] == 0xe000) {
|
||||
for ( ; v0 < src->size; v0++) {
|
||||
if (src->data[v0] == 0xe000) {
|
||||
break;
|
||||
}
|
||||
|
||||
sub_02023EB0(param0, param1->unk_08[v0]);
|
||||
sub_02023EB0(dst, src->data[v0]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_02023D28 (Strbuf *param0, const u16 * param1)
|
||||
// Strbuf_CopyChars
|
||||
void sub_02023D28(Strbuf *dst, const u16 *src)
|
||||
{
|
||||
GF_ASSERT((param0) != NULL); GF_ASSERT((param0)->unk_04 == 0xb6f8d2ec);;
|
||||
Strbuf_Check(dst);
|
||||
|
||||
param0->unk_02 = 0;
|
||||
dst->size = 0;
|
||||
|
||||
while (*param1 != 0xffff) {
|
||||
if (param0->unk_02 >= (param0->unk_00 - 1)) {
|
||||
while (*src != 0xffff) {
|
||||
if (dst->size >= (dst->maxsize - 1)) {
|
||||
GF_ASSERT(0);
|
||||
break;
|
||||
}
|
||||
|
||||
param0->unk_08[param0->unk_02++] = *param1++;
|
||||
dst->data[dst->size++] = *src++;
|
||||
}
|
||||
|
||||
param0->unk_08[param0->unk_02] = 0xffff;
|
||||
dst->data[dst->size] = 0xffff;
|
||||
}
|
||||
|
||||
void sub_02023D8C (Strbuf *param0, const u16 * param1, u32 param2)
|
||||
// Strbuf_CopyNumChars
|
||||
void sub_02023D8C(Strbuf *dst, const u16 *src, u32 num)
|
||||
{
|
||||
GF_ASSERT((param0) != NULL); GF_ASSERT((param0)->unk_04 == 0xb6f8d2ec);;
|
||||
Strbuf_Check(dst);
|
||||
|
||||
if (param2 <= param0->unk_00) {
|
||||
if (num <= dst->maxsize) {
|
||||
u32 v0;
|
||||
|
||||
memcpy(param0->unk_08, param1, param2 * sizeof(u16));
|
||||
memcpy(dst->data, src, num * sizeof(u16));
|
||||
|
||||
for (v0 = 0; v0 < param2; v0++) {
|
||||
if (param0->unk_08[v0] == 0xffff) {
|
||||
for (v0 = 0; v0 < num; v0++) {
|
||||
if (dst->data[v0] == 0xffff) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
param0->unk_02 = v0;
|
||||
dst->size = v0;
|
||||
|
||||
if (v0 == param2) {
|
||||
param0->unk_08[param2 - 1] = 0xffff;
|
||||
if (v0 == num) {
|
||||
dst->data[num - 1] = 0xffff;
|
||||
}
|
||||
|
||||
return;
|
||||
@@ -392,62 +408,69 @@ void sub_02023D8C (Strbuf *param0, const u16 * param1, u32 param2)
|
||||
GF_ASSERT(0);
|
||||
}
|
||||
|
||||
void sub_02023DF0 (const Strbuf *param0, u16 * param1, u32 param2)
|
||||
// Strbuf_ToChars
|
||||
void sub_02023DF0(const Strbuf *src, u16 *dst, u32 dstsize)
|
||||
{
|
||||
GF_ASSERT((param0) != NULL); GF_ASSERT((param0)->unk_04 == 0xb6f8d2ec);;
|
||||
Strbuf_Check(src);
|
||||
|
||||
if ((param0->unk_02 + 1) <= param2) {
|
||||
memcpy(param1, param0->unk_08, (param0->unk_02 + 1) * sizeof(u16));
|
||||
if ((src->size + 1) <= dstsize) {
|
||||
memcpy(dst, src->data, (src->size + 1) * sizeof(u16));
|
||||
return;
|
||||
}
|
||||
|
||||
GF_ASSERT(0);
|
||||
}
|
||||
|
||||
const u16 * sub_02023E2C (const Strbuf *param0)
|
||||
// Strbuf_GetData
|
||||
const u16* sub_02023E2C(const Strbuf *src)
|
||||
{
|
||||
GF_ASSERT((param0) != NULL); GF_ASSERT((param0)->unk_04 == 0xb6f8d2ec);;
|
||||
return param0->unk_08;
|
||||
Strbuf_Check(src);
|
||||
|
||||
return src->data;
|
||||
}
|
||||
|
||||
void sub_02023E4C (Strbuf *param0, const Strbuf *param1)
|
||||
// Strbuf_Concat
|
||||
void sub_02023E4C(Strbuf *dst, const Strbuf *src)
|
||||
{
|
||||
GF_ASSERT((param0) != NULL); GF_ASSERT((param0)->unk_04 == 0xb6f8d2ec);;
|
||||
GF_ASSERT((param1) != NULL); GF_ASSERT((param1)->unk_04 == 0xb6f8d2ec);;
|
||||
Strbuf_Check(dst);
|
||||
Strbuf_Check(src);
|
||||
|
||||
if ((param0->unk_02 + param1->unk_02 + 1) <= param0->unk_00) {
|
||||
memcpy(&(param0->unk_08[param0->unk_02]), param1->unk_08, (param1->unk_02 + 1) * sizeof(u16));
|
||||
param0->unk_02 += param1->unk_02;
|
||||
if ((dst->size + src->size + 1) <= dst->maxsize) {
|
||||
memcpy(&(dst->data[dst->size]), src->data, (src->size + 1) * sizeof(u16));
|
||||
dst->size += src->size;
|
||||
return;
|
||||
}
|
||||
|
||||
GF_ASSERT(0);
|
||||
}
|
||||
|
||||
void sub_02023EB0 (Strbuf *param0, u16 param1)
|
||||
// Strbuf_Append
|
||||
void sub_02023EB0(Strbuf *dst, u16 c)
|
||||
{
|
||||
GF_ASSERT((param0) != NULL); GF_ASSERT((param0)->unk_04 == 0xb6f8d2ec);;
|
||||
Strbuf_Check(dst);
|
||||
|
||||
if ((param0->unk_02 + 1) < param0->unk_00) {
|
||||
param0->unk_08[param0->unk_02++] = param1;
|
||||
param0->unk_08[param0->unk_02] = 0xffff;
|
||||
if ((dst->size + 1) < dst->maxsize) {
|
||||
dst->data[dst->size++] = c;
|
||||
dst->data[dst->size] = 0xffff;
|
||||
return;
|
||||
}
|
||||
|
||||
GF_ASSERT(0);
|
||||
}
|
||||
|
||||
BOOL sub_02023EF8 (Strbuf *param0)
|
||||
// Strbuf_IsCompressed
|
||||
BOOL sub_02023EF8(Strbuf *strbuf)
|
||||
{
|
||||
return (param0->unk_02 > 0) && (param0->unk_08[0] == 0xF100);
|
||||
return (strbuf->size > 0) && (strbuf->data[0] == 0xF100); // COMPRESSED_LEADER
|
||||
}
|
||||
|
||||
void sub_02023F10 (Strbuf *param0, Strbuf *param1)
|
||||
// Strbuf_ConcatCompressed
|
||||
void sub_02023F10(Strbuf *strbuf1, Strbuf *strbuf2)
|
||||
{
|
||||
if (sub_02023EF8(param1)) {
|
||||
if (sub_02023EF8(strbuf2)) {
|
||||
u32 v0;
|
||||
u16 * v1 = ¶m0->unk_08[param0->unk_02];
|
||||
u16 * v2 = ¶m1->unk_08[1];
|
||||
u16 * v1 = &strbuf1->data[strbuf1->size];
|
||||
u16 * v2 = &strbuf2->data[1];
|
||||
s32 v3 = 0;
|
||||
s32 v4 = 0;
|
||||
|
||||
@@ -475,21 +498,22 @@ void sub_02023F10 (Strbuf *param0, Strbuf *param1)
|
||||
} while (TRUE);
|
||||
|
||||
*v1 = 0xffff;
|
||||
param0->unk_02 += v4;
|
||||
strbuf1->size += v4;
|
||||
} else {
|
||||
sub_02023E4C(param0, param1);
|
||||
sub_02023E4C(strbuf1, strbuf2);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_02023F8C (Strbuf *param0, int param1)
|
||||
// Strbuf_Capitalize
|
||||
void sub_02023F8C(Strbuf *strbuf, int i)
|
||||
{
|
||||
GF_ASSERT((param0) != NULL); GF_ASSERT((param0)->unk_04 == 0xb6f8d2ec);;
|
||||
Strbuf_Check(strbuf);
|
||||
|
||||
if (param0->unk_02 > param1) {
|
||||
u16 v0 = param0->unk_08[param1];
|
||||
if (strbuf->size > i) {
|
||||
u16 v0 = strbuf->data[i];
|
||||
|
||||
if ((v0 >= 0x145) && (v0 <= 0x15e)) {
|
||||
param0->unk_08[param1] -= 0x145 - 0x12b;
|
||||
strbuf->data[i] -= 0x145 - 0x12b;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user