亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? unit1.cpp

?? 網(wǎng)絡(luò)游戲《紅月》客戶端RMM文件查看修改工具
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#include "Unit2.h"
#include <stdio.h>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "AdvGrid"
#pragma link "BaseGrid"
#pragma resource "*.dfm"
TForm1 *Form1;
byte *buffer;
int buffersize;
byte *buffer2;
int buffer2size;

int mapx, mapy;
const int cobjNum = 1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
    mapx = mapy = 0;
    for (int i=0;i<241;i++) {
        for (int j=0;j<128;j++) {
            tleData[i][j].loaded = false;
            tleData[i][j].imageloaded = false;
        }
    }
    for (int i=0;i<1417;i++) {
        for (int j=0;j<128;j++) {
            objData[i][j].loaded = false;
            objData[i][j].imageloaded = false;
        }
    }
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
    if (OpenDialog1->Execute()) {
        Screen->Cursor = crHourGlass;
        FILE *f;
        char c;
        int iTemp;
        AnsiString Value;

        f = fopen(OpenDialog1->FileName.c_str(),"rb");
        if (f == NULL) {
//            ShowMessage("Error Loading File");
            Screen->Cursor = crDefault;
            return;
        }
        iTemp = fgetc(f);
        Value = "";
        for (int i=0;i<iTemp;i++) {
            c = fgetc(f);
            Value = Value + AnsiString(c);
        }
        Memo1->Lines->Clear();
        Memo1->Lines->Add(Value);
        width = fgetc(f);
        width += fgetc(f) << 8;
        width += fgetc(f) << 16;
        width += fgetc(f) << 24;
        Memo1->Lines->Add("Tiles across: " + IntToStr(width));

        height = fgetc(f);
        height += fgetc(f) << 8;
        height += fgetc(f) << 16;
        height += fgetc(f) << 24;
        Memo1->Lines->Add("Tiles down: " + IntToStr(height));

        iTemp = fgetc(f);
        Memo1->Lines->Add("Unknown ??: " + IntToStr(iTemp));
        Value = "";
        if (buffer != NULL) {
            free(buffer);
            buffer = NULL;
        }
        buffer = new byte[iTemp];
        buffersize = iTemp;
        for (int i=0;i<iTemp;i++) {
            buffer[i] = fgetc(f);
            Value = Value + IntToStr(buffer[i]) + ", ";
        }
        Value = Value.SubString(0,Value.Length()-2);
        Memo1->Lines->Add(Value);

        map = fgetc(f);
        map += fgetc(f) << 8;
        map += fgetc(f) << 16;
        map += fgetc(f) << 24;
        Memo1->Lines->Add("Map Number: " + IntToStr(map));

        unk = fgetc(f);
        unk += fgetc(f) << 8;
        unk += fgetc(f) << 16;
        unk += fgetc(f) << 24;
        Memo1->Lines->Add("Unknown ???: " + IntToStr(unk));
        if (buffer2 != NULL) {
            free(buffer2);
            buffer2 = NULL;
        }
        if (unk > 0) {
            buffer2 = new byte[unk*18];
            buffer2size = unk*18;
        }
        for (int i=0;i<unk*18;i++) {
            buffer2[i] = fgetc(f);
            Value = Value + IntToStr(buffer2[i]) + ", ";
            if (i%18 == 0) {
//                Memo1->Lines->Add(Value);
                Value = "";
            }
        }
        AdvStringGrid1->RowCount = (height*width)+1;
        AdvStringGrid1->Cells[0][0] = "X/Y";
        AdvStringGrid1->Cells[1][0] = "obj";
        AdvStringGrid1->Cells[2][0] = "tlei*32+obj2";
        AdvStringGrid1->Cells[3][0] = "tlei/8+tlef%2";
        AdvStringGrid1->Cells[4][0] = "tlef/2";
        AdvStringGrid1->Cells[5][0] = "cursor";
        AdvStringGrid1->Cells[6][0] = "??";
        AdvStringGrid1->Cells[7][0] = "??";
        AdvStringGrid1->Cells[8][0] = "??";
        int iRow = 1;
        iTemp = 0;
        iTemp = 0;
        int wcurrent, hcurrent;
        wcurrent = hcurrent = 0;
        while (hcurrent != height) {
            AdvStringGrid1->Cells[0][iRow] = IntToStr(int(hcurrent)) + " " + IntToStr(int(wcurrent));
            iTemp = fgetc(f);
            AdvStringGrid1->Cells[1][iRow] = IntToStr(iTemp);
            mapData[hcurrent][wcurrent].obj1 = iTemp;
            if (iTemp%4 != 0) {
                Memo1->Lines->Add(IntToStr(int(hcurrent)) + " " + IntToStr(int(wcurrent)));
            }
            iTemp = fgetc(f);
            AdvStringGrid1->Cells[2][iRow] = IntToStr(iTemp);
            mapData[hcurrent][wcurrent].obj2 = iTemp;
            iTemp = fgetc(f);
            AdvStringGrid1->Cells[3][iRow] = IntToStr(iTemp);
            mapData[hcurrent][wcurrent].tle1 = iTemp;
            iTemp = fgetc(f);
            AdvStringGrid1->Cells[4][iRow] = IntToStr(iTemp);
            mapData[hcurrent][wcurrent].tle2 = iTemp;
            iTemp = fgetc(f);
            AdvStringGrid1->Cells[5][iRow] = IntToStr(iTemp);
            mapData[hcurrent][wcurrent].cursor1 = iTemp;
            iTemp = fgetc(f);
            AdvStringGrid1->Cells[6][iRow] = IntToStr(iTemp);
            mapData[hcurrent][wcurrent].unk1 = iTemp;
            iTemp = fgetc(f);
            AdvStringGrid1->Cells[7][iRow] = IntToStr(iTemp);
            mapData[hcurrent][wcurrent].unk2 = iTemp;
            iTemp = fgetc(f);
            AdvStringGrid1->Cells[8][iRow] = IntToStr(iTemp);
            mapData[hcurrent][wcurrent].unk3 = iTemp;
            iRow++;
            wcurrent++;
            if (wcurrent == width) {
                wcurrent = 0;
                hcurrent++;
            }
        }
        fclose(f);
        Screen->Cursor = crDefault;
    }
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{
    SaveDialog1->FileName = OpenDialog1->FileName;
    if (SaveDialog1->Execute()) {
        Screen->Cursor = crHourGlass;
        FILE *f;
        char c;
        int iTemp;
        AnsiString Value;

        f = fopen(SaveDialog1->FileName.c_str(),"wb");
        if (f == NULL) {
//            ShowMessage("Error Loading File");
            Screen->Cursor = crDefault;
            return;
        }
        iTemp = 19;
        fwrite(&iTemp,1,1,f);
        Value = "RedMoon MapData 1.0";
        fwrite(Value.c_str(), Value.Length(), 1, f);
        fwrite(&width,4,1,f);
        fwrite(&height,4,1,f);
        fwrite(&buffersize,1,1,f);
        fwrite(buffer,buffersize,1,f);
        fwrite(&map,4,1,f);
        fwrite(&unk,4,1,f);
        fwrite(buffer2,buffer2size,1,f);

        for (int i=1;i<AdvStringGrid1->RowCount;i++) {
            iTemp = atoi(AdvStringGrid1->Cells[1][i].c_str());
            fwrite(&iTemp,1,1,f);
            iTemp = atoi(AdvStringGrid1->Cells[2][i].c_str());
            fwrite(&iTemp,1,1,f);
            iTemp = atoi(AdvStringGrid1->Cells[3][i].c_str());
            fwrite(&iTemp,1,1,f);
            iTemp = atoi(AdvStringGrid1->Cells[4][i].c_str());
            fwrite(&iTemp,1,1,f);
            iTemp = atoi(AdvStringGrid1->Cells[5][i].c_str());
            fwrite(&iTemp,1,1,f);
            iTemp = atoi(AdvStringGrid1->Cells[6][i].c_str());
            fwrite(&iTemp,1,1,f);
            iTemp = atoi(AdvStringGrid1->Cells[7][i].c_str());
            fwrite(&iTemp,1,1,f);
            iTemp = atoi(AdvStringGrid1->Cells[8][i].c_str());
            fwrite(&iTemp,1,1,f);
        }
        fclose(f);
        Screen->Cursor = crDefault;
    }
}
//---------------------------------------------------------------------------

