66 lines
1004 B
C
66 lines
1004 B
C
|
|
#pragma once
|
|||
|
|
#include <map>
|
|||
|
|
#include <string>
|
|||
|
|
#include <windows.h>
|
|||
|
|
#include <iostream>
|
|||
|
|
#include <zlib.h>
|
|||
|
|
|
|||
|
|
#define NPK_R_FLAG(b){if(!b)continue;}
|
|||
|
|
|
|||
|
|
//PNG<4E>ṹ<EFBFBD><E1B9B9>
|
|||
|
|
struct ImgInfo
|
|||
|
|
{
|
|||
|
|
//ͼƬ<CDBC><C6AC>ʽ
|
|||
|
|
int Type;
|
|||
|
|
//ѹ<><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
int CmpType;
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>
|
|||
|
|
int Width;
|
|||
|
|
//<2F>߶<EFBFBD>
|
|||
|
|
int Height;
|
|||
|
|
//<2F><>С
|
|||
|
|
int Size;
|
|||
|
|
//Xpos
|
|||
|
|
int Xpos;
|
|||
|
|
//Ypos
|
|||
|
|
int Ypos;
|
|||
|
|
//֡<><D6A1>X
|
|||
|
|
int FrameXpos;
|
|||
|
|
//֡<><D6A1>Y
|
|||
|
|
int FrameYpos;
|
|||
|
|
//ƫ<><C6AB>
|
|||
|
|
int Offset;
|
|||
|
|
//Pngλͼ<CEBB><CDBC><EFBFBD><EFBFBD>
|
|||
|
|
BYTE* PNGdata;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
struct NpkInfo
|
|||
|
|
{
|
|||
|
|
int Offset;
|
|||
|
|
int Length;
|
|||
|
|
std::string Path;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
struct IMG //npk<70><6B>img<6D>Ľṹ<C4BD><E1B9B9>
|
|||
|
|
{
|
|||
|
|
std::string lpImgName; //img<6D>ļ<EFBFBD><C4BC><EFBFBD>·<EFBFBD><C2B7>
|
|||
|
|
int img_index; //img<6D>ļ<EFBFBD><C4BC><EFBFBD>npk<70>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
unsigned imgOffset;
|
|||
|
|
unsigned imgSize;
|
|||
|
|
std::string lpBelongsFile; //<2F><><EFBFBD><EFBFBD>img<6D><67><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD>npk<70>ļ<EFBFBD>
|
|||
|
|
int png_sum; //<2F><><EFBFBD><EFBFBD>img<6D>ļ<EFBFBD><C4BC>ж<EFBFBD><D0B6>ٸ<EFBFBD> ͼƬ
|
|||
|
|
ImgInfo* lp_lplist; //ͼƬ<CDBC><C6AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>..
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
class NPK_M {
|
|||
|
|
private:
|
|||
|
|
std::map <std::string, IMG> map_npk;
|
|||
|
|
public:
|
|||
|
|
NPK_M();
|
|||
|
|
void init();
|
|||
|
|
LPDWORD LoadImgToMem(IMG* p);
|
|||
|
|
IMG* ReadNpkTable(const std::string imgname);
|
|||
|
|
void ReleaseNpkTable(IMG* p);
|
|||
|
|
~NPK_M();
|
|||
|
|
};
|