userfunc.cpp

来自「一个RPG术语查询器」· C++ 代码 · 共 81 行

CPP
81
字号
#define ALLEGRO_STATICLINK
#include <allegro.h>
#ifdef _WIN32
#include <winalleg.h>
#endif

#include <iostream>
#include <string.h>

#include "types.h"
#include "functions.h"
#include "entity.h"
#include "context.h"



#define TOKENRESERVED -1
#define TOKENITEM 1

int save(int argc,char *argv[], void *Cprompt)
{
	CONTEXTPROMPT *prompt=(CONTEXTPROMPT *) Cprompt;
    if(argc==1)
    {
        std::cout << "Usage: save file.xml" << std::endl;
        return 0;
    }
    if(prompt->save(argv[1])!=0)
    {
        std::cout << "Error writing " << argv[1] << "..." << std::endl;
    }
    else
    {
        std::cout << "Done writing " << argv[1] << "!" << std::endl;
    }
}

int exitprog(int argc,char *argv[], void *Cprompt)
{
	CONTEXTPROMPT *prompt=(CONTEXTPROMPT *) Cprompt;
	prompt->active=0;
	return 0;
}

int blank(int argc,char *argv[], void *Cprompt)
{
	std::cout << "I AM A BLANK WORD.  RELATE ME" << std::endl;
	return 0;
}

int absorb(int argc, char *argv[], void *Cprompt)
{
	CONTEXTPROMPT *prompt=(CONTEXTPROMPT *) Cprompt;
	if(argc<=2)
	{
		std::cout << "Usage: absorb TOKEN DESCRIPTION" << std::endl;
		return 1;
	}
	prompt->addtoken(argv[1],blank,argv[2],0,0);
	return 0;
}


int object(int argc, char *argv[], void *Cprompt)
{
	CONTEXTPROMPT *prompt=(CONTEXTPROMPT *) Cprompt;
    AddObject(argv[1], atoi(argv[2]), (strcmp(argv[3],"NULL")==0)?NULL:argv[3] , atoi(argv[4]), argv[5], atoi(argv[6]), atoi(argv[7]), atoi(argv[8]), atoi(argv[9]));
	return 1337;
}


void startupprompt(void *Cprompt)
{
	CONTEXTPROMPT *prompt=(CONTEXTPROMPT *) Cprompt;
   	prompt->addtoken("save",save,"save function",0,TOKENRESERVED);
   	prompt->addtoken("object",object,"object function",0,TOKENRESERVED);
	prompt->addtoken("absorb",absorb,"absorb function",0,TOKENRESERVED);
	prompt->addtoken("exit",exitprog,"EXIT",0,TOKENRESERVED);
}

⌨️ 快捷键说明

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