ftp.nice.ch/Attic/openStep/games/Empire.0.6.m.NIS.bs.tgz#/Empire.0.6/src/Human.subproj/Human.h

This is Human.h in view mode; [Download] [Up]

//
// $Id: Human.h,v 1.3 1997/10/31 03:38:29 nygard Exp $
//

//
//  This file is a part of Empire, a game of exploration and conquest.
//  Copyright (C) 1996  Steve Nygard
//
//  This program is free software; you can redistribute it and/or modify
//  it under the terms of the GNU General Public License as published by
//  the Free Software Foundation; either version 2 of the License, or
//  (at your option) any later version.
//
//  This program is distributed in the hope that it will be useful,
//  but WITHOUT ANY WARRANTY; without even the implied warranty of
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//  GNU General Public License for more details.
//
//  You should have received a copy of the GNU General Public License
//  along with this program; if not, write to the Free Software
//  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
//  You may contact the author by:
//     e-mail:  nygard@telusplanet.net
//

#import <AppKit/AppKit.h>
#import "Empire.h"
#import "EmPlayer.h"

@class City;
@class HState;
@class Map;
@class MapPathView;
@class MapView;
@class Unit;
@class WorldMapController;

//======================================================================

@interface Human : EmPlayer
{
    IBOutlet NSWindow *playerWindow;
    IBOutlet MapPathView *mapView;

    IBOutlet NSTextField *turnNumberTextfield;
    IBOutlet NSTextField *modeTextfield;
    IBOutlet NSTextField *statusTextfield;

    IBOutlet NSButton *continueButton;
    IBOutlet NSButton *endTurnButton;

    HState *state;
    NSString *savedStateKey;

    WorldMapController *worldMapController;

    NSMutableDictionary *stateGroup;

    NSMutableArray *combatEvents;
    Map *savedMap; // As of end of turn

    // Note: HState's are no longer shared, but this particular
    //       state should still be shared among them...

    City *selectedCity;
}

- (void) awakeFromNib;

- initWithName:(NSString *)aName number:(Player)number world:(Map *)aMap
       capital:(City *)capitalCity withEfficiencies:(int)pe:(int)ce
   gameManager:(GameManager *)theGameManager;

- (void) dealloc;

//======================================================================
// Turn phases
//======================================================================

- (void) yourTurn:(int)turn;

//======================================================================
// Interface Management
//======================================================================

- (void) continue:sender;
- (void) endTurn:sender;

- (void) enableContinueButton:(BOOL)flag;
- (void) enableEndTurnButton:(BOOL)flag;

- (BOOL) validateMenuItem:(NSMenuItem *)menuCell;

- (void) clickActiveButton;

- (void) setStatusLine:(NSString *)text;
// How do the following two methods differ?
- (void) selectThing:object;
// Rename to setSelectedUnit:?
- (void) selectUnit:(Unit *)aUnit;

- (MapView *) mapView;

//======================================================================-
// Commands
//======================================================================-

- (void) moveMode:sender;
- (void) surveyMode:sender;
- (void) groupMode:sender;
- (void) wait:sender;
- (void) flightPaths:sender;
- (void) activateUnit:sender;
- (void) centerScreen:sender;
- (void) centerCursor:sender;
- (void) centerSelected:sender;

//======================================================================
// End of game Reports
//======================================================================

- (void) showFinalCombinedMap:sender;
- (void) showFinalPlayer1Map:sender;
- (void) showFinalPlayer2Map:sender;
- (void) showFinalPlayer3Map:sender;

- (void) showFinalMapForPlayer:(Player)number;

//======================================================================-
// Orders
//======================================================================-

- (void) goDirection:sender;
- (void) goHome:sender;
- (void) goRandom:sender;
- (void) moveTo:sender;
- (void) patrolTo:sender;
- (void) escortShip:sender;
- (void) explore:sender;
- (void) sentry:sender;
- (void) clearOrders:sender;
- (void) loadShip:sender;
- (void) unloadShip:sender;
- (void) skipMove:sender;

- (void) resignFromGame:sender;

//======================================================================
// Reports
//======================================================================

- (void) showCombatReport:sender;
- (void) showProductionMap:sender;
- (void) showShipReport:sender;
- (void) showWarReport:sender;
- (void) showWorldMap:sender;

//======================================================================
// MapView delegate
//======================================================================

- (void) mouseDown:(unsigned int)modifierFlags atLocation:(EMMapLocation)target;
- (void) mouseUp:(unsigned int)modifierFlags atLocation:(EMMapLocation)target;
- (void) rightMouseDown:(unsigned int)modifierFlags atLocation:(EMMapLocation)target;
- (void) rightMouseUp:(unsigned int)modifierFlags atLocation:(EMMapLocation)target;
- (void) keyDown:(NSEvent *)theEvent;

//======================================================================
// Window Delegate
//======================================================================

- (BOOL) windowShouldClose:sender;
- (void) windowWillClose:(NSNotification *)aNotification;

//======================================================================
// End of player
//======================================================================

- (void) gameStopped:(int)activePlayers;
- (BOOL) playerHasWon:(int)activePlayers;
- (void) playerHasLost:(int)activePlayers;
- (void) playerHasResigned:(int)activePlayers;

//======================================================================
// HState Management
//======================================================================

- (void) changeState:(NSString *)newStateName;
- (void) saveState;
- (void) restoreState;

//======================================================================
// HState Access
//======================================================================

- (City *) selectedCity;
- (void) selectCity:(City *)city;
- (Map *) finalMapForPlayer:(Player)number;

//======================================================================
// Combat Report
//======================================================================

- (Map *) savedMap;
- (NSArray *) combatEvents;

//======================================================================
// Map Delegate
//======================================================================

- (void) refreshLocation:(EMMapLocation)target;
- (void) refresh3x3Location:(EMMapLocation)target;
- (void) strippedIconsOfPlayer:(Player)number;

//======================================================================
// Other
//======================================================================

- (void) showExplosions:(int)count atLocation:(EMMapLocation)target;

//======================================================================
// Subclass Notifications
//======================================================================

- (void) selectedUnitTriedToMove:(MoveResult)moveResult;

@end

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.