mirror of
https://github.com/modmii/YAWM-ModMii-Edition.git
synced 2024-11-25 09:36:53 +01:00
91 lines
1.5 KiB
C
91 lines
1.5 KiB
C
|
#include <stdio.h>
|
||
|
#include <stdlib.h>
|
||
|
#include <ogcsys.h>
|
||
|
|
||
|
#include "video.h"
|
||
|
#include "fat.h"
|
||
|
#include "menu.h"
|
||
|
#include "nand.h"
|
||
|
#include "globals.h"
|
||
|
|
||
|
/* Constants */
|
||
|
#define CONSOLE_XCOORD 70
|
||
|
#define CONSOLE_YCOORD 118
|
||
|
#define CONSOLE_WIDTH 502
|
||
|
#define CONSOLE_HEIGHT 320
|
||
|
|
||
|
bool file_exists(const char * filename)
|
||
|
{
|
||
|
FILE * file;
|
||
|
if ((file = fopen(filename, "r")))
|
||
|
{
|
||
|
fclose(file);
|
||
|
return true;
|
||
|
}
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
|
||
|
s32 __Gui_DrawPng(void *img, u32 x, u32 y)
|
||
|
{
|
||
|
IMGCTX ctx = NULL;
|
||
|
PNGUPROP imgProp;
|
||
|
|
||
|
s32 ret;
|
||
|
|
||
|
fatDevice *fdev = &fdevList[0];
|
||
|
ret = Fat_Mount(fdev);
|
||
|
if (file_exists("sd:/wad/background.png")) ctx = PNGU_SelectImageFromDevice ("sd:/wad/background.png");
|
||
|
|
||
|
if (ret < 0)
|
||
|
{
|
||
|
fdev = &fdevList[2];
|
||
|
Fat_Mount(fdev);
|
||
|
if (file_exists("usb2:/wad/background.png")) ctx = PNGU_SelectImageFromDevice ("usb2:/wad/background.png");
|
||
|
}
|
||
|
|
||
|
if(!ctx)
|
||
|
{
|
||
|
/* Select PNG data */
|
||
|
ctx = PNGU_SelectImageFromBuffer(img);
|
||
|
if (!ctx) {
|
||
|
ret = -1;
|
||
|
goto out;
|
||
|
}
|
||
|
}
|
||
|
/* Get image properties */
|
||
|
ret = PNGU_GetImageProperties(ctx, &imgProp);
|
||
|
if (ret != PNGU_OK) {
|
||
|
ret = -1;
|
||
|
goto out;
|
||
|
}
|
||
|
|
||
|
/* Draw image */
|
||
|
Video_DrawPng(ctx, imgProp, x, y);
|
||
|
|
||
|
/* Success */
|
||
|
ret = 0;
|
||
|
|
||
|
out:
|
||
|
/* Free memory */
|
||
|
if (ctx)
|
||
|
PNGU_ReleaseImageContext(ctx);
|
||
|
|
||
|
return ret;
|
||
|
}
|
||
|
|
||
|
|
||
|
void Gui_InitConsole(void)
|
||
|
{
|
||
|
/* Initialize console */
|
||
|
Con_Init(CONSOLE_XCOORD, CONSOLE_YCOORD, CONSOLE_WIDTH, CONSOLE_HEIGHT);
|
||
|
}
|
||
|
|
||
|
void Gui_DrawBackground(void)
|
||
|
{
|
||
|
extern char bgData[];
|
||
|
|
||
|
/* Draw background */
|
||
|
__Gui_DrawPng(bgData, 0, 0);
|
||
|
}
|