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

📄 ls.h

📁 轩辕剑外传II(源码)
💻 H
字号:
#ifndef LS_H
#define LS_H
#include <lsys.h>
#include <ldraw.h>
#include <lkey.h>
#include <lutils.h>

///////////////////////////////////////////////////////////////////////////
#define ACTOR_WAITING       0
#define ACTOR_WALKING       1
#define ACTOR_DOING         2
#define ACTOR_MOVETO        3
#define ACTOR_DELETE        4
#define MAX_ACTOR          64
#define WORLDX(x)     (x*8+4)
#define WORLDY(y)    (y*8+10)
#define MAPX(x)     ((x-4)/8)
#define MAPY(y)    ((y-10)/8)
#define STEP_LEN            8
#define NORTH               1
#define SOUTH               0
#define WEST                2
#define EAST                3

#define EVENT_NO(x)         (x&1023)
#define EVENT_MODE(x)       (x&1024)
#define EVENT_DATA(no,mode) ((mode<<10)|no)

#define MAX_SOUND         100

extern short     LayerSizes[];
extern lenvironment     layer;
extern game_map           map;
extern RGB             pal0[];
extern RGB              pal[];
extern char             msg[];
extern COLOR_MAP    color_map;
extern RGB_MAP        rgb_map;
///////////////////////////////////////////////////////////////////////////
class TACTOR
{ int status;
  int move_delay;
public:
  TACTOR();
 ~TACTOR();
  int          id;
  char   name[80];
  char  *pics[30];
  int    walk_pic;
  int       maxhp;
  int       maxmp;
  int          at;
  int          df;
  int          hp;
  int          mp;
  int       smart;
  int         x,y;
  int       wx,wy;
  int    act_mode;
  int   act_speed;
  int      active;
  int     command;
  int     towards;
  short move_data[1000];
  int  event_near;
  int  event_callf;
  int  event_calln;

  int   load_dat(int id);
  int   reset();
  int   do_command(int cmd,int c1,int c2);
  int   wait_for_cmd();
  int   call_actors(int search_len,int far_case);
  int   ACTIVING();
}; extern TACTOR actor[];

class TVOC
{ MIDI *midi;
  char *debug_msg[400];
  int  debug_p;
  struct {
    char *data;
    int   len;
    int   sample;
  } sound[MAX_SOUND*2];
public:
  int inst[2];
  int music;
  TVOC();
  ~TVOC();
  int init();
  int rest();
  int playmidi(int song,int loop);
  int stopmidi();
  int playdigi(int index);
  int update();
  int volume(int midivol,int digivol);
  int regist_msg(char *fmt,...);
  char *get_msg(int i);
}; extern TVOC voc;
class TWORLD
{ short  chapter[0x20000];
  short *event;
  int    ip;

  char *dialog[8192];
  int   dialog_p;

  int  map_bpic;
  int  map_bscroll;
  TLpcImage map_floor;
  TLpcImage map_pic;

  int   dialog_clear();
  int   dialog_put(char *s);
  char *dialog_get(int d);
  char *get_chapter_fname(int c);
  int   compile_regist_label(char *name);
  int   compile_find_label(char *name);
  int   compile_regist_goto(char *name,int source);
  int   compile_translate_data(int start,int *data);
  int   CHAPTER_DELAY;
public:
  short  data[4][1000];
  int   looping;
  int   smooth;
  int   color_change;

  TWORLD();
  ~TWORLD();
  int RESET();
  int time_delay;
  int time_pass;
  int map_loadpic();
  int map_load(int index);
  int call_actor();
  int view_world(int dbf,int link,int scr);
  int noop(int delay);
  int main_loop();
  int debug_info();
  int test_all();

