mirror of
https://github.com/id-Software/DOOM.git
synced 2026-03-19 16:39:36 +01:00
Adding the release of the DOOM IPX driver.
This commit is contained in:
73
ipx/DOOMNET.C
Normal file
73
ipx/DOOMNET.C
Normal file
@@ -0,0 +1,73 @@
|
||||
//#define DOOM2
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <process.h>
|
||||
#include <conio.h>
|
||||
#include <dos.h>
|
||||
|
||||
#include "doomnet.h"
|
||||
//#include "ipxstr.h"
|
||||
#include "ipx_frch.h" // FRENCH VERSION
|
||||
|
||||
doomcom_t doomcom;
|
||||
int vectorishooked;
|
||||
void interrupt (*olddoomvect) (void);
|
||||
|
||||
|
||||
|
||||
/*
|
||||
=============
|
||||
=
|
||||
= LaunchDOOM
|
||||
=
|
||||
These fields in doomcom should be filled in before calling:
|
||||
|
||||
short numnodes; // console is allways node 0
|
||||
short ticdup; // 1 = no duplication, 2-5 = dup for
|
||||
slow nets
|
||||
short extratics; // 1 = send a backup tic in every
|
||||
packet
|
||||
|
||||
short consoleplayer; // 0-3 = player number
|
||||
short numplayers; // 1-4
|
||||
short angleoffset; // 1 = left, 0 = center, -1 = right
|
||||
short drone; // 1 = drone
|
||||
=============
|
||||
*/
|
||||
|
||||
void LaunchDOOM (void)
|
||||
{
|
||||
char *newargs[99];
|
||||
char adrstring[10];
|
||||
long flatadr;
|
||||
|
||||
// prepare for DOOM
|
||||
doomcom.id = DOOMCOM_ID;
|
||||
|
||||
// hook the interrupt vector
|
||||
olddoomvect = getvect (doomcom.intnum);
|
||||
setvect (doomcom.intnum,(void interrupt (*)(void))MK_FP(_CS,
|
||||
(int)NetISR));
|
||||
vectorishooked = 1;
|
||||
|
||||
// build the argument list for DOOM, adding a -net &doomcom
|
||||
memcpy (newargs, _argv, (_argc+1)*2);
|
||||
newargs[_argc] = "-net";
|
||||
flatadr = (long)_DS*16 + (unsigned)&doomcom;
|
||||
sprintf (adrstring,"%lu",flatadr);
|
||||
newargs[_argc+1] = adrstring;
|
||||
newargs[_argc+2] = NULL;
|
||||
|
||||
if (!access("doom2.exe",0))
|
||||
spawnv (P_WAIT, "doom2", newargs);
|
||||
else
|
||||
spawnv (P_WAIT, "doom", newargs);
|
||||
|
||||
#ifdef DOOM2
|
||||
printf (STR_RETURNED"\n");
|
||||
#else
|
||||
printf ("Returned from DOOM\n");
|
||||
#endif
|
||||
}
|
||||
Reference in New Issue
Block a user