mirror of
https://github.com/rvtr/ctr_Repair.git
synced 2025-10-31 13:51:08 -04:00
git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@538 385bec56-5757-e545-9c3a-d8741f4650f1
This commit is contained in:
parent
08a942a45e
commit
2dc9f4e9c8
@ -59,7 +59,7 @@ ROMFS_IMPORTEE_PATH = L\"rom:/$(IMPORTEE_CIA)\"
|
||||
CCFLAGS += -DROMFS_IMPORTEE_PATH=$(ROMFS_IMPORTEE_PATH)
|
||||
|
||||
ROM_SPEC_FILE = Imp.rsf
|
||||
DESCRIPTOR = $(CTRSDK_ROOT)/resources/specfiles/repairtool.desc
|
||||
DESCRIPTOR = $(CTRSDK_ROOT)/resources/specfiles/private/repairtool.desc
|
||||
|
||||
# バナー、アイコン
|
||||
CTR_BANNER_SPEC = banner.bsf
|
||||
|
||||
@ -342,7 +342,7 @@ void nnMain( void )
|
||||
|
||||
//シリアル表示(オプション)後にチェック
|
||||
//デバッガ=15,実機=11
|
||||
if (GettedSerLen < 11)ErrorStop("invalid Serial");
|
||||
//if (GettedSerLen < 11)ErrorStop("invalid Serial");
|
||||
|
||||
fsize = FileRead(SIGN_FILE);//署名リード
|
||||
if(fsize != 256)ErrorStop("sign file");//鍵のbit長は2046固定
|
||||
@ -394,7 +394,7 @@ void nnMain( void )
|
||||
//文字数チェック
|
||||
//開発初期のファームアップで空ID本体が発生してたので念の為
|
||||
//2011.5現在、製品で報告はない
|
||||
if (GettedSerLen < 11)ErrorStop("invalid Serial");
|
||||
//if (GettedSerLen < 11)ErrorStop("invalid Serial");
|
||||
|
||||
//本体シリアルがリストにあるかチェック
|
||||
n =0;
|
||||
|
||||
@ -47,7 +47,7 @@ TITLE = body
|
||||
|
||||
# 独自の RSF ファイルを指定する場合
|
||||
ROM_SPEC_FILE = body.rsf
|
||||
DESCRIPTOR = $(CTRSDK_ROOT)/resources/specfiles/repairtool.desc
|
||||
DESCRIPTOR = $(CTRSDK_ROOT)/resources/specfiles/private/repairtool.desc
|
||||
|
||||
# バナー、アイコン
|
||||
CTR_BANNER_SPEC = banner.bsf
|
||||
|
||||
@ -46,6 +46,7 @@ nn::os::LightEvent insEvntSd(false);
|
||||
bool Active,Formatted;
|
||||
bool exActive;
|
||||
tArcInfo arcInfo,arcInfo_ex;//アーカイブ情報
|
||||
tDcList dcList,dcList2;//ディレクトリ格納
|
||||
|
||||
//Top画面エラー表示
|
||||
int tmerr;
|
||||
@ -71,7 +72,7 @@ tIsInsEject isInsEject;
|
||||
|
||||
extern u8 scr_evnt;
|
||||
void WaitUI();
|
||||
void PutError(ErcDev dev,int cd=0);
|
||||
void PutError(TgtDev dev,int cd=0);
|
||||
bool CheckInsExit();
|
||||
|
||||
|
||||
@ -113,16 +114,16 @@ char fileBuffer_ex[512] NN_ATTRIBUTE_ALIGN(4);
|
||||
#define FILEBUFF_SIZE sizeof(fileBuffer)
|
||||
|
||||
//エラー表示
|
||||
char sts[64];
|
||||
void PutError(ErcDev dev,int cd)
|
||||
wchar_t sts[64];
|
||||
void PutError(TgtDev dev,int cd)
|
||||
{
|
||||
nn::Result res;
|
||||
switch (dev)
|
||||
{
|
||||
case ERC_DEV_CARD: res = savedata.LastNnResult;break;
|
||||
case ERC_DEV_OUT: res = exsave.LastNnResult;break;
|
||||
case TGT_CARD: res = savedata.LastNnResult;break;
|
||||
case TGT_SD: res = exsave.LastNnResult;break;
|
||||
}
|
||||
GetErrorStr(dev,res,cd,sts);
|
||||
GetErrorStr(dev,res,cd,(tChar*)sts);
|
||||
scr_Status(sts,COLOR_RED);
|
||||
}
|
||||
|
||||
@ -139,15 +140,15 @@ void waitSec(int sec)
|
||||
}
|
||||
|
||||
|
||||
char mes[128];
|
||||
wchar_t mes[128];
|
||||
//保存先のディレクトリ削除
|
||||
bool TryDeleteDir()
|
||||
{
|
||||
if(exsave.Delete())return true;
|
||||
//フォルダ削除に失敗したら手削除
|
||||
strcpy(mes,"Illegal folder [ ");
|
||||
strcat(mes,exsave.DirName);//フォルダ名
|
||||
strcat(mes," ]");
|
||||
wcscpy(mes,L"Illegal folder [ ");
|
||||
wcscat(mes,exsave.DirName);//フォルダ名
|
||||
wcscat(mes,L" ]");
|
||||
//scr_Status(sts,COLOR_RED);
|
||||
scr_MessOnCount(mes);
|
||||
return false;
|
||||
@ -184,30 +185,30 @@ RetCode Card2Sd()
|
||||
|
||||
//保存先ディレクトリ作成
|
||||
//ディレクトリ作成時にクラスタサイズ、空き容量を取得
|
||||
scr_Status("Create Dir to SD",COLOR_YELLO);
|
||||
scr_Status(L"Create Dir to SD",COLOR_YELLO);
|
||||
if (exsave.Create() == false)
|
||||
{
|
||||
PutError(ERC_DEV_OUT);
|
||||
PutError(TGT_SD);
|
||||
return ERROR;
|
||||
}
|
||||
|
||||
//セーブデータのマウント
|
||||
scr_Status("Mount SaveData",COLOR_YELLO);
|
||||
scr_Status(L"Mount SaveData",COLOR_YELLO);
|
||||
res = savedata.Mount();
|
||||
if(res != RESULT_OK){
|
||||
exsave.Unmount();
|
||||
TryDeleteDir();
|
||||
PutError(ERC_DEV_CARD);
|
||||
PutError(TGT_CARD);
|
||||
return ERROR;
|
||||
}
|
||||
|
||||
//ディレクトリ情報
|
||||
scr_Status("Get Directry",COLOR_YELLO);
|
||||
if(savedata.GetInfo(&arcInfo,exsave.ClasterSize)==false)
|
||||
//ディレクトリ情報
|
||||
scr_Status(L"Get Directry",COLOR_YELLO);
|
||||
if(savedata.GetInfo(&arcInfo,&dcList,exsave.ClasterSize)==false)
|
||||
{
|
||||
savedata.Unmount();
|
||||
exsave.Unmount();
|
||||
PutError(ERC_DEV_CARD);
|
||||
PutError(TGT_CARD);
|
||||
TryDeleteDir();
|
||||
return ERROR;
|
||||
}
|
||||
@ -217,7 +218,7 @@ RetCode Card2Sd()
|
||||
{//容量不足
|
||||
savedata.Unmount();
|
||||
exsave.Unmount();
|
||||
PutError(ERC_DEV_OUT,ERC_WRITE_NS);
|
||||
PutError(TGT_SD,ERC_NOSPACE);
|
||||
TryDeleteDir();
|
||||
return ERROR;
|
||||
}
|
||||
@ -226,21 +227,70 @@ RetCode Card2Sd()
|
||||
if (arcInfo.FileCount > arcInfo.FileEntry){
|
||||
savedata.Unmount();
|
||||
exsave.Unmount();
|
||||
PutError(ERC_DEV_OTHER,ERC_EXEC);
|
||||
PutError(TGT_NONE,ERC_EXEC);
|
||||
TryDeleteDir();
|
||||
return ERROR;
|
||||
}
|
||||
if (arcInfo.DirCount > arcInfo.DirEntry)
|
||||
{
|
||||
savedata.Unmount();
|
||||
PutError(TGT_NONE,ERC_EXEC);
|
||||
return ERROR;
|
||||
}
|
||||
|
||||
if(arcInfo.DirCount >= MAX_DCLIST)
|
||||
{//ディレクトリ数が多すぎ
|
||||
savedata.Unmount();
|
||||
PutError(TGT_MEM,ERC_EXEC);
|
||||
return ERROR;
|
||||
}
|
||||
|
||||
bool mkdir;
|
||||
//ディレクトリ作成
|
||||
//空ディレクトリもチェックするゲームあるので(マリカ7)
|
||||
//ファイルの存在と関係なく作成
|
||||
//todo:パス名チェック
|
||||
if(dcList.num >0)
|
||||
{
|
||||
int i,rev=0;
|
||||
for (i=0;i<dcList.num;i++)
|
||||
{
|
||||
while(1){
|
||||
if (exsave.MakeDir(dcList.name[i],&mkdir)==false)
|
||||
{
|
||||
if(mkdir==false)
|
||||
{
|
||||
res = RESULT_FAIL_OPENW;
|
||||
break;
|
||||
}
|
||||
}else break;
|
||||
}
|
||||
if (res != RESULT_OK)break;
|
||||
rev^=1;
|
||||
//if (rev & 1)scr_Status(MessTxt(MT_CrtDir1),COLOR_YELLO);
|
||||
//else scr_Status(MessTxt(MT_CrtDir2),COLOR_YELLO);
|
||||
if (rev & 1)scr_Status(L"Create Directry -",COLOR_YELLO);
|
||||
else scr_Status(L"Create Directry |",COLOR_YELLO);
|
||||
}
|
||||
if (res != RESULT_OK)
|
||||
{
|
||||
exsave.Unmount();
|
||||
savedata.Unmount();
|
||||
PutError(TGT_CARD);
|
||||
return ERROR;
|
||||
}
|
||||
}
|
||||
|
||||
if (arcInfo.FileCount == 0)//ファイルが無い
|
||||
{
|
||||
scr_Status("no files",COLOR_YELLO);
|
||||
scr_Status(L"no files",COLOR_YELLO);
|
||||
savedata.Unmount();
|
||||
exsave.Unmount();
|
||||
TryDeleteDir();
|
||||
return SUCCESS;//何もしない
|
||||
}else{
|
||||
//ファイルコピー
|
||||
scr_Status("file copying",COLOR_SKY);
|
||||
scr_Status(L"file copying",COLOR_SKY);
|
||||
savedata.ResetPath();
|
||||
s64 fsize;
|
||||
res = RESULT_OK;
|
||||
@ -250,11 +300,11 @@ RetCode Card2Sd()
|
||||
if (res != RESULT_OK)
|
||||
{
|
||||
if (res == RESULT_DIR_LEVEL_OVER){
|
||||
PutError(ERC_DEV_CARD,ERC_DIRDEPTH);
|
||||
PutError(TGT_CARD,ERC_EXEC);
|
||||
break;
|
||||
}
|
||||
if (res == RESULT_PATH_LENGTH_OVER){
|
||||
PutError(ERC_DEV_CARD,ERC_PATH);
|
||||
PutError(TGT_CARD,ERC_EXEC);
|
||||
break;
|
||||
}
|
||||
res = RESULT_FAIL_OPEN;
|
||||
@ -278,7 +328,8 @@ RetCode Card2Sd()
|
||||
fsize = savedata.FileSize;
|
||||
total += fsize;
|
||||
if(CheckInsExit())break;//挿抜による中断
|
||||
//SDで支障あるパス名の場合は別ファイルに格納する
|
||||
|
||||
//SDで支障あるパス名の場合は別ファイルに格納する
|
||||
exsave.GetRootPath(file_pathw2);//格納先ルート取得
|
||||
ChainPath(file_pathw2,file_pathw);//実パス名に変換
|
||||
if (CheckPath(file_pathw2)==false)//パス名チェック
|
||||
@ -289,16 +340,17 @@ RetCode Card2Sd()
|
||||
break;
|
||||
}
|
||||
}else{
|
||||
bool mkdir;
|
||||
int rev;
|
||||
//int rev;
|
||||
while(1){
|
||||
if (exsave.OpenC(file_pathw,fsize,&mkdir)==false)
|
||||
{
|
||||
if(mkdir)//ディレクトリ作成のみ
|
||||
{//深いと作成に時間かかるので画面に変化つける
|
||||
rev++;
|
||||
if (rev & 1)scr_MessOnCount2("Create Directry -");
|
||||
else scr_MessOnCount2("Create Directry |");
|
||||
{//ディレクトリは作成済みなので作成されたらエラー
|
||||
res = RESULT_FAIL_OPENW;
|
||||
break;
|
||||
//rev++;
|
||||
//if (rev & 1)scr_MessOnCount2(L"Create Directry -");
|
||||
//else scr_MessOnCount2(L"Create Directry |");
|
||||
}else{
|
||||
NN_LOG("%d\n",exsave.LastNnResult.GetDescription());
|
||||
if(nn::fs::ResultInvalidArgument::Includes(exsave.LastNnResult))
|
||||
@ -388,9 +440,9 @@ RetCode Card2Sd()
|
||||
if(exsave.WriteSys(&arcInfo))//フォーマット情報
|
||||
{
|
||||
//成功
|
||||
strcpy(sts,"output folder [ ");
|
||||
strcat(sts,exsave.DirName);//保存先
|
||||
strcat(sts," ]");
|
||||
wcscpy(sts,L"output folder [ ");
|
||||
wcscat(sts,exsave.DirName);//保存先
|
||||
wcscat(sts,L" ]");
|
||||
scr_Status(sts,COLOR_WHITE);
|
||||
|
||||
scr_CountPerMax(ct,arcInfo.FileCount);//ファイル数
|
||||
@ -409,11 +461,11 @@ RetCode Card2Sd()
|
||||
}
|
||||
}
|
||||
//失敗
|
||||
if (res == RESULT_DEVICE_FULL)PutError(ERC_DEV_OUT,ERC_WRITE_NS);
|
||||
else if ((res == RESULT_FAIL_WRITE) || (res== RESULT_FAIL_OPENW)) PutError(ERC_DEV_OUT);
|
||||
else if ((res == RESULT_FAIL_READ) || (res== RESULT_FAIL_OPEN)) PutError(ERC_DEV_CARD);
|
||||
else if (res == RESULT_FAIL_VERIFI) PutError(ERC_DEV_OUT,ERC_VERIFI);
|
||||
else PutError(ERC_DEV_OTHER);
|
||||
if (res == RESULT_DEVICE_FULL)PutError(TGT_SD,ERC_NOSPACE);
|
||||
else if ((res == RESULT_FAIL_WRITE) || (res== RESULT_FAIL_OPENW)) PutError(TGT_SD);
|
||||
else if ((res == RESULT_FAIL_READ) || (res== RESULT_FAIL_OPEN)) PutError(TGT_CARD);
|
||||
else if (res == RESULT_FAIL_VERIFI) PutError(TGT_SD,ERC_VERIFI);
|
||||
else PutError(TGT_NONE,ERC_EXEC);
|
||||
TryDeleteDir();//ディレクトリごと削除
|
||||
}
|
||||
return ERROR;
|
||||
@ -425,17 +477,13 @@ RetCode Card2Sd()
|
||||
//呼ぶ前に tmerr のクリアを忘れない事
|
||||
void CheckSaveDataState()
|
||||
{
|
||||
myResult myres;
|
||||
|
||||
Formatted = false;
|
||||
Active = false;
|
||||
|
||||
if (savedata.GetPrdCode())
|
||||
{
|
||||
Active = true;//カード
|
||||
myres = savedata.IsExist();//セーブマウント
|
||||
//NN_LOG("%d",savedata.LastNnResult.GetDescription());
|
||||
if (myres == RESULT_OK)
|
||||
Active = true;//カードあり
|
||||
if ( savedata.IsExist())//セーブ確認
|
||||
{
|
||||
Formatted=true;
|
||||
}else{
|
||||
@ -571,20 +619,20 @@ void nnMain()
|
||||
{
|
||||
case SUCCESS:
|
||||
//CheckExSaveState(); //状態の更新
|
||||
scr_ResultQuit("Success",COLOR_GREEN);//成功とQuitボタン
|
||||
scr_ResultQuit(L"Success",COLOR_GREEN);//成功とQuitボタン
|
||||
break;
|
||||
case INSEXIT:
|
||||
//scr_InsExitQuit();//挿抜検知表示 & Quit
|
||||
ScrClr();//画面消去
|
||||
scr_Backup();
|
||||
if (isInsEject == InEx_EjcCard)PutError(ERC_DEV_CARD,ERC_DEVICE);
|
||||
else if (isInsEject == InEx_EjcSd)PutError(ERC_DEV_OUT,ERC_DEVICE);
|
||||
else PutError(ERC_DEV_OTHER);
|
||||
scr_ResultQuit("Break",COLOR_RED);//エラーとQuitボタン
|
||||
if (isInsEject == InEx_EjcCard)PutError(TGT_CARD,ERC_DEVICE);
|
||||
else if (isInsEject == InEx_EjcSd)PutError(TGT_SD,ERC_DEVICE);
|
||||
else PutError(TGT_NONE);
|
||||
scr_ResultQuit(L"Break",COLOR_RED);//エラーとQuitボタン
|
||||
break;
|
||||
case CANCEL:break;
|
||||
default://errors
|
||||
scr_ResultQuit("Failed",COLOR_RED);//エラーとQuitボタン
|
||||
scr_ResultQuit(L"Failed",COLOR_RED);//エラーとQuitボタン
|
||||
break;
|
||||
}
|
||||
if (retc == CANCEL)break;
|
||||
|
||||
@ -1,5 +1,7 @@
|
||||
#include <nn.h>
|
||||
#include <stdio.h>
|
||||
#include <wchar.h>
|
||||
#include <stdlib.h>
|
||||
#include "screen.h"
|
||||
#include "../../../../common/my_defs.h"
|
||||
#include "../../ver.h"
|
||||
@ -181,45 +183,45 @@ void touchQuit(u32 pos NN_IS_UNUSED_VAR)
|
||||
//下画面
|
||||
|
||||
//Top Menu
|
||||
const tPanel panel_Read = {(uptr)touchRead,"Export",80+20,30,160,80,PANEL_READ,SCREEN_LOWER};
|
||||
const tPanel panel_Read = {(uptr)touchRead,L"Export",80+20,30,160,80,PANEL_READ,SCREEN_LOWER};
|
||||
//const tPanel panel_Write = {(uptr)touchWrite,"Restore",80+20,130,160,80,PANEL_WRITE,SCREEN_LOWER};
|
||||
//const tPanel panel_End = {(uptr)touchEnd,"End",80,180,160,30,PANEL_END,SCREEN_LOWER};
|
||||
|
||||
//Yes No
|
||||
const tPanel panel_Yes = {(uptr)touchYes,"YES",40+10,60,80,120,PANEL_YES,SCREEN_LOWER};
|
||||
const tPanel panel_No = {(uptr)touchNo,"NO",200+30,60,80,120,PANEL_NO,SCREEN_LOWER};
|
||||
const tPanel panel_Yes = {(uptr)touchYes,L"YES",40+10,60,80,120,PANEL_YES,SCREEN_LOWER};
|
||||
const tPanel panel_No = {(uptr)touchNo,L"NO",200+30,60,80,120,PANEL_NO,SCREEN_LOWER};
|
||||
|
||||
//Quit
|
||||
const tPanel panel_Quit = {(uptr)touchQuit,"Quit",80+20,60,160,120,PANEL_QUIT,SCREEN_LOWER};
|
||||
const tPanel panel_Quit = {(uptr)touchQuit,L"Quit",80+20,60,160,120,PANEL_QUIT,SCREEN_LOWER};
|
||||
|
||||
//上画面
|
||||
//デバグ用
|
||||
//エラー表示
|
||||
const tPanel panel_Error = {NULL_PTR,NULL_STR,LOC_CONF_X,LOC_CONF_Y,LOC_CONF_W,LOC_CONF_H,PANEL_ERROR,SCREEN_UPPER};
|
||||
const tMessage mess_Title_Err = {"title",10,10,COLOR_RED,8,MESSAGE_ERROR_TITLE,PANEL_ERROR};
|
||||
const tMessage mess_Info_Err = {"info",10,22,COLOR_RED,8,MESSAGE_ERROR_INFO,PANEL_ERROR};
|
||||
const tMessage mess_Info2_Err = {"info2",10,40,COLOR_RED,8,MESSAGE_ERROR_INFO2,PANEL_ERROR};
|
||||
const tMessage mess_Info3_Err = {"info3",10,50,COLOR_RED,8,MESSAGE_ERROR_INFO3,PANEL_ERROR};
|
||||
const tMessage mess_Title_Err = {L"title",10,10,COLOR_RED,8,MESSAGE_ERROR_TITLE,PANEL_ERROR};
|
||||
const tMessage mess_Info_Err = {L"info",10,22,COLOR_RED,8,MESSAGE_ERROR_INFO,PANEL_ERROR};
|
||||
const tMessage mess_Info2_Err = {L"info2",10,40,COLOR_RED,8,MESSAGE_ERROR_INFO2,PANEL_ERROR};
|
||||
const tMessage mess_Info3_Err = {L"info3",10,50,COLOR_RED,8,MESSAGE_ERROR_INFO3,PANEL_ERROR};
|
||||
|
||||
//成功
|
||||
const tPanel panel_Success = {NULL_PTR,NULL_STR,LOC_CONF_X,LOC_CONF_Y,LOC_CONF_W,LOC_CONF_H,PANEL_SUCCESS,SCREEN_UPPER};
|
||||
const tMessage mess_Title_Suc = {"title",10,10,COLOR_GREEN,8,MESSAGE_SUCCESS_TITLE,PANEL_SUCCESS};
|
||||
const tMessage mess_Info_Suc = {"info",10,40,COLOR_WHITE,8,MESSAGE_SUCCESS_INFO,PANEL_SUCCESS};
|
||||
const tMessage mess_Info2_Suc = {"info2",10,50,COLOR_WHITE,8,MESSAGE_SUCCESS_INFO2,PANEL_SUCCESS};
|
||||
const tMessage mess_Title_Suc = {L"title",10,10,COLOR_GREEN,8,MESSAGE_SUCCESS_TITLE,PANEL_SUCCESS};
|
||||
const tMessage mess_Info_Suc = {L"info",10,40,COLOR_WHITE,8,MESSAGE_SUCCESS_INFO,PANEL_SUCCESS};
|
||||
const tMessage mess_Info2_Suc = {L"info2",10,50,COLOR_WHITE,8,MESSAGE_SUCCESS_INFO2,PANEL_SUCCESS};
|
||||
|
||||
//実行確認
|
||||
const tPanel panel_Confirm = {NULL_PTR,NULL_STR,LOC_CONF_X,LOC_CONF_Y,LOC_CONF_W,LOC_CONF_H,PANEL_CONFIRM,SCREEN_UPPER};
|
||||
const tMessage mess_conf_Title = {"title",10,10,COLOR_YELLO,8,MESSAGE_CONFIRM_TITLE,PANEL_CONFIRM};
|
||||
const tMessage mess_conf_Msg = {"Do you execute?",10,40,COLOR_WHITE,8,MESSAGE_CONFIRM_MSG,PANEL_CONFIRM};
|
||||
const tMessage mess_conf_Title = {L"title",10,10,COLOR_YELLO,8,MESSAGE_CONFIRM_TITLE,PANEL_CONFIRM};
|
||||
const tMessage mess_conf_Msg = {L"Do you execute?",10,40,COLOR_WHITE,8,MESSAGE_CONFIRM_MSG,PANEL_CONFIRM};
|
||||
|
||||
//トップメニュー
|
||||
const tPanel panel_topmenu_help = {NULL_PTR,NULL_STR,LOC_CONF_X,LOC_CONF_Y,LOC_CONF_W,LOC_CONF_H,PANEL_TOPMENU,SCREEN_UPPER};
|
||||
const tMessage mess_topmenu_help_read = {"[Backup] Card -> SD",10,4,COLOR_WHITE,8,MESSAGE_TOPMENU_HELP_READ,PANEL_TOPMENU};
|
||||
const tMessage mess_topmenu_help_notread = {"[Backup] is Invalid",10,4,COLOR_RED,8,MESSAGE_TOPMENU_HELP_READ,PANEL_TOPMENU};
|
||||
const tMessage mess_topmenu_help_read = {L"[Backup] Card -> SD",10,4,COLOR_WHITE,8,MESSAGE_TOPMENU_HELP_READ,PANEL_TOPMENU};
|
||||
const tMessage mess_topmenu_help_notread = {L"[Backup] is Invalid",10,4,COLOR_RED,8,MESSAGE_TOPMENU_HELP_READ,PANEL_TOPMENU};
|
||||
//const tMessage mess_topmenu_help_write = {"[Restore] bkup -> Card",10,16,COLOR_WHITE,8,MESSAGE_TOPMENU_HELP_WRITE,PANEL_TOPMENU};
|
||||
//const tMessage mess_topmenu_help_notwrite = {"[Restore] is Invalid",10,16,COLOR_RED,8,MESSAGE_TOPMENU_HELP_WRITE,PANEL_TOPMENU};
|
||||
//const tMessage mess_topmenu_help_end = {"[End] return to SystemMenu",10,28,COLOR_WHITE,8,MESSAGE_TOPMENU_HELP_END,PANEL_TOPMENU};
|
||||
const tMessage mess_topmenu_help_operate = {"touch below",10,48,COLOR_GREEN,8,MESSAGE_TOPMENU_HELP_OPERATE,PANEL_TOPMENU};
|
||||
const tMessage mess_topmenu_help_operate = {L"touch below",10,48,COLOR_GREEN,8,MESSAGE_TOPMENU_HELP_OPERATE,PANEL_TOPMENU};
|
||||
|
||||
//ログ表示
|
||||
const tPanel panel_dbglog = {NULL_PTR,NULL_STR,LOC_LOG_X,LOC_LOG_Y,LOC_LOG_W,LOC_LOG_H,PANEL_DBGLOG,SCREEN_UPPER};
|
||||
@ -235,10 +237,10 @@ const tMemo memo_dbglog = {LOG_MAX,10,10,COLOR_WHITE,8,MEMO_DBGLOG,PANEL_DBGLOG}
|
||||
#define LOC_TITL_H 50
|
||||
#define FONT_SIZE_PRODUCT 10
|
||||
const tPanel panel_title = {NULL_PTR,NULL_STR,LOC_TITL_X,LOC_TITL_Y,LOC_TITL_W,LOC_TITL_H,PANEL_TITLE,SCREEN_UPPER};
|
||||
const tMessage mess_title = {"title",0,0,COLOR_WHITE,FONT_SIZE_TITLE,MESSAGE_TITLE,PANEL_TITLE};
|
||||
const tMessage mess_product = {"product",0,LOC_TITL_H - 22,COLOR_WHITE,FONT_SIZE_PRODUCT,MESSAGE_PRODUCT,PANEL_TITLE};
|
||||
const tMessage mess_title = {L"title",0,0,COLOR_WHITE,FONT_SIZE_TITLE,MESSAGE_TITLE,PANEL_TITLE};
|
||||
const tMessage mess_product = {L"product",0,LOC_TITL_H - 22,COLOR_WHITE,FONT_SIZE_PRODUCT,MESSAGE_PRODUCT,PANEL_TITLE};
|
||||
//const tMessage mess_product2 = {"product2",0,LOC_TITL_H - 10,COLOR_WHITE,FONT_SIZE_PRODUCT,MESSAGE_PRODUCT2,PANEL_TITLE};
|
||||
const tMessage mess_version = {"version",LOC_TITL_W-FONT_SIZE_PRODUCT*6,FONT_SIZE_TITLE+2,COLOR_WHITE,FONT_SIZE_PRODUCT,MESSAGE_VERSION,PANEL_TITLE};
|
||||
const tMessage mess_version = {L"version",LOC_TITL_W-FONT_SIZE_PRODUCT*6,FONT_SIZE_TITLE+2,COLOR_WHITE,FONT_SIZE_PRODUCT,MESSAGE_VERSION,PANEL_TITLE};
|
||||
|
||||
#define LOC_MESS_X 20
|
||||
#define LOC_MESS_W (400 - LOC_MESS_X*2)
|
||||
@ -249,48 +251,48 @@ const tMessage mess_version = {"version",LOC_TITL_W-FONT_SIZE_PRODUCT*6,FONT_SIZ
|
||||
#define FONT_SIZE 10
|
||||
#define STR_LINE(ln) (FONT_SIZE + 2)*ln
|
||||
const tPanel panel_menu = {NULL_PTR,NULL_STR,LOC_MESS_X,LOC_MESS_Y,LOC_MESS_W,LOC_MESS_H,PANEL_MENU,SCREEN_UPPER};
|
||||
const tMessage mess_menu_read = {"[Export] Write to SD",10,STR_LINE(1),COLOR_WHITE,FONT_SIZE,MESSAGE_MENU_READ,PANEL_MENU};
|
||||
const tMessage mess_menu_read = {L"[Export] Write to SD",10,STR_LINE(1),COLOR_WHITE,FONT_SIZE,MESSAGE_MENU_READ,PANEL_MENU};
|
||||
//const tMessage mess_menu_write = {"[Restore] restore to Card",10,STR_LINE(2),COLOR_WHITE,FONT_SIZE,MESSAGE_MENU_WRITE,PANEL_MENU};
|
||||
//const tMessage mess_menu_end = {"[End] close this apprication",10,STR_LINE(3),COLOR_WHITE,FONT_SIZE,MESSAGE_MENU_END,PANEL_MENU};
|
||||
const tMessage mess_menu_operate = {"touch below",10,STR_LINE(4),COLOR_GREEN,FONT_SIZE,MESSAGE_MENU_OPERATE,PANEL_MENU};
|
||||
const tMessage mess_bkuperr = {"SD error",10,STR_LINE(6),COLOR_RED,FONT_SIZE,MESSAGE_MENU_ERROR,PANEL_MENU};
|
||||
const tMessage mess_carderr = {"CARD error",10,STR_LINE(7),COLOR_YELLO,FONT_SIZE,MESSAGE_MENU_CAUTION,PANEL_MENU};
|
||||
const tMessage mess_menu_operate = {L"touch below",10,STR_LINE(4),COLOR_GREEN,FONT_SIZE,MESSAGE_MENU_OPERATE,PANEL_MENU};
|
||||
const tMessage mess_bkuperr = {L"SD error",10,STR_LINE(6),COLOR_RED,FONT_SIZE,MESSAGE_MENU_ERROR,PANEL_MENU};
|
||||
const tMessage mess_carderr = {L"CARD error",10,STR_LINE(7),COLOR_YELLO,FONT_SIZE,MESSAGE_MENU_CAUTION,PANEL_MENU};
|
||||
//const tMessage mess_debug = {"Crush Mode",10,STR_LINE(3),COLOR_YELLO,FONT_SIZE,MESSAGE_MENU_DEBUG,PANEL_MENU};
|
||||
|
||||
//Backup
|
||||
//const tPanel panel_bkup = {NULL_PTR,NULL_STR,LOC_LOG_X,LOC_LOG_Y,LOC_LOG_W,LOC_LOG_H,PANEL_BKUP,SCREEN_UPPER};
|
||||
const tPanel panel_bkup = {NULL_PTR,NULL_STR,LOC_MESS_X,LOC_MESS_Y,LOC_MESS_W,LOC_MESS_H,PANEL_BKUP,SCREEN_UPPER};
|
||||
const tMessage mess_quit_operate = {"touch [Quit],or Push B",10,STR_LINE(4),COLOR_SKY,FONT_SIZE,MESSAGE_QUIT_OPERATE,PANEL_BKUP};
|
||||
const tMessage mess_conf = {"Do you execute?",10,STR_LINE(2),COLOR_WHITE,FONT_SIZE,MESSAGE_CONF,PANEL_BKUP};
|
||||
const tMessage mess_result = {"result",10,STR_LINE(2),COLOR_WHITE,FONT_SIZE,MESSAGE_RESULT,PANEL_BKUP};
|
||||
const tMessage mess_operate = {"touch below",10,STR_LINE(4),COLOR_GREEN,FONT_SIZE,MESSAGE_OPERATE,PANEL_BKUP};
|
||||
const tMessage mess_status = {"status",10,STR_LINE(7),COLOR_WHITE,FONT_SIZE,MESSAGE_STATUS,PANEL_BKUP};
|
||||
const tMessage mess_count = {"count",10,STR_LINE(8),COLOR_WHITE,FONT_SIZE,MESSAGE_COUNT,PANEL_BKUP};
|
||||
const tMessage mess_count2 = {"count2",10,STR_LINE(9),COLOR_GREEN,FONT_SIZE,MESSAGE_COUNT2,PANEL_BKUP};
|
||||
const tMessage mess_quit_operate = {L"touch [Quit],or Push B",10,STR_LINE(4),COLOR_SKY,FONT_SIZE,MESSAGE_QUIT_OPERATE,PANEL_BKUP};
|
||||
const tMessage mess_conf = {L"Do you execute?",10,STR_LINE(2),COLOR_WHITE,FONT_SIZE,MESSAGE_CONF,PANEL_BKUP};
|
||||
const tMessage mess_result = {L"result",10,STR_LINE(2),COLOR_WHITE,FONT_SIZE,MESSAGE_RESULT,PANEL_BKUP};
|
||||
const tMessage mess_operate = {L"touch below",10,STR_LINE(4),COLOR_GREEN,FONT_SIZE,MESSAGE_OPERATE,PANEL_BKUP};
|
||||
const tMessage mess_status = {L"status",10,STR_LINE(7),COLOR_WHITE,FONT_SIZE,MESSAGE_STATUS,PANEL_BKUP};
|
||||
const tMessage mess_count = {L"count",10,STR_LINE(8),COLOR_WHITE,FONT_SIZE,MESSAGE_COUNT,PANEL_BKUP};
|
||||
const tMessage mess_count2 = {L"count2",10,STR_LINE(9),COLOR_GREEN,FONT_SIZE,MESSAGE_COUNT2,PANEL_BKUP};
|
||||
|
||||
|
||||
//挿抜発生時
|
||||
//const tPanel panel_insexit = {NULL_PTR,NULL_STR,LOC_LOG_X,LOC_LOG_Y,LOC_LOG_W,LOC_LOG_H,PANEL_INSEXIT,SCREEN_UPPER};
|
||||
const tPanel panel_insexit = {NULL_PTR,NULL_STR,LOC_MESS_X,LOC_MESS_Y,LOC_MESS_W,LOC_MESS_H,PANEL_INSEXIT,SCREEN_UPPER};
|
||||
const tMessage mess_insexit = {"device insert or pull out is detected",10,STR_LINE(3),COLOR_RED,8,MESSAGE_INSEXT_1,PANEL_INSEXIT};
|
||||
const tMessage mess_insexit2 = {"return to top menu",10,STR_LINE(5),COLOR_WHITE,8,MESSAGE_INSEXT_2,PANEL_INSEXIT};
|
||||
const tMessage mess_insexit3 = {"please touch or push B",10,STR_LINE(6),COLOR_WHITE,8,MESSAGE_INSEXT_3,PANEL_INSEXIT};
|
||||
const tMessage mess_insexit = {L"device insert or pull out is detected",10,STR_LINE(3),COLOR_RED,8,MESSAGE_INSEXT_1,PANEL_INSEXIT};
|
||||
const tMessage mess_insexit2 = {L"return to top menu",10,STR_LINE(5),COLOR_WHITE,8,MESSAGE_INSEXT_2,PANEL_INSEXIT};
|
||||
const tMessage mess_insexit3 = {L"please touch or push B",10,STR_LINE(6),COLOR_WHITE,8,MESSAGE_INSEXT_3,PANEL_INSEXIT};
|
||||
|
||||
//削除確認
|
||||
//const tPanel panel_delconf = {NULL_PTR,NULL_STR,LOC_CONF_X-10,LOC_CONF_Y,LOC_CONF_W+10,LOC_CONF_H*2,PANEL_DELCONF,SCREEN_UPPER};
|
||||
const tPanel panel_delconf = {NULL_PTR,NULL_STR,LOC_MESS_X,LOC_MESS_Y-36,LOC_MESS_W,LOC_MESS_H,PANEL_DELCONF,SCREEN_UPPER};
|
||||
const tMessage mess_delconf_Title = {" *** DELETE *** ",10,10,COLOR_YELLO,16,MESSAGE_DELCONF_TITLE,PANEL_DELCONF};
|
||||
const tMessage mess_delconf_Msg = {" caution!",10,50,COLOR_YELLO,12,MESSAGE_DELCONF_MSG,PANEL_DELCONF};
|
||||
const tMessage mess_delconf_Msg2 = {"this is delete data on SD",10,70,COLOR_YELLO,12,MESSAGE_DELCONF_MSG2,PANEL_DELCONF};
|
||||
const tMessage mess_delconf_Msg3 = {"Do you execute?",10,90,COLOR_YELLO,12,MESSAGE_DELCONF_MSG3,PANEL_DELCONF};
|
||||
const tMessage mess_delconf_Title = {L" *** DELETE *** ",10,10,COLOR_YELLO,16,MESSAGE_DELCONF_TITLE,PANEL_DELCONF};
|
||||
const tMessage mess_delconf_Msg = {L" caution!",10,50,COLOR_YELLO,12,MESSAGE_DELCONF_MSG,PANEL_DELCONF};
|
||||
const tMessage mess_delconf_Msg2 = {L"this is delete data on SD",10,70,COLOR_YELLO,12,MESSAGE_DELCONF_MSG2,PANEL_DELCONF};
|
||||
const tMessage mess_delconf_Msg3 = {L"Do you execute?",10,90,COLOR_YELLO,12,MESSAGE_DELCONF_MSG3,PANEL_DELCONF};
|
||||
|
||||
|
||||
|
||||
nn::os::LightEvent stopEvnt(true);
|
||||
|
||||
char scr_ver[16];
|
||||
char scr_err[32];
|
||||
char scr_debug[32];
|
||||
wchar_t scr_ver[16];
|
||||
wchar_t scr_err[32];
|
||||
wchar_t scr_debug[32];
|
||||
//menu
|
||||
bool ScrInitialize(uptr heap,u32 size)
|
||||
{
|
||||
@ -364,9 +366,10 @@ bool ScrInitialize(uptr heap,u32 size)
|
||||
gui.MessSet(&mess_insexit2);
|
||||
gui.MessSet(&mess_insexit3);
|
||||
|
||||
gui.MemoSet(&memo_dbglog);
|
||||
|
||||
gui.MemoEffective(MESSAGE_PRODUCT);
|
||||
//gui.MemoSet(&memo_dbglog);
|
||||
//gui.MemoEffective(MESSAGE_PRODUCT);
|
||||
|
||||
gui.MessEffective(MESSAGE_ERROR_TITLE);
|
||||
gui.MessEffective(MESSAGE_ERROR_INFO);
|
||||
gui.MessEffective(MESSAGE_ERROR_INFO2);
|
||||
@ -393,11 +396,11 @@ bool ScrInitialize(uptr heap,u32 size)
|
||||
gui.MessEffective(MESSAGE_INSEXT_3);
|
||||
gui.MessEffective(MESSAGE_TITLE);
|
||||
gui.MessEffective(MESSAGE_VERSION);
|
||||
gui.MemoEffective(MEMO_DBGLOG);
|
||||
// gui.MemoEffective(MEMO_DBGLOG);
|
||||
|
||||
gui.PanelLineStyle(PANEL_DELCONF,COLOR_YELLO);
|
||||
|
||||
sprintf(scr_ver,"ver %.2f",VERSION);
|
||||
swprintf(scr_ver,10,L"ver %.2f",VERSION);
|
||||
gui.MessStr(MESSAGE_VERSION,scr_ver);
|
||||
gui.MessStr(MESSAGE_MENU_CAUTION,scr_err);
|
||||
gui.MessStr(MESSAGE_MENU_ERROR,scr_err);
|
||||
@ -471,15 +474,16 @@ void scr_TopMenuDbg(bool formatted,bool insertted)//
|
||||
|
||||
//プロダクトコード
|
||||
//引数:カード、拡張セーブに記録されたもの
|
||||
char scr_pcode[32];
|
||||
wchar_t scr_pcode[32];
|
||||
void scr_PrdCode(char *s)
|
||||
{
|
||||
strcpy(scr_pcode,"CARD : ");
|
||||
if (s[0]==0) strcat(scr_pcode,"----");
|
||||
else strcat(scr_pcode,s);
|
||||
wcscpy(scr_pcode,L"CARD : ");
|
||||
if (s[0]==0) wcscat(scr_pcode,L"----");
|
||||
else mbstowcs(&scr_pcode[7],s,30);
|
||||
gui.MessStr(MESSAGE_PRODUCT,scr_pcode);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
char scr_pcode2[64];
|
||||
void scr_PrdCodeEx(char *s)
|
||||
@ -512,7 +516,7 @@ void scr_TopMenu(bool formatted,bool inserted,bool sdins,int err)
|
||||
u32 mask = 0;
|
||||
mask |= (nn::hid::BUTTON_LEFT | nn::hid::BUTTON_X);//LEFT+X = Delete 有効
|
||||
|
||||
gui.MessStr(MESSAGE_TITLE," < CTR Card Savedata Exporter >");
|
||||
gui.MessStr(MESSAGE_TITLE,L" < CTR Card Savedata Exporter >");
|
||||
|
||||
gui.MessEffective(MESSAGE_MENU_ERROR,false,false);
|
||||
gui.MessEffective(MESSAGE_MENU_CAUTION,false,false);
|
||||
@ -528,19 +532,19 @@ void scr_TopMenu(bool formatted,bool inserted,bool sdins,int err)
|
||||
|
||||
if (inserted == false)
|
||||
{
|
||||
strcpy(scr_err,"Please Insert Card");
|
||||
wcscpy(scr_err,L"Please Insert Card");
|
||||
gui.MessEffective(MESSAGE_MENU_CAUTION);
|
||||
|
||||
}else
|
||||
if (sdins == false)
|
||||
{
|
||||
strcpy(scr_err,"SD protected or not Insert");
|
||||
wcscpy(scr_err,L"SD protected or not Insert");
|
||||
gui.MessEffective(MESSAGE_MENU_CAUTION);
|
||||
|
||||
}else{
|
||||
if (err & SDATA_ERRPUT_MEDIA) i = ERC_MEDIA + ERC_DEV_CARD;//バックアップがない
|
||||
else i = ERC_DEV_OTHER;//不明
|
||||
sprintf(scr_err,"ERROR %d",i);
|
||||
if (err & SDATA_ERRPUT_MEDIA) i = ERC_MEDIA + TGT_CARD;//バックアップがない
|
||||
else i = ERC_EXEC;//不明
|
||||
swprintf(scr_err,12,L"ERROR %d",i);
|
||||
gui.MessEffective(MESSAGE_MENU_ERROR);
|
||||
}
|
||||
}
|
||||
@ -581,7 +585,7 @@ void scr_Backup()
|
||||
{
|
||||
scr_evnt = EVNT_NONE;
|
||||
gui.PanelLineStyle(PANEL_BKUP,COLOR_SKY);
|
||||
gui.MessStr(MESSAGE_TITLE," --- Backup Card Savedata ---");
|
||||
gui.MessStr(MESSAGE_TITLE,L" --- Backup Card Savedata ---");
|
||||
gui.PanelEffective(PANEL_TITLE);
|
||||
ClearBkupMess();
|
||||
gui.Draw();
|
||||
@ -600,7 +604,7 @@ void scr_Restore()
|
||||
{
|
||||
scr_evnt = EVNT_NONE;
|
||||
gui.PanelLineStyle(PANEL_BKUP,COLOR_PARPL);
|
||||
gui.MessStr(MESSAGE_TITLE,"--- Restore Card Savedata ---");
|
||||
gui.MessStr(MESSAGE_TITLE,L"--- Restore Card Savedata ---");
|
||||
gui.PanelEffective(PANEL_TITLE);
|
||||
ClearBkupMess();//backupと同じパネルを使う
|
||||
gui.Draw();
|
||||
@ -615,7 +619,7 @@ void scr_RestoreYesNo()
|
||||
}
|
||||
|
||||
|
||||
void scr_Status(char *s,eColor col)
|
||||
void scr_Status(wchar_t *s,eColor col)
|
||||
{
|
||||
gui.MessCol(MESSAGE_STATUS,col);
|
||||
gui.MessStr(MESSAGE_STATUS,s);
|
||||
@ -623,7 +627,7 @@ void scr_Status(char *s,eColor col)
|
||||
gui.Draw();
|
||||
}
|
||||
|
||||
void scr_ResultQuit(char *s,eColor col)
|
||||
void scr_ResultQuit(wchar_t *s,eColor col)
|
||||
{
|
||||
gui.MessCol(MESSAGE_RESULT,col);
|
||||
gui.MessStr(MESSAGE_RESULT,s);
|
||||
@ -642,11 +646,11 @@ void scr_InsExitQuit()
|
||||
}
|
||||
|
||||
// カウント/MAX 表示
|
||||
char str_Counter[128];
|
||||
char str_Counter2[128];
|
||||
wchar_t str_Counter[128];
|
||||
wchar_t str_Counter2[128];
|
||||
void scr_CountPerMax(int ct,int max)
|
||||
{
|
||||
sprintf(str_Counter,"%d / %d",ct,max);
|
||||
swprintf(str_Counter,16,L"%d / %d",ct,max);
|
||||
gui.MessStr(MESSAGE_COUNT,str_Counter);
|
||||
gui.MessEffective(MESSAGE_COUNT);
|
||||
gui.Draw();
|
||||
@ -658,7 +662,7 @@ void scr_CountPerMax2(int ct,int max,int total)
|
||||
if (total == -1) str_Counter2[0]=0;
|
||||
else if (total != 0){
|
||||
// gui.MessCol(MESSAGE_COUNT2,COLOR_WHITE);
|
||||
sprintf(str_Counter2,"total size %d",total);
|
||||
swprintf(str_Counter2,20,L"total size %d",total);
|
||||
}else{
|
||||
// gui.MessCol(MESSAGE_COUNT2,COLOR_YELLO);
|
||||
int i;
|
||||
@ -674,7 +678,7 @@ void scr_CountPerMax2(int ct,int max,int total)
|
||||
|
||||
}
|
||||
|
||||
void scr_MessOnCount2(char *str)
|
||||
void scr_MessOnCount2(wchar_t *str)
|
||||
{
|
||||
// gui.MessCol(MESSAGE_COUNT2,COLOR_YELLO);
|
||||
gui.MessStr(MESSAGE_COUNT2,str);
|
||||
@ -682,7 +686,7 @@ void scr_MessOnCount2(char *str)
|
||||
gui.Draw();
|
||||
}
|
||||
|
||||
void scr_MessOnCount(char *str)
|
||||
void scr_MessOnCount(wchar_t *str)
|
||||
{
|
||||
// gui.MessCol(MESSAGE_COUNT2,COLOR_YELLO);
|
||||
gui.MessStr(MESSAGE_COUNT,str);
|
||||
@ -691,7 +695,7 @@ void scr_MessOnCount(char *str)
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
//実行確認
|
||||
void scr_ConfirmDbg(char *str)
|
||||
{
|
||||
@ -701,7 +705,6 @@ void scr_ConfirmDbg(char *str)
|
||||
YesNo();
|
||||
}
|
||||
|
||||
|
||||
//エラー表示とQuitボタン
|
||||
void scr_ErrorQuitDbg(tColStr **s)
|
||||
{
|
||||
@ -731,26 +734,9 @@ void scr_SuccessQuitDbg(tColStr **s)
|
||||
gui.PanelEffective(PANEL_SUCCESS);
|
||||
Quit();
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
//デバッグログ
|
||||
void scr_DgbLog(cStrLst *p)
|
||||
{
|
||||
gui.PanelLineStyle(PANEL_DBGLOG,COLOR_BLUE);
|
||||
|
||||
for (int i=0;i<p->getpos()+1;i++)gui.MemoStr(MEMO_DBGLOG,p->line(i),i);
|
||||
|
||||
gui.PanelEffective(PANEL_DBGLOG);
|
||||
gui.Draw();
|
||||
}
|
||||
|
||||
|
||||
|
||||
int ScrDbgLogGetMax()
|
||||
{
|
||||
return LOG_MAX;
|
||||
}
|
||||
|
||||
|
||||
void scr_Draw()
|
||||
{
|
||||
|
||||
@ -87,28 +87,29 @@ public:
|
||||
bool ScrInitialize(uptr heap,u32 size);
|
||||
void ScrFinalize();
|
||||
void ScrClr();
|
||||
int ScrDbgLogGetMax();
|
||||
//int ScrDbgLogGetMax();
|
||||
void ScrStep();
|
||||
void scr_TopMenuDbg(bool formatted,bool insertted);
|
||||
//void scr_TopMenuDbg(bool formatted,bool insertted);
|
||||
//void scr_SuccessQuitDbg(tColStr **s);
|
||||
//void scr_ErrorQuitDbg(tColStr **s);
|
||||
//void scr_ConfirmDbg(char *str);
|
||||
//void scr_DgbLog(cStrLst *p);
|
||||
|
||||
void scr_TopMenu(bool formatted,bool inserted,bool sdins,int err);
|
||||
void scr_ErrorQuitDbg(tColStr **s);
|
||||
void scr_SuccessQuitDbg(tColStr **s);
|
||||
void scr_ConfirmDbg(char *str);
|
||||
void scr_DgbLog(cStrLst *p);
|
||||
void scr_BackupYesNo();
|
||||
void scr_Backup();
|
||||
void scr_RestoreYesNo();
|
||||
void scr_Restore();
|
||||
void scr_InsExitQuit();
|
||||
void scr_Status(char *s,eColor col);
|
||||
void scr_ResultQuit(char *s,eColor col);
|
||||
void scr_Status(wchar_t *s,eColor col);
|
||||
void scr_ResultQuit(wchar_t *s,eColor col);
|
||||
void scr_CountPerMax(int ct,int max);
|
||||
void scr_CountPerMax2(int ct,int max,int total);
|
||||
void scr_PrdCode(char *s);
|
||||
void scr_PrdCodeEx(char *s);
|
||||
//void scr_PrdCodeEx(char *s);
|
||||
void scr_DelConf();
|
||||
void scr_MessOnCount2(char *str);
|
||||
void scr_MessOnCount(char *str);
|
||||
void scr_MessOnCount2(wchar_t *str);
|
||||
void scr_MessOnCount(wchar_t *str);
|
||||
void scr_Draw();
|
||||
void scr_GetEvnt();
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user