void TForm1::loadtle(int filenum)
{
    if (tleData[filenum][0].loaded == true) {
        return;
    }
    Screen->Cursor = crHourGlass;
    FILE *f;
    char c;
    int iTemp;
    int rmdnum, count;
    AnsiString Value;

    Value.sprintf("%5d",filenum);
    Value = StringReplace(Value," ","0", TReplaceFlags() << rfReplaceAll);
    Value = "C:\\Redmoon\\Datas\\Tle\\tle" + Value + ".rmd";
    f = fopen(Value.c_str(),"rb");
    if (f == NULL) {
        Screen->Cursor = crDefault;
        return;
    }
    iTemp = fgetc(f);
    Value = "";
    for (int i=0;i<iTemp;i++) {
        c = fgetc(f);
        Value = Value + AnsiString(c);
    }
    rmdnum = fgetc(f);
    rmdnum += fgetc(f) << 8;
    rmdnum += fgetc(f) << 16;
    rmdnum += fgetc(f) << 24;

    iTemp = fgetc(f);
    iTemp += fgetc(f) << 8;
    iTemp += fgetc(f) << 16;
    iTemp += fgetc(f) << 24;

    iTemp = fgetc(f);
    iTemp += fgetc(f) << 8;
    iTemp += fgetc(f) << 16;
    iTemp += fgetc(f) << 24;

    iTemp = fgetc(f);

    iTemp = fgetc(f);
    iTemp += fgetc(f) << 8;
    iTemp += fgetc(f) << 16;
    iTemp += fgetc(f) << 24;

    iTemp = fgetc(f);
    iTemp += fgetc(f) << 8;
    iTemp += fgetc(f) << 16;
    iTemp += fgetc(f) << 24;

    iTemp = fgetc(f);

    count = fgetc(f);
    count += fgetc(f) << 8;
    count += fgetc(f) << 16;
    count += fgetc(f) << 24;
    int iRow = 1;
    int items = 0;
    while (items <= count) {
        int iNum=0;
        iNum = fgetc(f);
        iNum += fgetc(f) << 8;
        iNum += fgetc(f) << 16;
        iNum += fgetc(f) << 24;
        for (int j=0;j<iNum;j++) {
            for (int i=1;i<13;i++) {
                iTemp = fgetc(f);
                iTemp += fgetc(f) << 8;
                iTemp += fgetc(f) << 16;
                iTemp += fgetc(f) << 24;
                switch (i) {
                    case 1:
                        tleData[filenum][items].xstart = iTemp;
                        break;
                    case 2:
                        tleData[filenum][items].ystart = iTemp;
                        break;
                    case 3:
                        tleData[filenum][items].xend = iTemp;
                        break;
                    case 4:
                        tleData[filenum][items].yend = iTemp;
                        break;
                    case 12:
                        tleData[filenum][items].tlenumber = iTemp;
                        break;
                }
            }
            iRow++;
        }
        tleData[filenum][items].loaded = true;
        items++;
    }
    fclose(f);
    Screen->Cursor = crDefault;
}
//---------------------------------------------------------------------------