  int  proc_loadmap(int map);
  int  proc_startchapter(int chap);
  int  proc_createactor(int actor,int x,int y);
  int  proc_delactor(int actor);
  int  proc_actormove(int actor,short *move,int data_len);
  int  proc_actorevent(int actor,int *event_list);
  int  proc_mapevent(int x1,int y1,int x2,int y2,int ev,int mode);
  int  proc_say(int pos,int header,int word);
  short *proc_get_num(short *num);
  int  proc_if(short *judge);
  int  proc_set(short *judge);
  int  proc_get_goods(int g,int mode);
  int  proc_get_money(int money);
/******************************/
  int MAKE_EVENT(int event);
  int NEW_CHAPTER(int c,int clear);
  int CHAPTER();
/******************************/
  int SAVE_GAME(int save);
  int LOAD_GAME(int load);
  int START_GAME(int load);
}; extern TWORLD world;
class TEXPRESS
{ LSURFACE  temp;
  int picflag;
  int button;
  int goods;
  int ptext(int *win,int *step,char *word,int shadow);
public:
  struct
   { char name[20];
     char inst[100];
     int  pic,mode;
     int  buy,sell;
     int  ahp,dmp;
   } goods_dat[100];
  TEXPRESS();
 ~TEXPRESS();
  TLpcImage syspic;
  int main_bx,main_by;
  int text_speed;
  int syspic_load();
  int syspic_free();
  int scr_save();
  int scr_restore();
  int scr_smooth(int mode);
  int outtextxy(int x,int y,char *word,int shadow);
  int text(int *win,char *word,int shadow,int speed=-1);
  int out_say(int pos,int pic,char *word);
  int put_button(int x,int y,int step,int choice);
  int put_button(int mx,int my,char *line);
  int put_box(int x,int y,int len,int wid);
  int put_rectangle(int x1,int y1,int x2,int y2,int step);
  int put_selector(int x,int y,int len);
  int put_status(int actor_id,int x,int y);
  int draw_mix(int x,int y,char *p);
  int draw_shadow();
  int box_message(char *msg);
  int yes_no();
  int actor_choice();
  int goods_choice(int movie,int mode);
  int menu_choice(int count,char *names[],int dark,int actor_face,int color,int startx=128,int starty=36);
  int buy_sell(short *things,int sell);
  int movie(int m);
  int test();
}; extern TEXPRESS express;
///////////////////////////////////////////////////////////////////////////
extern int c_blue,c_red,c_green;
extern int c_white,c_dark,c_yellow;
extern int game_delay;
#define MAX_GOODS 50
class GAME
{ char title[320*240+8];
public:
  int money;
  int goods[MAX_GOODS+10];
  int chapter;
  int map;
  char place_name[86];
  struct
   { char name[80];
     int  id;
     int  at,df,mhp,mmp,smt;
     int  hp,mp;
     int  f,exp,level;
     int  cloth;
     int  weapon;
     char magic[24];
   } ac[9];
  GAME();
 ~GAME();
  int goods_find(int g);
  int goods_add(int g,int mode);
  int goods_use(int index,int actor_id);
  int DataReset();
  int GameHalt(int code,char *messag);
  int GameInit();
  int GameExit();
  int GameStart();
  int GameMovie();
  int GameControl();
  int TellText(char *text[]);
  int GameStatusView();
  int MovieNew();
  int MovieAbout();
  int MovieGameOver();
  int MovieShip();
  int MovieEnd();
  int SaveLoad(int save,int mode);
  int FightStart(int enemy);
  int GetLevel(int exp);
}; extern GAME LGAME;

#define NAME_MIDI        0
#define NAME_WAVE        1
#define NAME_FLOOR       2
#define NAME_MAPPIC      3
#define NAME_BACKPIC     4
#define NAME_MAP         5
#define NAME_CHAPTER     6
#define NAME_ACTOR       7
#define NAME_SAVE        8
#define NAME_FONT        9
#define NAME_ACTORPIC    10
#define NAME_SYSTEM      11
#define NAME_GOODS       12
#define NAME_TITLE       13
int    game_prepare();
int    game_exit();
int    game_clear_map();
int    game_blit(int dbf,int scr);
int    view_spirit(short x,short y,char *spr,short disp);
int    view_link(int l0,int l1,int l2);

int    game_reset_all(int _actor,int _map,int _layer,int _world);
int    game_findactor(int id);
int    game_getfname(int type,int index,char *name);
int    game_key(int k);
#endif

⌨️ 快捷键说明

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