⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gateway.cpp

📁 一个三维打斗游戏
💻 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 + -