|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T o
Length: 4378 (0x111a) Types: TextFile Names: »ogre.extensions«
└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987 └─⟦this⟧ »EUUGD18/General/Ogre/bugfixes/ogre.extensions«
From mcvax!seismo!uwvax!heurikon!perry Wed Nov 14 04:13:46 1984 Relay-Version: version B 2.10.1 6/24/83 (MC830919); site turing.UUCP Posting-Version: version B 2.10.2 9/18/84; site heurikon.UUCP Path: turing!mcvax!seismo!uwvax!heurikon!perry From: perry@heurikon.UUCP (Perry Kivolowitz) Newsgroups: net.sources Subject: Re: Ogre Under System 5 Message-ID: <125@heurikon.UUCP> Date: Wed, 14-Nov-84 04:13:46 GMT Article-I.D.: heurikon.125 Posted: Wed Nov 14 04:13:46 1984 Date-Received: Thu, 15-Nov-84 09:20:47 GMT References: <5698@brl-tgr.ARPA> <119@heurikon.UUCP> Organization: Heurikon Corp., Madison WI Lines: 167 Kudos to Mike Caplinger for a fine implementation. Following is a modified version of termcap.c which is the only file requiring changes for running the distributed version of OGRE under system 5. One thing of note, our System 5 implementation (from Unisoft) does not have a working [sg]tty system subroutine. This is of no importance since the sgttyb structure is not really the thing that must change under System 5 but rather the termio structure. At the suggestion of a friend, I have added a feature (probably not found in the original game). That is, if an Infantry unit doesn't move for two turns it can increase its defensive strength by one to a maximum of three. If an Infantry unit (whose defensinve strength has been so increased) moves, its defensive strength reduces to that of an ordinary Infantry unit. This is meant to simulate the ability of dog-faces to ``dig in.'' I have not found this new feature to make the game less challenging. The changes to implement this feature are a few lines in move.c. Also, I have added self-propelled guns which are similar to moving H's. In addition to the modified termcap.c I have also included a modified ext.h to resolve name-length problems. -------------------------------------------------------------------------- #include <termio.h> /* Interface to termcap library. */ char PC; char *BC, *UP; char *eeolseq, *cmseq; char *clearseq; int putchar(); tc_setup() { static char bp[1024]; static char buffer[1024]; char *area = buffer; char *getenv(); char *tgetstr(); char *name; int retcode; name = getenv("TERM"); retcode = tgetent(bp, name); switch(retcode) { case -1: printf("can't open termcap file.\n"); exit(1); break; case 0: printf("No termcap entry for %s.\n", name); exit(1); break; } eeolseq = tgetstr("ce", &area); cmseq = tgetstr("cm", &area); clearseq = tgetstr("cl", &area); BC = tgetstr("bc", &area); UP = tgetstr("up", &area); } eeol() { tputs(eeolseq, 0, putchar); } clear_screen() { tputs(clearseq, 0, putchar); } movecur(row, col) int row, col; { tputs(tgoto(cmseq, col, row), 0, putchar); } /* system 5 mods begin here (psk) */ struct termio old_term; struct termio new_term; /* Set terminal to CBREAK and NOECHO. */ set_term() { static int first = 1; if(first) { ioctl(0 , TCGETA , &new_term); ioctl(0 , TCGETA , &old_term); new_term.c_lflag &= ~(ECHO | ECHOE | ICANON); new_term.c_lflag |= ISIG; new_term.c_cc[4] = 1; new_term.c_cc[5] = 0; first = 0; } ioctl(0, TCSETA , &new_term); } /* Reset the terminal to normal mode. */ reset_term() { ioctl(0, TCSETA , &old_term); } __________________________________________________________________________ The following is a new ext.h for Mike Caplinger's OGRE implemenation. By using this version one can avoid nasty duplicate definition messages under System 5. -------------------------------------------------------------------------- #include "ogre.h" #ifdef MAIN UNIT unit[N_UNITS]; OGRE ogre; int n_units; #else extern UNIT unit[N_UNITS]; extern OGRE ogre; extern int n_units; #endif /* ** gets rid of variable/routine name length problems. (psk) */ #define display DSP1 #define display_xy DSP2 #define display_range DSP3 #define disp_ogre DSP4 #define disp_ogre_status DSP5 #define init_ogre INIT1 #define init_ogre_attack INIT2 #define movecur_hex MV1 #define movecur_unit MV2 #define move_ogre MVOGR1 #define move_ogre1 MVOGR2 #define update_odds UPDT1 #define update_hex UPDT2