📄 gateway.cpp
字号:
// (C) Copyright 1996 by Anthony J. Carin. All Rights Reserved.
#include <stdafx.h>
#include <gateway.h>
#include <levels.h>
extern char exist(LPCTSTR path);
gateway::gateway(CString& mapname) :
landscape((CString) "landscpe\\newmap.img")
{
m_type = GATEWAY;
ToMap = mapname;
mGate = (bmpsurf *) m_body->OnlySurf();
m_body->OnlySurfExemptFromIntersect();
mGate->OKToIntersect();
}
void gateway::draw()
{
baseobject::draw();
view tmploc;
view a = Game->LevelPtr()->GuyLocation();
if (a.x() == 0.0f &&
a.y() == 0.0f &&
a.z() == 0.0f)
return;
tmploc = a;
tmploc.setx(a.x() + tcsin(a.ydirection(), 1.0f));
tmploc.setz(a.z() + tccos(a.ydirection(), 1.0f));
#ifdef EDITOR
if (!Game->LevelPtr()->selection)
#endif
if (mGate && mGate->IsABmp() && mGate->intersects(a,tmploc))
{
Game->LevelPtr()->SetGuyTo(tmploc);
Game->Landscapes()->save();
if (!exist((LPCTSTR)ToMap))
{
FILE *fp;
fp = fopen((LPCSTR)ToMap, "w");
if (fp <= 0)
return;
tmploc = location();
fprintf(fp, "%1.2f ", tmploc.x());
fprintf(fp, "%1.2f ", tmploc.y());
fprintf(fp, "%1.2f ", tmploc.z());
fprintf(fp, "%d ", (short)tmploc.xdirection());
fprintf(fp, "%d ", (short)tmploc.ydirection());
fprintf(fp, "%d ", (short)tmploc.zdirection());
fprintf(fp, "%s ", (LPCSTR)Game->LevelPtr()->landscapemap);
fprintf(fp, "%ld\n", getcolor());
fclose(fp);
}
delete Game->Landscapes();
CString savemap = ToMap;
detach();
Game->DrawQueue()->purge(LANDSCAPE);
Game->DrawQueue()->purge(GATEWAY);
Game->DrawQueue()->purge(ANTAGONIST);
Game->DrawQueue()->KillLater(this);
landscapelist *lptr;
lptr = new landscapelist();
Game->SetLandscapes(lptr);
Game->Landscapes()->load(savemap);
Game->LevelPtr()->ResetGuysHealth();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -