📄 previewmap.cpp
字号:
// Copyright 2002 Kenneth Guy,
//
#include <iostream>
#include <fstream>
#include <string>
#include <stdlib.h>
#include <vector>
#define TInt int
#define TInt16 short
#define TUint32 unsigned int
#define TUint16 unsigned short
#include "backgrounds.h"
#include "map.h"
main(int argc, char** argv) {
if(argc!=2) {
cerr << "mapGen <preview.pnm>\n";
std::exit(-1);
}
string r,g,b;
std::vector<std::vector<short> > mapVec;
int lineNo=0;
while(lineNo!=-1) {
vector<short> line;
if(Map[(lineNo*8)]==EMapLineBackground) {
line.push_back(Map[(lineNo*8)+1]);
line.push_back(Map[(lineNo*8)+2]);
line.push_back(Map[(lineNo*8)+3]);
line.push_back(Map[(lineNo*8)+4]);
mapVec.push_back(line);
}
if(Map[(lineNo*8)]==EMapLineEndOfMap)
lineNo=-1;
else
lineNo++;
}
std::ofstream preview(argv[1]);
if(!preview) {
cerr << "Couldn't open " << argv[1] << "\n";
std::exit(-1);
}
preview << "P3\n";
preview << "# created by mapGen\n";
preview << mapVec.size()*64 << " " << 200 << "\n";
preview << "255\n";
for(int spriteY=0;spriteY<4;++spriteY) {
for(int sline=0;sline<50;++sline) {
for(int spriteX=0;spriteX<mapVec.size();++spriteX) {
int spriteNo=(mapVec[spriteX])[spriteY];
const unsigned short* line=KBackgrounds+(64*50*spriteNo)+(sline*64);
for(int k=0;k<64;++k) {
int r= (line[k]>>8 &0xf) << 4;
int g= (line[k]>>4 &0xf) << 4;
int b= (line[k] &0xf) << 4;
preview << r << " " << g << " " << b << "\n";
}
preview << " ";
}
}
preview << "\n";
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -