pbk.c
来自「redboy for gba 是BPNS为GBA编写的一个小软件。软件的邹形是B」· C语言 代码 · 共 72 行
C
72 行
#include <csagb.h>
#include <string.h>
#include <rb_string.h>
#include <rb_stdio.h>
#define TBAS 0x8100000
extern void cbmp(u32 loc,u8 x,u8 y);
typedef struct
{
char ftype[4];//"PBK"
u32 pcnt;//图片个数
u32 size;//文件大小
u32 marsk;//密码
u32 re;//保留区
}pbk_head;
typedef struct
{
u32 loc;//图片地址
u32 text;//文本地址(没有则为0)
u32 mus;//音乐地地(没有则为0)
} pbk_item;
void pbk(u32 loc)
{
int sel=0;
int done=1;
int start=0;
pbk_head head;
pbk_item item;
get_data(&head,(void *)loc,sizeof(pbk_head));
str_up(head.ftype);
if (strcmp(head.ftype,"PBK")!=0)
{
arlt("系统提示:","您打开的不是PBK文件或者文件已经损坏.");
return;
}
while(1)
{
if (start) {CS_ReadKey();start=0;}
else readkey();
if (CS_IsKeyDown(KEY_UP) && sel)
{
sel--;
done=1;
}
else if(CS_IsKeyDown(KEY_DOWN) && sel+1<head.pcnt)
{
sel++;
done=1;
}
else if(CS_IsKeyDown(KEY_R)) done=2;
else if(CS_IsKeyDown(KEY_L)) done=1;
else if(CS_IsKeyDown(KEY_B)) return;
if (done==2)
{
done=0;
if (item.text)
{
r_box(1,70,238,158,0,0);
Q_box(2,71,237,157,RGB(30,30,30));
box_text(4,73,235,157,0,(char *)(loc+item.text));
}
}
if (done)
{
done=0;
get_data(&item,(void *)(loc+sizeof(pbk_head)+sel*sizeof(pbk_item)),sizeof(pbk_item));
cbmp(loc+item.loc,255,255);
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?