Yosin_Game/Npk.h

66 lines
1004 B
C
Raw Permalink Normal View History

2024-05-04 18:30:32 +08:00
#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();
};