void TForm1::loadobj(int filenum)
{
    if (objData[filenum][0].loaded == true) {
        return;
    }
    Screen->Cursor = crHourGlass;
    FILE *f;
    char c;
    int iTemp;
    int rmdnum, count;
    AnsiString Value;

    Value.sprintf("%5d",filenum);
    Value = StringReplace(Value," ","0", TReplaceFlags() << rfReplaceAll);
    Value = "C:\\Redmoon\\Datas\\obj\\obj" + Value + ".rmd";
    f = fopen(Value.c_str(),"rb");
    if (f == NULL) {
//        ShowMessage("Error Loading File");
        Screen->Cursor = crDefault;
        return;
    }
    iTemp = fgetc(f);
    Value = "";
    for (int i=0;i<iTemp;i++) {
        c = fgetc(f);
        Value = Value + AnsiString(c);
    }
    rmdnum = fgetc(f);
    rmdnum += fgetc(f) << 8;
    rmdnum += fgetc(f) << 16;
    rmdnum += fgetc(f) << 24;

    iTemp = fgetc(f);
    iTemp += fgetc(f) << 8;
    iTemp += fgetc(f) << 16;
    iTemp += fgetc(f) << 24;

    iTemp = fgetc(f);
    iTemp += fgetc(f) << 8;
    iTemp += fgetc(f) << 16;
    iTemp += fgetc(f) << 24;

    iTemp = fgetc(f);

    iTemp = fgetc(f);
    iTemp += fgetc(f) << 8;
    iTemp += fgetc(f) << 16;
    iTemp += fgetc(f) << 24;

    iTemp = fgetc(f);
    iTemp += fgetc(f) << 8;
    iTemp += fgetc(f) << 16;
    iTemp += fgetc(f) << 24;

    iTemp = fgetc(f);

    count = fgetc(f);
    count += fgetc(f) << 8;
    count += fgetc(f) << 16;
    count += fgetc(f) << 24;

    int iRow = 1;
    int items = 0;
    while (items <= count) {
        int iNum=0;
        iNum = fgetc(f);
        iNum += fgetc(f) << 8;
        iNum += fgetc(f) << 16;
        iNum += fgetc(f) << 24;
        for (int j=0;j<iNum;j++) {
            for (int i=1;i<13;i++) {
                iTemp = fgetc(f);
                iTemp += fgetc(f) << 8;
                iTemp += fgetc(f) << 16;
                iTemp += fgetc(f) << 24;
                if (j == cobjNum) {
                    switch (i) {
                        case 1:
                            objData[filenum][items].xstart = iTemp;
                            break;
                        case 2:
                            objData[filenum][items].ystart = iTemp;
                            break;
                        case 3:
                            objData[filenum][items].xend = iTemp;
                            break;
                        case 4:
                            objData[filenum][items].yend = iTemp;
                            break;
                        case 5:
                            objData[filenum][items].xOffset = iTemp;
                            break;
                        case 6:
                            objData[filenum][items].yOffset = iTemp;
                            break;
                        case 12:
                            objData[filenum][items].tlenumber = iTemp;
                            break;
                    }
                }
            }
            iRow++;
        }
        objData[filenum][items].loaded = true;
        items++;
    }
    fclose(f);
    Screen->Cursor = crDefault;
}
//---------------------------------------------------------------------------

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品国产亚洲a| 色婷婷av一区二区三区之一色屋| 亚洲综合自拍偷拍| 亚洲色图欧美偷拍| 亚洲国产激情av| 久久在线观看免费| 精品福利视频一区二区三区| 日韩一区二区电影网| 日韩一区国产二区欧美三区| 欧美一区二区三区系列电影| 欧美日韩中文字幕一区| 欧美另类变人与禽xxxxx| 7777精品伊人久久久大香线蕉经典版下载| 欧美色图12p| 欧美日韩大陆一区二区| 这里只有精品视频在线观看| 欧美精品18+| 91精品国产欧美一区二区成人| 91麻豆精品国产91久久久使用方法| 欧美午夜在线一二页| 欧美日韩一级大片网址| 3d动漫精品啪啪一区二区竹菊| 91精品国产欧美日韩| 久久精品夜色噜噜亚洲a∨| 国产精品色一区二区三区| 亚洲欧美一区二区三区国产精品 | 午夜精品久久久久影视| 男人的天堂亚洲一区| 国产在线播精品第三| 国产成人精品三级| 99精品国产视频| 欧美精品乱码久久久久久按摩 | 专区另类欧美日韩| 亚洲一区二区三区小说| 日产国产高清一区二区三区| 久久97超碰色| 91看片淫黄大片一级在线观看| 欧洲亚洲精品在线| 欧美成人一区二区三区在线观看| 国产欧美精品一区二区色综合 | 国产精品久久久久久久久免费樱桃| 亚洲免费观看视频| 视频一区欧美精品| 国产不卡免费视频| 欧美日本韩国一区二区三区视频| 久久―日本道色综合久久| 国产精品不卡在线| 三级久久三级久久| 国产成人免费高清| 在线观看日韩精品| 久久毛片高清国产| 亚洲综合视频在线| 国内久久精品视频| 欧美揉bbbbb揉bbbbb| 久久亚洲二区三区| 一区二区三区欧美日韩| 紧缚奴在线一区二区三区| 91麻豆免费看| 国产三级三级三级精品8ⅰ区| 午夜精品福利在线| 成人av电影免费观看| 免费成人小视频| 一个色妞综合视频在线观看| 国内外成人在线视频| 欧美日韩在线电影| 自拍偷在线精品自拍偷无码专区| 看电视剧不卡顿的网站| 在线精品亚洲一区二区不卡| 久久综合五月天婷婷伊人| 亚洲一区二区三区小说| 91在线视频18| 国产偷v国产偷v亚洲高清| 日韩av网站在线观看| 欧美三级日韩三级国产三级| 亚洲欧洲无码一区二区三区| 国产一区二三区| 欧美一区二区黄色| 亚洲一区二区三区影院| 91视频在线看| 国产精品卡一卡二| 国产精品一色哟哟哟| 日韩精品一区国产麻豆| 五月天亚洲婷婷| 色999日韩国产欧美一区二区| 国产欧美视频在线观看| 国产呦精品一区二区三区网站 | 亚洲成人动漫av| 91视频一区二区三区| 中文字幕永久在线不卡| 岛国av在线一区| 国产亚洲一二三区| 国内精品国产三级国产a久久| 日韩一区二区在线免费观看| 日韩成人一级片| 欧美男女性生活在线直播观看| 亚洲精品免费视频| 色哦色哦哦色天天综合| 亚洲人成精品久久久久| 97se亚洲国产综合自在线不卡| 国产精品视频一区二区三区不卡| 蜜臀av在线播放一区二区三区| 3d动漫精品啪啪1区2区免费| 亚洲激情图片小说视频| 成人激情免费视频| 国产精品天天看| gogogo免费视频观看亚洲一| 国产精品理伦片| 99久久免费精品| 亚洲激情六月丁香| 欧美在线免费播放| 婷婷夜色潮精品综合在线| 欧美人xxxx| 精品一区二区精品| 久久婷婷综合激情| 成人高清视频在线观看| 最新国产成人在线观看| 在线视频国产一区| 婷婷久久综合九色综合绿巨人| 欧美高清hd18日本| 久久不见久久见免费视频7| 久久蜜桃一区二区| 成人av片在线观看| 一片黄亚洲嫩模| 91精品国产综合久久久蜜臀粉嫩 | 丁香六月综合激情| 最新高清无码专区| 欧美日韩一区二区三区免费看| 日韩av在线播放中文字幕| 日韩一区二区精品在线观看| 久久av老司机精品网站导航| 国产日产亚洲精品系列| 色999日韩国产欧美一区二区| 首页国产欧美久久| 久久精品一区二区三区不卡| 91日韩在线专区| 奇米综合一区二区三区精品视频 | 美女视频网站久久| 国产女人aaa级久久久级 | 欧美不卡在线视频| 成人午夜免费电影| 亚洲国产你懂的| 久久免费精品国产久精品久久久久| 成人aaaa免费全部观看| 亚洲电影在线免费观看| 精品国产乱码久久久久久图片| jizz一区二区| 日韩精品成人一区二区在线| 久久精品视频网| 欧美自拍丝袜亚洲| 国产美女一区二区| 亚洲精品一二三| 日日夜夜免费精品视频| 色88888久久久久久影院按摩| 青青青爽久久午夜综合久久午夜| 欧美国产精品一区二区| 欧美日韩情趣电影| 懂色av一区二区三区免费看| 亚洲成人激情av| 中文子幕无线码一区tr| 7777精品伊人久久久大香线蕉超级流畅| 国产一区二区三区不卡在线观看| 亚洲一区二区在线免费看| 久久蜜桃一区二区| 欧美人伦禁忌dvd放荡欲情| www.亚洲激情.com| 精品一区二区三区av| 亚洲午夜在线观看视频在线| 欧美国产日韩亚洲一区| 日韩欧美国产三级| 欧美日韩国产成人在线免费| 不卡区在线中文字幕| 国产综合色视频| 无码av免费一区二区三区试看 | 欧美国产视频在线| 精品免费日韩av| 欧美日韩一区二区三区视频| 99精品视频一区二区| 国产一区二区三区综合| 青草国产精品久久久久久| 亚洲午夜精品一区二区三区他趣| 国产精品三级视频| 亚洲精品一区二区精华| 91精品国产综合久久久蜜臀图片| 色成年激情久久综合| 盗摄精品av一区二区三区| 国产在线精品一区二区三区不卡| 日本成人中文字幕在线视频| 亚洲综合久久久久| 亚洲免费看黄网站| 亚洲视频在线观看三级| 国产精品久久久久久久久图文区| 久久亚洲一级片| 久久理论电影网| www欧美成人18+| 精品美女在线播放| 久久综合久久综合九色| 日韩一区二区三区在线观看 | 三级欧美在线一区| 天堂在线一区二区| 午夜国产精品一区|