void SpriteManager::Initialize(Rig3D::IMesh* spriteMesh, Rig3D::IShaderResource* spriteShaderResource) { mRenderer = (Rig3D::Singleton<Rig3D::Engine>::SharedInstance()).GetRenderer(); mSpritesShaderResource = spriteShaderResource; mSpriteMesh = spriteMesh; LoadFont("Assets/UI/Fonts/ashcanbb_reg.ttf_sdf.png"); LoadFont("Assets/UI/Fonts/ashcanbb_bold.ttf_sdf.png"); LoadSpriteSheet("Assets/UI/Health.png", 900, 112, 1, 4); LoadSpriteSheet("Assets/UI/UI_ghostIcons.png", 256, 256, 4, 4); LoadSpriteSheet("Assets/UI/UI_explorerIcons.png", 256, 256, 4, 4); LoadSpriteSheet("Assets/UI/Panels.png", 1024, 256, 1, 4); LoadSpriteSheet("Assets/UI/Keys.png", 96, 96, 8, 2); LoadSpriteSheet("Assets/UI/Icons.png", 256, 256, 4, 4); LoadSpriteSheet("Assets/UI/Start0.png", 1024, 1024, 1, 1); LoadSpriteSheet("Assets/UI/Start1.png", 1024, 1024, 1, 1); LoadSpriteSheet("Assets/UI/Start2.png", 1024, 1024, 1, 1); LoadSpriteSheet("Assets/UI/Start3.png", 1024, 1024, 1, 1); }
void task_a_8143D04(u8 taskIdA) { switch (gMain.state) { default: case 0: { u16 i; ResetSpriteData(); FreeAllSpritePalettes(); gReservedSpritePaletteCount = 8; LZ77UnCompVram(&gBirchHelpGfx, (void *)VRAM); LZ77UnCompVram(&gBirchGrassTilemap, (void *)(VRAM + 0x3800)); LoadPalette(gBirchBagGrassPal[0] + 1, 1, 31 * 2); for (i = 0; i < 0x800; i++) HALL_OF_FAME_SHEET_0[i] = 0x11; for (i = 0; i < 0x800; i++) HALL_OF_FAME_SHEET_1[i] = 0x22; for (i = 0; i < 0x800; i++) HALL_OF_FAME_SHEET_2[i] = 0x33; EWRAM_1F800[0] = 0; EWRAM_1F800[1] = 0x53FF; // light yellow EWRAM_1F800[2] = 0x529F; // light red EWRAM_1F800[3] = 0x7E94; // light blue LoadSpriteSheet(gUnknown_0840CAA0); LoadSpritePalette(gUnknown_0840CAB0); gMain.state += 1; break; } case 1: gTasks[taskIdA].data[TDA_TASK_D_ID] = CreateTask(task_d_8144514, 0); gTasks[gTasks[taskIdA].data[TDA_TASK_D_ID]].data[TDD_STATE] = 1; gTasks[gTasks[taskIdA].data[TDA_TASK_D_ID]].data[TDD_TASK_A_ID] = taskIdA; gTasks[gTasks[taskIdA].data[TDA_TASK_D_ID]].data[TDD_2] = gTasks[taskIdA].data[TDA_7]; BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB(0, 0, 0)); REG_BG3HOFS = 0; REG_BG3VOFS = 32; REG_BG3CNT = BGCNT_PRIORITY(3) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(7) | BGCNT_16COLOR | BGCNT_TXT256x256; REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG3_ON | DISPCNT_OBJ_ON; gMain.state = 0; gUnknown_0203935C = 0; gTasks[taskIdA].func = task_a_8143B38; break; } }
void sub_80C5CD4(struct PCScreenEffectStruct *unkStruct) { u16 i; struct SpriteSheet sprSheet = { gUnknownGfx_083D190C, sizeof(gUnknownGfx_083D190C), 0 }; struct SpritePalette sprPalette = { gUnknownPal_083D18EC, 0 }; struct SpriteTemplate sprTemplate = { 0, 0, &gOamData_83D18D8, gSpriteAnimTable_83D18E8, NULL, gDummySpriteAffineAnimTable, sub_80C60CC, }; sprSheet.tag = unkStruct->tileTag; sprTemplate.tileTag = unkStruct->tileTag; sprPalette.tag = unkStruct->paletteTag; sprTemplate.paletteTag = unkStruct->paletteTag; LoadSpriteSheet(&sprSheet); LoadSpritePalette(&sprPalette); unkStruct->unk0C = 1; unkStruct->unk0A = 0; unkStruct->unk08 = 0; unkStruct->selectedPalettes = ~(0x10000 << IndexOfSpritePaletteTag(unkStruct->paletteTag)) & 0xFFFF0000; if (unkStruct->unk04 == 0) unkStruct->unk04 = 16; if (unkStruct->unk06 == 0) unkStruct->unk06 = 20; gUnknown_020387EC = unkStruct; for (i = 0; i < 8; i++) { u8 spriteId = CreateSprite(&sprTemplate, 32 * i + 8, 80, 0); if (spriteId == MAX_SPRITES) break; gSprites[spriteId].data[0] = (i < 4) ? -unkStruct->unk04 : unkStruct->unk04; } REG_BLDCNT = 191; REG_BLDY = 16; }
void sub_80C5E38(struct PCScreenEffectStruct * a0) { u16 i; u8 spriteId; struct SpriteSheet spriteSheet = { gUnknownGfx_083D190C, sizeof(gUnknownGfx_083D190C), 0 }; struct SpritePalette spritePalette = { gUnknownPal_083D18EC, 0 }; struct SpriteTemplate spriteTemplate = { 0, 0, &gOamData_83D18D8, gSpriteAnimTable_83D18E8, NULL, gDummySpriteAffineAnimTable, sub_80C6130, }; spriteSheet.tag = a0->tileTag; spriteTemplate.tileTag = a0->tileTag; spritePalette.tag = a0->paletteTag; spriteTemplate.paletteTag = a0->paletteTag; LoadSpriteSheet(&spriteSheet); LoadSpritePalette(&spritePalette); a0->unk0C = 0x50; a0->unk08 = 0; a0->unk0A = 0; a0->selectedPalettes = 0xffff0000 & ~(0x10000 << IndexOfSpritePaletteTag(a0->paletteTag)); if (a0->unk04 == 0) a0->unk04 = 16; if (a0->unk06 == 0) a0->unk06 = 20; gUnknown_020387EC = a0; for (i = 0; i < 8; i++) { if (i < 4) { spriteId = CreateSprite(&spriteTemplate, i * 32 - 0x70, 0x50, 0); if (spriteId == MAX_SPRITES) break; gSprites[spriteId].data[0] = a0->unk04; gSprites[spriteId].data[1] = 1; } else { // Fakematching spriteId = CreateSprite(&spriteTemplate, ((i << 21) + (0x80 << 16)) >> 16, 0x50, 0); if (spriteId == MAX_SPRITES) break; gSprites[spriteId].data[0] = -a0->unk04; gSprites[spriteId].data[1] = -1; } gSprites[spriteId].data[2] = i * 32 + 8; gSprites[spriteId].data[4] = 0; gSprites[spriteId].invisible = TRUE; } REG_BLDCNT = BLDCNT_TGT1_BG0 | BLDCNT_TGT1_BG1 | BLDCNT_TGT1_BG2 | BLDCNT_TGT1_BG3 | BLDCNT_TGT1_OBJ | BLDCNT_TGT1_BD | BLDCNT_EFFECT_DARKEN; REG_BLDY = 16; HBlankIntrOn(sub_80C6078); }