File: DeckMoveCommand.hxx

package info (click to toggle)
oonsoo 1.2-8
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 1,604 kB
  • ctags: 422
  • sloc: cpp: 24,373; makefile: 82
file content (56 lines) | stat: -rw-r--r-- 1,495 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
///////////////////////////////////////////////////////////////////////////////
// $Id: DeckMoveCommand.hxx,v 1.1 1995/01/08 06:41:34 bmott Exp $
///////////////////////////////////////////////////////////////////////////////
//
// DeckMoveCommand.hxx - Command called when a deck has been split and moved
//
//
// Bradford W. Mott
// Copyright (C) 1994
// December 12,1994
//
///////////////////////////////////////////////////////////////////////////////
// $Log: DeckMoveCommand.hxx,v $
// Revision 1.1  1995/01/08  06:41:34  bmott
// Initial revision
//
///////////////////////////////////////////////////////////////////////////////

#ifndef DECKMOVECOMMAND_HXX
#define DECKMOVECOMMAND_HXX

#include "Command.hxx"
#include "Engine.hxx"
#include "Deck.hxx"

class DeckMoveCommandArguments {
  public:
    Deck* from;   // Deck the cards were moved from
    Deck* moved;  // Plain deck the user moved around

    DeckMoveCommandArguments(Deck* f, Deck* m)
        : from(f), moved(m)
    { }
};

class DeckMoveCommand : public Command {
  private:
    Engine* myEngine;

  public:
    // Protected constructor to prevent instantiation
    DeckMoveCommand(Engine* engine) { myEngine = engine; }

    // Destructor
    virtual ~DeckMoveCommand() { }

    // Tell the engine to handle moving the cards
    virtual void execute(void* argument)
    {
      DeckMoveCommandArguments* args = (DeckMoveCommandArguments*)argument;
      myEngine->moveCards(args->from, args->moved);
    }
};

#endif