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

📄 command.h

📁 一个三维打斗游戏
💻 H
字号:
// (C) Copyright 1996 by Anthony J. Carin.  All Rights Reserved.

#ifndef COMMAND_H
#define COMMAND_H

#include <time.h>

inline short random(short v)
{
    return (short)((rand()*v) / RAND_MAX);
}

enum insttype
{
ENDSESSION,
INSERTFILE,
THEYDO,
TILTBODYRIGHT,
TILTBODYLEFT,
TILTBODYFWD,
TILTBODYBCK,
TURNHEADLEFT,
TURNHEADRIGHT,
TURNHEADUP,
TURNHEADDOWN,
RLEGBENDKNEE,
LLEGBENDKNEE,
RLEGRAISEFWD,
LLEGRAISEFWD,
RLEGRAISEBCK,
LLEGRAISEBCK,
RLEGRAISESIDE,
LLEGRAISESIDE,
RARMBENDELBOW,
LARMBENDELBOW,
RARMRAISEFWD,
LARMRAISEFWD,
RARMRAISEBCK,
LARMRAISEBCK,
RARMRAISESIDE,
LARMRAISESIDE,
TURNRIGHT,
TURNLEFT,
MOVEUPWARD,
MOVEFOWARD,
MOVEBACKWARD,
PLAYSOUND,
PLAYGENERIC,
BEGINPROTECT,
ENDPROTECT,
STRIKETOP,
STRIKEMED,
STRIKEBOT,
TILTRIGHTWEAPON,
TILTLEFTWEAPON,
CLEAR,
HURTME,
RTHROW,
LTHROW,
PICKUP,
NOMORE,
NOTEXIST
};

class instruction
{
public:
         instruction();
         instruction(instruction& i);
        ~instruction()               { delete m_string; }
insttype operator()()                { return m_inst; }
float    value()                     { return m_value; }
void     operator=(instruction& i);
void     operator=(insttype v)       { m_inst = v; }
char    *string()                    { return m_string; }
void     setvalue(float v)           { m_value = v; }
void     setstring(char *);
instruction *Next;

private:

insttype m_inst;
float    m_value;
char    *m_string;

};

class instlist
{
public:
            instlist()     { First = Last = Current = 0; m_purgeold = m_protected = FALSE; }
           ~instlist()     { purge(); }
void        add(instruction& i);
instruction& next();
void        restart()      { Current = First; }
char        nomore()       { return (char)(Current == 0); }
char        isempty()      { return (char)(First == 0); }
void        purgeold()     { m_purgeold = TRUE; }
void        purge();
void        remove(insttype v);

private:
instruction *First;
instruction *Last;
instruction *Current;
char        m_purgeold;
char        m_protected;

};

class command
{
public:

            command(LPCTSTR filename);
           ~command()   { delete m_instlist; }
instruction& next()     { return m_instlist->next(); }
void        restart()   { m_instlist->restart(); }
char        nomore()    { return m_instlist->nomore(); }
void        purge()     { m_instlist->purge(); }
void        purgeold()  { restart(); m_instlist->purgeold(); }
void        append(command& c);
void        remove(insttype v)  { m_instlist->remove(v); }
void        add(instruction& i) { m_instlist->add(i); }
char        isempty()   { return m_instlist->isempty(); }
void        AddToValue(insttype instruct, short bonus);

private:
instlist   *m_instlist;

};

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -