Files
decomp.me/db.json
2021-06-28 09:03:36 +02:00

64 lines
9.4 KiB
JSON

{
"users": [
{
"name": "octorock",
"points": 1337
},
{
"name": "noob",
"points": 0
},
{
"name": "very-good-decomper",
"points": 9001
}
],
"projects": [
{
"id": 1,
"name": "tmc"
},
{
"id": 2,
"name": "oot"
},
{
"id": 3,
"name": "mm"
}
],
"functions": [
{
"name": "CreateItemDrop",
"projectId": "1",
"cCode": "#include \"global.h\"\n#include \"player.h\"\n#include \"room.h\"\n#include \"menu.h\"\n#include \"area.h\"\n#include \"utils.h\"\n\ntypedef struct {\n u8 filler[0xa8];\n Stats stats;\n} SaveFile;\n\ntypedef struct {\n u8 unk;\n u8 filler[7];\n} struct_080FD5B4;\n\ntypedef struct {\n u8 filler[0x2e];\n u8 unk;\n} ScreenTransition;\n\nextern SaveFile gSave;\nextern struct_080FD5B4 gUnk_080FD5B4[];\nextern ScreenTransition gScreenTransition;\n\nextern u8 gUnk_0200AF13;\nextern u8 gUnk_0200AF14;\nextern u32 gUnk_080015BC;\nextern u8 gUnk_080FE1C6[];\nextern u32 gUnk_02034398;\nextern void (*const gUnk_080FE2A0[])();\n\nvoid ForceEquipItem(u32, u8);\nextern void sub_0807CAA0(u32, u32);\n\n// end of existing headers\n\nu32 CreateItemDrop(Entity* arg0, u32 itemID, u32 itemParameter) {\n // TODO see below\n}\n",
"asmCode": "thumb_func_start CreateItemDrop\nCreateItemDrop:\n push {r4, r5, r6, lr}\n mov r6, r0\n mov r4, r1\n mov r5, r2\n cmp r4, #0x5e\n beq _code0_2\n cmp r4, #0x5e\n bhi _code0_0\n cmp r4, #0x5c\n beq _code0_6\n cmp r4, #0x5c\n bhi _code0_1\n cmp r4, #0x3f\n beq _code0_5\n b _code0_7\n_code0_0:\n cmp r4, #0xfc\n blo _code0_7\n cmp r4, #0xfe\n bls _code0_6\n cmp r4, #0xff\n bne _code0_7\n mov r0, #0x1\n b _code0_3\n_code0_1:\n mov r0, #0x65\n b _code0_3\n_code0_2:\n mov r0, #0x9\n_code0_3:\n bl GetInventoryValue\n cmp r0, #0x0\n bne _code0_7\n_code0_4:\n mov r0, #0x0\n b _code0_14\n_code0_5:\n mov r0, #0x40\n bl GetInventoryValue\n cmp r0, #0x0\n beq _code0_4\n cmp r5, #0x0\n bne _code0_7\n mov r5, #0x1\n b _code0_7\n_code0_6:\n mov r0, #0x67\n bl GetInventoryValue\n cmp r0, #0x0\n beq _code0_4\n ldr r0, _data0_0\n ldrb r0, [r0, #0x5]\n cmp r0, #0x3\n bhi _code0_4\n cmp r4, #0x5c\n beq _code0_7\n mov r5, r4\n sub r5, #0xfc\n bl Random\n mov r1, #0x3f\n and r1, r0\n ldr r2, _data0_0+0x4\n lsl r0, r5, #0x6\n add r1, r0\n add r1, r2\n ldrb r5, [r1]\n mov r4, #0x5c\n cmp r5, #0x0\n bne _code0_7\n mov r4, #0x0\n_code0_7:\n cmp r4, #0x0\n beq _code0_13\n cmp r4, #0xff\n beq _code0_12\n mov r0, #0x0\n mov r1, r4\n mov r2, r5\n bl CreateObject\n mov r2, r0\n cmp r2, #0x0\n beq _code0_13\n ldr r0, _data0_0+0x8\n cmp r6, r0\n bne _code0_8\n mov r0, #0x1\n b _code0_9\n_data0_0:\n .4byte gRoomVars\n .4byte gUnk_080FE1DD\n .4byte gPlayerEntity\n_code0_8:\n mov r0, #0x0\n_code0_9:\n strb r0, [r2, #0xe]\n ldrb r0, [r6, #0x8]\n cmp r0, #0x6\n bne _code0_11\n ldrb r0, [r6, #0x9]\n cmp r0, #0x63\n bne _code0_10\n str r2, [r6, #0x54]\n b _code0_11\n_code0_10:\n cmp r0, #0x1e\n bne _code0_11\n ldrb r0, [r6, #0x14]\n lsl r0, #0x3\n mov r3, #0x80\n neg r3, r3\n mov r1, r3\n orr r0, r1\n strb r0, [r2, #0x15]\n mov r0, #0xc0\n strh r0, [r2, #0x24]\n mov r0, #0xc0\n lsl r0, #0x9\n str r0, [r2, #0x20]\n_code0_11:\n mov r0, r6\n mov r1, r2\n bl CopyPosition\n b _code0_13\n_code0_12:\n mov r0, #0x7\n mov r1, #0x0\n bl CreateEnemy\n mov r2, r0\n cmp r2, #0x0\n beq _code0_13\n ldrh r0, [r6, #0x2e]\n strh r0, [r2, #0x2e]\n ldrh r0, [r6, #0x32]\n strh r0, [r2, #0x32]\n mov r0, r6\n add r0, #0x38\n ldrb r1, [r0]\n mov r0, r2\n add r0, #0x38\n strb r1, [r0]\n mov r0, r2\n bl UpdateSpriteForCollisionLayer\n_code0_13:\n mov r0, r4\n_code0_14:\n pop {r4, r5, r6, pc}",
"score": "148",
"id": 1
},
{
"name": "ForceEquipItem",
"projectId": "1",
"cCode": "#include \"global.h\"\n#include \"player.h\"\n#include \"room.h\"\n#include \"menu.h\"\n#include \"area.h\"\n#include \"utils.h\"\n\ntypedef struct {\n u8 filler[0xa8];\n Stats stats;\n} SaveFile;\n\ntypedef struct {\n u8 unk;\n u8 filler[7];\n} struct_080FD5B4;\n\ntypedef struct {\n u8 filler[0x2e];\n u8 unk;\n} ScreenTransition;\n\nextern SaveFile gSave;\nextern struct_080FD5B4 gUnk_080FD5B4[];\nextern ScreenTransition gScreenTransition;\n\nextern u8 gUnk_0200AF13;\nextern u8 gUnk_0200AF14;\nextern u32 gUnk_080015BC;\nextern u8 gUnk_080FE1C6[];\nextern u32 gUnk_02034398;\nextern void (*const gUnk_080FE2A0[])();\n\nvoid ForceEquipItem(u32, u8);\nextern void sub_0807CAA0(u32, u32);\n\n// end of existing headers\n\nvoid ForceEquipItem(u32 itemID, u8 itemSlot) {\n\n}",
"asmCode": "thumb_func_start ForceEquipItem\nForceEquipItem:\n push {r4, r5, r6, r7, lr}\n mov r4, r0\n sub r0, r4, #0x1\n cmp r0, #0x1e\n bhi _code0_2\n cmp r1, #0x1\n bhi _code0_2\n mov r2, #0x0\n cmp r1, #0x0\n bne _code0_0\n mov r2, #0x1\n_code0_0:\n ldr r0, _data0_0\n add r0, #0xb4\n add r6, r1, r0\n ldrb r7, [r6]\n add r5, r2, r0\n ldrb r3, [r5]\n ldr r2, _data0_0+0x4\n lsl r1, r3, #0x3\n add r1, r2\n lsl r0, r4, #0x3\n add r0, r2\n ldrb r1, [r1]\n ldrb r0, [r0]\n cmp r1, r0\n bne _code0_1\n mov r3, r7\n_code0_1:\n strb r4, [r6]\n strb r3, [r5]\n ldr r1, _data0_0+0x8\n mov r0, #0x7f\n strb r0, [r1, #0x13]\n strb r0, [r1, #0x14]\n_code0_2:\n pop {r4, r5, r6, r7, pc}\n_data0_0:\n .4byte gSave\n .4byte gUnk_080FD5B4\n .4byte gUnk_0200AF00",
"score": "43",
"id": 2
},
{
"name": "sub_0801CED8",
"projectId": "1",
"cCode": "#include \"global.h\"\n#include \"audio.h\"\n#include \"textbox.h\"\n#include \"structures.h\"\n\ntypedef struct {\n s8 unk0;\n u8 unk1;\n u8 unk2;\n u8 unk3;\n u8 unk4;\n u8 unk5;\n u8 unk6;\n u8 unk7;\n u8 unk8;\n u8 unk9;\n u8 unkA;\n u8 unkB;\n u16 unkC;\n u16 unkE;\n u16 unk10;\n u8 unk12;\n u8 unk13;\n} Element;\n\nextern void sub_0805ECEC(u32, u32, u32, u32);\nextern void sub_0801CAD0(Element*);\n\nextern void (*const gUnk_080C904C[])(Element*);\n\nextern u16 gUnk_080C9058[];\n\n// end of existing headers\n\nvoid sub_0801CED8(Element* arg0) {\n if (gUnk_0200AF00.ezloNagFuncIndex == 1) {\n gUnk_0200AF00.ezloNagFuncIndex = 2;\n arg0->unkC = 0x10;\n arg0->unkE = 0x90;\n arg0->unk6 = 0;\n arg0->unk1 = 7;\n arg0->unk4 = 1;\n arg0->unk0 |= 2;\n sub_0801CAB8(arg0, &gUnk_080C9094);\n }\n}\n",
"asmCode": "thumb_func_start sub_0801CED8\nsub_0801CED8:\n push {r4, lr}\n mov r3, r0\n ldr r0, _data0_0\n mov r1, r0\n add r1, #0x24\n ldrb r4, [r1]\n cmp r4, #0x1\n bne _code0_0\n mov r2, #0x2\n mov r0, #0x2\n strb r0, [r1]\n mov r1, #0x0\n mov r0, #0x10\n strh r0, [r3, #0xc]\n mov r0, #0x90\n strh r0, [r3, #0xe]\n strb r1, [r3, #0x6]\n mov r0, #0x7\n strb r0, [r3, #0x1]\n strb r4, [r3, #0x4]\n ldrb r0, [r3]\n orr r0, r2\n strb r0, [r3]\n ldr r1, _data0_0+0x4\n mov r0, r3\n bl sub_0801CAB8\n_code0_0:\n pop {r4, pc}\n_data0_0:\n .4byte gUnk_0200AF00\n .4byte gUnk_080C9094",
"score": "33",
"id": 4
},
{
"name": "sub_0804C258",
"projectId": "1",
"cCode": "#include \"global.h\"\n#include \"audio.h\"\n#include \"entity.h\"\n#include \"area.h\"\n#include \"room.h\"\n#include \"flags.h\"\n#include \"npc.h\"\n#include \"player.h\"\n#include \"screen.h\"\n#include \"main.h\"\n#include \"structures.h\"\n#include \"save.h\"\n#include \"script.h\"\n#include \"random.h\"\n#include \"functions.h\"\n\n// end of existing headers\n\nvoid sub_0804C258(void) {\n\n}",
"asmCode": "thumb_func_start sub_0804C258\nsub_0804C258:\n push {lr}\n ldr r3, _data0_0\n ldrb r0, [r3, #0xd]\n mov r2, #0xf\n neg r2, r2\n and r2, r0\n mov r0, #0x2\n orr r2, r0\n mov r0, #0xf\n and r2, r0\n strb r2, [r3, #0xd]\n ldr r0, _data0_0+0x4\n ldrb r0, [r0, #0xe]\n cmp r0, #0x4\n bne _code0_0\n mov r1, #0xe\n mov r0, r2\n orr r0, r1\n strb r0, [r3, #0xd]\n mov r0, #0x1\n bl sub_080AF250\n_code0_0:\n pop {pc}\n_data0_0:\n .4byte gArea\n .4byte gScreenTransition",
"score": "28",
"id": 7
}
]
}