home *** CD-ROM | disk | FTP | other *** search
- #include "game.h"
- #include "card.h"
-
- const int CARD_Y = 180;
- const int TEXT_X1 = 15;
- const int TEXT_X2 = 87;
- const int NUM_X1 = 65;
- const int NUM_X2 = 137;
- const int Y1 = 14;
- const int Y2 = 35;
-
- CUELIST(Card)
- MESSAGE(GOT_PUNCHED,on_punch)
- MESSAGE(GOT_KICKED,on_kick)
- MESSAGE(ATTACK_BLOCKED,on_block)
- MESSAGE(GAME_OVER,game_over)
- ENDCUELIST
-
- Card::Card(Director* d,int s) : Performer(d)
- {
- side=s;
- x=(side==LEFTGUY) ? 0 : 160;
- card=(side==LEFTGUY) ? 1 : 2;
- punchdisplay=
- new NumericDisplay(my_director(),"font.gfx",0,2,x+NUM_X1,CARD_Y+Y1);
- kickdisplay=
- new NumericDisplay(my_director(),"font.gfx",0,2,x+NUM_X1,CARD_Y+Y2);
- blockdisplay=
- new NumericDisplay(my_director(),"font.gfx",0,2,x+NUM_X2,CARD_Y+Y1);
- knockdisplay=
- new NumericDisplay(my_director(),"font.gfx",0,2,x+NUM_X2,CARD_Y+Y2);
- }
-
- void Card::initialize()
- {
- load_gfxlib("cards.gfx");
- load_gfxfont("font.gfx");
- nknocks=0;
- }
-
- Card::~Card()
- {
- delete punchdisplay;
- delete kickdisplay;
- delete blockdisplay;
- delete knockdisplay;
- }
-
- void Card::display()
- {
- npunches=0;
- nkicks=0;
- nblocks=0;
- punchdisplay->set(0);
- kickdisplay->set(0);
- blockdisplay->set(0);
- knockdisplay->set(nknocks);
-
- show_image(x,CARD_Y,card);
- show_print(x+TEXT_X1,CARD_Y+Y1,"PUNCHES");
- show_print(x+TEXT_X1,CARD_Y+Y2,"KICKS");
- show_print(x+TEXT_X2,CARD_Y+Y1,"BLOCKS");
- show_print(x+TEXT_X2,CARD_Y+Y2,"WINS");
- }
-
- void Card::update()
- {
- punchdisplay->update();
- kickdisplay->update();
- blockdisplay->update();
- knockdisplay->update();
- }
-
- void Card::on_punch(int,int data)
- {
- if (side!=data)
- {
- punchdisplay->set(++npunches);
- punchdisplay->update();
- }
- }
-
- void Card::on_kick(int,int data)
- {
- if (side!=data)
- {
- kickdisplay->set(++nkicks);
- kickdisplay->update();
- }
- }
-
- void Card::on_block(int,int data)
- {
- if (side==data)
- {
- blockdisplay->set(++nblocks);
- blockdisplay->update();
- }
- }
-
- void Card::game_over(int,int data)
- {
- if (side==data)
- {
- knockdisplay->set(++nknocks);
- knockdisplay->update();
- }
- }
-