Copy disabled (too large)
Download .txt
Showing preview only (29,627K chars total). Download the full file to get everything.
Repository: electronicarts/CnC_Red_Alert
Branch: main
Commit: 0dc09bb1d618
Files: 2066
Total size: 28.0 MB
Directory structure:
gitextract_rc2spqh1/
├── CODE/
│ ├── 2KEYFBUF.ASM
│ ├── 2KEYFRAM.CPP
│ ├── 2SUPPORT.ASM
│ ├── 2TXTPRNT.ASM
│ ├── AADATA.CPP
│ ├── ABSTRACT.CPP
│ ├── ABSTRACT.H
│ ├── ADAMTEMP.MAK
│ ├── ADATA.CPP
│ ├── ADPCM.CPP
│ ├── AIRCRAFT.CPP
│ ├── AIRCRAFT.H
│ ├── ALLOC.CPP
│ ├── ANIM.CPP
│ ├── ANIM.CPP.BAK
│ ├── ANIM.H
│ ├── AUDIO.CPP
│ ├── AUDIO.CPP.BAK
│ ├── AUDIO.H
│ ├── B64PIPE.CPP
│ ├── B64PIPE.H
│ ├── B64STRAW.CPP
│ ├── B64STRAW.H
│ ├── BAR.CPP
│ ├── BAR.H
│ ├── BASE.CPP
│ ├── BASE.H
│ ├── BASE64.CPP
│ ├── BASE64.H
│ ├── BBDATA.CPP
│ ├── BDATA.CPP
│ ├── BENCH.CPP
│ ├── BENCH.H
│ ├── BFILE.MAK
│ ├── BFILE2.MAK
│ ├── BFIOFILE.CPP
│ ├── BFIOFILE.H
│ ├── BIGCHECK.CPP
│ ├── BIGCHECK.H
│ ├── BLOWFISH.CPP
│ ├── BLOWFISH.H
│ ├── BLOWPIPE.CPP
│ ├── BLOWPIPE.H
│ ├── BLWSTRAW.CPP
│ ├── BLWSTRAW.H
│ ├── BMP8.CPP
│ ├── BMP8.H
│ ├── BUFF.CPP
│ ├── BUFF.H
│ ├── BUFFERX.H
│ ├── BUGS.TXT
│ ├── BUILDING.CPP
│ ├── BUILDING.H
│ ├── BULLET.CPP
│ ├── BULLET.H
│ ├── C&CZERO.PJT
│ ├── CARGO.CPP
│ ├── CARGO.H
│ ├── CARRY.CPP
│ ├── CARRY.H
│ ├── CCDDE.CPP
│ ├── CCDDE.H
│ ├── CCFILE.CPP
│ ├── CCFILE.H
│ ├── CCINI.CPP
│ ├── CCINI.H
│ ├── CCMPATH.CPP
│ ├── CCPTR.CPP
│ ├── CCPTR.H
│ ├── CCTEN.CPP
│ ├── CC_ICON.RC
│ ├── CC_ICON.RH
│ ├── CDATA.CPP
│ ├── CDFILE.CPP
│ ├── CDFILE.H
│ ├── CELL.CPP
│ ├── CELL.H
│ ├── CHECKBOX.CPP
│ ├── CHECKBOX.H
│ ├── CHEKLIST.CPP
│ ├── CHEKLIST.H
│ ├── CLASS.CPP
│ ├── CO-WC32.LNT
│ ├── COLRLIST.CPP
│ ├── COLRLIST.H
│ ├── COMBAT.CPP
│ ├── COMBUF.CPP
│ ├── COMBUF.H
│ ├── COMINIT.CPP
│ ├── COMINIT.H
│ ├── COMPAT.H
│ ├── COMQUEUE.CPP
│ ├── COMQUEUE.H
│ ├── CONFDLG.CPP
│ ├── CONFDLG.H
│ ├── CONNECT.CPP
│ ├── CONNECT.CPP.BAK
│ ├── CONNECT.H
│ ├── CONNMGR.H
│ ├── CONQUER.CPP
│ ├── CONQUER.CPP.BAK
│ ├── CONQUER.H
│ ├── CONQUER.IDE
│ ├── CONQUER.LNT
│ ├── CONST.CPP
│ ├── CONTROL.CPP
│ ├── CONTROL.H
│ ├── COORD.CPP
│ ├── COORDA.ASM
│ ├── CPUID.ASM
│ ├── CRATE.CPP
│ ├── CRATE.H
│ ├── CRC.CPP
│ ├── CRC.H
│ ├── CRCPIPE.CPP
│ ├── CRCPIPE.H
│ ├── CRCSTRAW.CPP
│ ├── CRCSTRAW.H
│ ├── CREDITS.CPP
│ ├── CREDITS.H
│ ├── CREW.CPP
│ ├── CREW.H
│ ├── CSTRAW.CPP
│ ├── CSTRAW.H
│ ├── CWSTUB.C
│ ├── DDE.CPP
│ ├── DDE.H
│ ├── DEBUG.CPP
│ ├── DEBUG.H
│ ├── DEFINES.H
│ ├── DESCDLG.CPP
│ ├── DESCDLG.H
│ ├── DIAL8.CPP
│ ├── DIAL8.H
│ ├── DIALOG.CPP
│ ├── DIBAPI.H
│ ├── DIBFILE.CPP
│ ├── DIBUTIL.CPP
│ ├── DIBUTIL.H
│ ├── DISPLAY.CPP
│ ├── DISPLAY.H
│ ├── DOOR.CPP
│ ├── DOOR.H
│ ├── DPMI.CPP
│ ├── DPMI.H
│ ├── DRIVE.CPP
│ ├── DRIVE.H
│ ├── DROP.CPP
│ ├── DROP.H
│ ├── DTABLE.CPP
│ ├── DYNAVEC.CPP
│ ├── EDIT.CPP
│ ├── EDIT.H
│ ├── EGOS.CPP
│ ├── EGOS.H
│ ├── ENDING.CPP
│ ├── ENDING.H
│ ├── ENG/
│ │ ├── CONQUER.BAK
│ │ ├── CONQUER.TXT
│ │ ├── CREDITS.BAK
│ │ ├── CREDITS.TXT
│ │ ├── DEBUG.BAK
│ │ ├── DEBUG.TXT
│ │ ├── ENG/
│ │ │ ├── CONQUER.TXT
│ │ │ └── CREDITS.TXT
│ │ ├── FRE/
│ │ │ ├── CONQUER.TXT
│ │ │ └── CREDITS.TXT
│ │ ├── GER/
│ │ │ ├── CONQUER.TXT
│ │ │ └── CREDITS.TXT
│ │ └── MESSAGE.TXT
│ ├── EVENT.CPP
│ ├── EVENT.H
│ ├── EXPAND.CPP
│ ├── EXTERNS.H
│ ├── FACE.CPP
│ ├── FACE.H
│ ├── FACING.CPP
│ ├── FACING.H
│ ├── FACTORY.CPP
│ ├── FACTORY.H
│ ├── FAKESOCK.H
│ ├── FIELD.CPP
│ ├── FIELD.H
│ ├── FILE.CPP
│ ├── FILEPCX.H
│ ├── FINDPATH.CPP
│ ├── FIXED.CPP
│ ├── FIXED.H
│ ├── FLASHER.CPP
│ ├── FLASHER.H
│ ├── FLY.CPP
│ ├── FLY.H
│ ├── FOOT.CPP
│ ├── FOOT.H
│ ├── FOREIGN.TXT
│ ├── FTIMER.H
│ ├── FUNCTION.H
│ ├── FUNCTION.I
│ ├── FUSE.CPP
│ ├── FUSE.H
│ ├── GADGET.CPP
│ ├── GADGET.H
│ ├── GAMEDLG.CPP
│ ├── GAMEDLG.H
│ ├── GAUGE.CPP
│ ├── GAUGE.H
│ ├── GETCPU.CPP
│ ├── GLOBALS.CPP
│ ├── GOPTIONS.CPP
│ ├── GOPTIONS.H
│ ├── GSCREEN.CPP
│ ├── GSCREEN.H
│ ├── HDATA.CPP
│ ├── HEADER.MAC
│ ├── HEAP.CPP
│ ├── HEAP.H
│ ├── HELP.CPP
│ ├── HELP.H
│ ├── HOUSE.CPP
│ ├── HOUSE.H
│ ├── HSV.CPP
│ ├── HSV.H
│ ├── ICONLIST.CPP
│ ├── ICONLIST.H
│ ├── IDATA.CPP
│ ├── INFANTRY.CPP
│ ├── INFANTRY.H
│ ├── INI.CPP
│ ├── INI.H
│ ├── INIBIN.CPP
│ ├── INICODE.CPP
│ ├── INIT.CPP
│ ├── INIT.CPP.BAK
│ ├── INLINE.H
│ ├── INT.CPP
│ ├── INT.H
│ ├── INTERNET.CPP
│ ├── INTERNET.H
│ ├── INTERPAL.CPP
│ ├── INTRO.CPP
│ ├── INTRO.H
│ ├── IOMAP.CPP
│ ├── IOOBJ.CPP
│ ├── IPX.CPP
│ ├── IPX.H
│ ├── IPX95.CPP
│ ├── IPX95.H
│ ├── IPXADDR.CPP
│ ├── IPXADDR.H
│ ├── IPXCONN.CPP
│ ├── IPXCONN.H
│ ├── IPXGCONN.CPP
│ ├── IPXGCONN.H
│ ├── IPXMGR.CPP
│ ├── IPXMGR.H
│ ├── IPXPROT.ASM
│ ├── IPXREAL.ASM
│ ├── ITABLE.CPP
│ ├── JOEMAKE.BAT
│ ├── JSHELL.CPP
│ ├── JSHELL.H
│ ├── KEY.CPP
│ ├── KEY.H
│ ├── KEYBOARD.CPP
│ ├── KEYBOARD.H
│ ├── KEYFBUFF.ASM
│ ├── KEYFBUFF.ASM.BAK
│ ├── KEYFRAME.CPP
│ ├── LANGUAGE.H
│ ├── LAYER.CPP
│ ├── LAYER.H
│ ├── LCW.CPP
│ ├── LCW.H
│ ├── LCWCOMP.ASM
│ ├── LCWPIPE.CPP
│ ├── LCWPIPE.H
│ ├── LCWSTRAW.CPP
│ ├── LCWSTRAW.H
│ ├── LCWUNCMP.CPP
│ ├── LED.H
│ ├── LIBRARY.TXT
│ ├── LINK.CPP
│ ├── LINK.H
│ ├── LINT.H
│ ├── LIST.CPP
│ ├── LIST.H
│ ├── LISTNODE.H
│ ├── LOADDLG.CPP
│ ├── LOADDLG.H
│ ├── LOGIC.CPP
│ ├── LOGIC.H
│ ├── LZO.H
│ ├── LZO1X.H
│ ├── LZO1X_C.CPP
│ ├── LZO1X_D.CPP
│ ├── LZOCONF.H
│ ├── LZOPIPE.CPP
│ ├── LZOPIPE.H
│ ├── LZOSTRAW.CPP
│ ├── LZOSTRAW.H
│ ├── LZO_CONF.H
│ ├── LZW.CPP
│ ├── LZW.H
│ ├── LZWOTRAW.CPP
│ ├── LZWPIPE.CPP
│ ├── LZWPIPE.H
│ ├── LZWSTRAW.CPP
│ ├── LZWSTRAW.H
│ ├── MAKEFILE
│ ├── MAKE_ALL.BAT
│ ├── MAP.CPP
│ ├── MAP.H
│ ├── MAPEDDLG.CPP
│ ├── MAPEDIT.CPP
│ ├── MAPEDIT.H
│ ├── MAPEDPLC.CPP
│ ├── MAPEDSEL.CPP
│ ├── MAPEDTM.CPP
│ ├── MAPSEL.CPP
│ ├── MCI.CPP
│ ├── MCI.H
│ ├── MCIMOVIE.CPP
│ ├── MCIMOVIE.H
│ ├── MEMCHECK.H
│ ├── MENUS.CPP
│ ├── MESSAGE.H
│ ├── MISSION.CPP
│ ├── MISSION.H
│ ├── MIXFILE.CPP
│ ├── MIXFILE.H
│ ├── MONOC.CPP
│ ├── MONOC.H
│ ├── MOUSE.CPP
│ ├── MOUSE.H
│ ├── MOVIE.H
│ ├── MP.CPP
│ ├── MP.H
│ ├── MPGSET.CPP
│ ├── MPGSET.H
│ ├── MPLAYER.CPP
│ ├── MPLIB.CPP
│ ├── MPLPC.CPP
│ ├── MPMGRD.CPP
│ ├── MPMGRD.H
│ ├── MPMGRW.CPP
│ ├── MPMGRW.H
│ ├── MPU.CPP
│ ├── MPU.H
│ ├── MSGBOX.CPP
│ ├── MSGBOX.CPP.BAK
│ ├── MSGBOX.H
│ ├── MSGLIST.CPP
│ ├── MSGLIST.H
│ ├── NETDLG.CPP
│ ├── NOSEQCON.CPP
│ ├── NOSEQCON.H
│ ├── NULLCONN.CPP
│ ├── NULLCONN.H
│ ├── NULLDLG.CPP
│ ├── NULLMGR.CPP
│ ├── NULLMGR.H
│ ├── NUMBER.CPP
│ ├── OBJECT.CPP
│ ├── OBJECT.H
│ ├── ODATA.CPP
│ ├── OPTIONS.CPP
│ ├── OPTIONS.H
│ ├── OPTIONS.LNT
│ ├── OVERLAY.CPP
│ ├── OVERLAY.H
│ ├── PACKET.CPP
│ ├── PACKET.H
│ ├── PIPE.CPP
│ ├── PIPE.H
│ ├── PK.CPP
│ ├── PK.H
│ ├── PKPIPE.CPP
│ ├── PKPIPE.H
│ ├── PKSTRAW.CPP
│ ├── PKSTRAW.H
│ ├── POWER.CPP
│ ├── POWER.H
│ ├── PROFILE.CPP
│ ├── PROFILE.DEF
│ ├── QUEUE.CPP
│ ├── QUEUE.H
│ ├── RA-HDOS.PJT
│ ├── RA-HOME.PJT
│ ├── RA95.PJT
│ ├── RADAR.CPP
│ ├── RADAR.H
│ ├── RADIO.CPP
│ ├── RADIO.H
│ ├── RADOS.PJT
│ ├── RAMFILE.CPP
│ ├── RAMFILE.H
│ ├── RAND.CPP
│ ├── RANDOM.CPP
│ ├── RANDOM.H
│ ├── RAWFILE.CPP
│ ├── RAWFILE.H
│ ├── RAWOLAPI.CPP
│ ├── RAWOLAPI.H
│ ├── READLINE.CPP
│ ├── READLINE.H
│ ├── RECT.CPP
│ ├── RECT.H
│ ├── REDALERT.IDE
│ ├── REGION.H
│ ├── REINF.CPP
│ ├── RGB.CPP
│ ├── RGB.H
│ ├── RNDSTRAW.CPP
│ ├── RNDSTRAW.H
│ ├── RNG.H
│ ├── ROTBMP.CPP
│ ├── ROTBMP.H
│ ├── RULES.CPP
│ ├── RULES.H
│ ├── RULES.MAK
│ ├── SAVEDLG.H
│ ├── SAVELOAD.CPP
│ ├── SCENARIO.CPP
│ ├── SCENARIO.H
│ ├── SCORE.CPP
│ ├── SCORE.H
│ ├── SCREEN.H
│ ├── SCROLL.CPP
│ ├── SCROLL.H
│ ├── SDATA.CPP
│ ├── SEARCH.H
│ ├── SEDITDLG.CPP
│ ├── SEDITDLG.H
│ ├── SENDFILE.CPP
│ ├── SEQCONN.CPP
│ ├── SEQCONN.H
│ ├── SESSION.CPP
│ ├── SESSION.H
│ ├── SHA.CPP
│ ├── SHA.H
│ ├── SHAPEBTN.CPP
│ ├── SHAPEBTN.H
│ ├── SHAPIPE.CPP
│ ├── SHAPIPE.H
│ ├── SHASTRAW.CPP
│ ├── SHASTRAW.H
│ ├── SIDEBAR.CPP
│ ├── SIDEBAR.H
│ ├── SLIDER.CPP
│ ├── SLIDER.H
│ ├── SMUDGE.CPP
│ ├── SMUDGE.H
│ ├── SOUNDDLG.CPP
│ ├── SOUNDDLG.H
│ ├── SPECIAL.CPP
│ ├── SPECIAL.H
│ ├── SPRITE.CPP
│ ├── STAGE.H
│ ├── STARTUP.CPP
│ ├── STATBTN.CPP
│ ├── STATBTN.H
│ ├── STATS.CPP
│ ├── STD.LNT
│ ├── STRAW.CPP
│ ├── STRAW.H
│ ├── STUB.CPP
│ ├── STUFF.TXT
│ ├── STYLE.H
│ ├── SUPER.CPP
│ ├── SUPER.H
│ ├── SUPPORT.ASM
│ ├── SURFACE.CPP
│ ├── SURFACE.H
│ ├── TAB.CPP
│ ├── TAB.H
│ ├── TACTION.CPP
│ ├── TACTION.H
│ ├── TARCOM.CPP
│ ├── TARCOM.H
│ ├── TARGET.CPP
│ ├── TARGET.H
│ ├── TASM.CFG
│ ├── TCPIP.CPP
│ ├── TCPIP.H
│ ├── TDATA.CPP
│ ├── TEAM.CPP
│ ├── TEAM.H
│ ├── TEAMTYPE.CPP
│ ├── TEAMTYPE.H
│ ├── TECHNO.CPP
│ ├── TECHNO.H
│ ├── TEMP.CPP
│ ├── TEMPLATE.CPP
│ ├── TEMPLATE.H
│ ├── TENMGR.CPP
│ ├── TENMGR.H
│ ├── TERRAIN.CPP
│ ├── TERRAIN.H
│ ├── TEVENT.CPP
│ ├── TEVENT.H
│ ├── TEXTBTN.CPP
│ ├── TEXTBTN.H
│ ├── THEME.CPP
│ ├── THEME.H
│ ├── TLINK.CFG
│ ├── TODO.TXT
│ ├── TOGGLE.CPP
│ ├── TOGGLE.H
│ ├── TOOLTIP.CPP
│ ├── TOOLTIP.H
│ ├── TRACKER.CPP
│ ├── TRIGGER.CPP
│ ├── TRIGGER.H
│ ├── TRIGTYPE.CPP
│ ├── TRIGTYPE.H
│ ├── TURBOC.CFG
│ ├── TURRET.CPP
│ ├── TURRET.H
│ ├── TXTLABEL.CPP
│ ├── TXTLABEL.H
│ ├── TXTPRNT.ASM
│ ├── TYPE.H
│ ├── UDATA.CPP
│ ├── UDPADDR.CPP
│ ├── UNIT.CPP
│ ├── UNIT.H
│ ├── UTRACKER.CPP
│ ├── UTRACKER.H
│ ├── VDATA.CPP
│ ├── VECTOR.CPP
│ ├── VECTOR.H
│ ├── VERSION.CPP
│ ├── VERSION.H
│ ├── VER_FUNC.TXT
│ ├── VESSEL.CPP
│ ├── VESSEL.H
│ ├── VISUDLG.CPP
│ ├── VISUDLG.H
│ ├── VORTEX.CPP
│ ├── VORTEX.H
│ ├── W95TRACE.CPP
│ ├── W95TRACE.H
│ ├── WARHEAD.CPP
│ ├── WARHEAD.H
│ ├── WATCOM.H
│ ├── WEAPON.CPP
│ ├── WEAPON.H
│ ├── WIDEFUNC.MAC
│ ├── WIDEHDR.MAC
│ ├── WINASM.ASM
│ ├── WINSTUB.CPP
│ ├── WOLAPI/
│ │ ├── CHATDEFS.H
│ │ ├── DOWNLOADDEFS.H
│ │ ├── FTPDEFS.H
│ │ ├── NETUTILDEFS.H
│ │ ├── WOLAPI.H
│ │ └── WOLAPI_I.C
│ ├── WOLAPIOB.CPP
│ ├── WOLAPIOB.H
│ ├── WOLDEBUG.H
│ ├── WOLEDIT.CPP
│ ├── WOLEDIT.H
│ ├── WOLSTRNG.CPP
│ ├── WOLSTRNG.H
│ ├── WOL_CGAM.CPP
│ ├── WOL_CHAT.CPP
│ ├── WOL_DNLD.CPP
│ ├── WOL_GSUP.CPP
│ ├── WOL_GSUP.H
│ ├── WOL_LOGN.CPP
│ ├── WOL_MAIN.CPP
│ ├── WOL_OPT.CPP
│ ├── WRITEPCX.CPP
│ ├── WSPIPX.CPP
│ ├── WSPIPX.H
│ ├── WSPROTO.CPP
│ ├── WSPROTO.H
│ ├── WSPUDP.CPP
│ ├── WSPUDP.H
│ ├── WWALLOC.H
│ ├── WWFILE.H
│ ├── XPIPE.CPP
│ ├── XPIPE.H
│ ├── XSTRAW.CPP
│ ├── XSTRAW.H
│ ├── _WSPROTO.CPP
│ └── _WSPROTO.H
├── IPX/
│ ├── FIXTHUNK.CPP
│ ├── IPX.RC
│ ├── IPX16.ASM
│ ├── IPX16.BAK
│ ├── IPX16.H
│ ├── IPX16A.ASM
│ ├── IPX16C.CPP
│ ├── IPXTEST.CPP
│ ├── MAKE.BAK
│ ├── MAKE.BAT
│ ├── MAKEFILE
│ ├── MAKETH16.BAK
│ ├── MAKETH16.BAT
│ ├── MAKETH32.BAK
│ ├── MAKETH32.BAT
│ ├── OK/
│ │ ├── FIXTHUNK.CPP
│ │ ├── IPX.RC
│ │ ├── IPX16.ASM
│ │ ├── IPX16.BAK
│ │ ├── IPX16.H
│ │ ├── IPX16A.ASM
│ │ ├── IPX16C.CPP
│ │ ├── IPXTEST.CPP
│ │ ├── MAKE.BAK
│ │ ├── MAKE.BAT
│ │ ├── MAKETH16.BAK
│ │ ├── MAKETH16.BAT
│ │ ├── MAKETH32.BAK
│ │ ├── MAKETH32.BAT
│ │ ├── OLTHIPX.ASM
│ │ ├── PCMACRO.16
│ │ ├── THIPX.ASM
│ │ ├── THIPX.BAK
│ │ ├── THIPX.THK
│ │ ├── THIPX16C.CPP
│ │ ├── THIPX32C.CPP
│ │ ├── THMAP16.ASM
│ │ ├── THMAP32.ASM
│ │ ├── WWIPX.ASM
│ │ └── WWIPX16.ASM
│ ├── OLD/
│ │ └── IPX16A.ASM
│ ├── OLTHIPX.ASM
│ ├── PCMACRO.16
│ ├── THIPX.ASM
│ ├── THIPX.BAK
│ ├── THIPX.THK
│ ├── THIPX16C.CPP
│ ├── THIPX32C.CPP
│ ├── THMAP16.ASM
│ ├── THMAP32.ASM
│ ├── WWIPX.ASM
│ └── WWIPX16.ASM
├── LAUNCH/
│ ├── LAUNCH.ASM
│ └── PCMACRO.16
├── LAUNCHER/
│ ├── 256BMP.C
│ ├── BITMAP.CPP
│ ├── CONFIGFILE.CPP
│ ├── CONFIGFILE.H
│ ├── DIALOG.CPP
│ ├── DIALOG.H
│ ├── DICTIONARY.H
│ ├── FILED.H
│ ├── FINDPATCH.CPP
│ ├── FINDPATCH.H
│ ├── LAUNCHER.DSP
│ ├── LAUNCHER.DSW
│ ├── LAUNCHER1.RC
│ ├── LOADBMP.CPP
│ ├── LOADBMP.H
│ ├── MAIN.CPP
│ ├── MONOD.CPP
│ ├── MONOD.H
│ ├── ODEVICE.H
│ ├── PATCH.CPP
│ ├── PATCH.H
│ ├── PROCESS.CPP
│ ├── PROCESS.H
│ ├── RESOURCE.H
│ ├── STREAMER.CPP
│ ├── STREAMER.H
│ ├── UTIL/
│ │ ├── FILED.H
│ │ ├── MBOXD.H
│ │ ├── MONOD.CPP
│ │ ├── MONOD.H
│ │ ├── ODEVICE.H
│ │ ├── STDERRD.H
│ │ ├── STDOUTD.H
│ │ ├── STREAMER.CPP
│ │ ├── STREAMER.H
│ │ ├── SYSLOGD.CPP
│ │ ├── SYSLOGD.H
│ │ ├── WDEBUG.CPP
│ │ └── WDEBUG.H
│ ├── WDEBUG.CPP
│ ├── WDEBUG.H
│ ├── WINBLOWS.CPP
│ ├── WINBLOWS.H
│ ├── WSTRING.CPP
│ ├── WSTRING.H
│ └── WSTYPES.H
├── LICENSE.md
├── README.md
├── TOOLS/
│ ├── ANIMATE.EXE.OLD
│ ├── AUDIOMAK/
│ │ ├── AUDIOMAK.CPP
│ │ ├── AUDIOMAK.PJT
│ │ ├── MAKEFILE
│ │ ├── SCODE.ASM
│ │ ├── TASM.CFG
│ │ ├── TLINK.CFG
│ │ └── TURBOC.CFG
│ └── MIX/
│ ├── MIXFILE.CPP
│ ├── MIXFILE.IDE
│ └── MIXFILE.IDE.BAK
├── VQ/
│ ├── INCLUDE/
│ │ ├── HMI32/
│ │ │ ├── SOS.H
│ │ │ ├── SOSDATA.H
│ │ │ ├── SOSDEFS.H
│ │ │ ├── SOSFNCT.H
│ │ │ └── SOSRES.H
│ │ ├── VOCFILE.H
│ │ ├── VQ.H
│ │ ├── VQA32/
│ │ │ ├── VQAFILE.H
│ │ │ ├── VQAPLAY.BAK
│ │ │ └── VQAPLAY.H
│ │ ├── VQM32/
│ │ │ ├── ALL.H
│ │ │ ├── CAPTOKEN.H
│ │ │ ├── COMPRESS.H
│ │ │ ├── CRC.H
│ │ │ ├── FONT.H
│ │ │ ├── GRAPHICS.H
│ │ │ ├── HUFFMAN.H
│ │ │ ├── IFF.H
│ │ │ ├── MEM.H
│ │ │ ├── MIXFILE.H
│ │ │ ├── MONO.H
│ │ │ ├── PALETTE.H
│ │ │ ├── PORTIO.H
│ │ │ ├── PROFILE.H
│ │ │ ├── REALMODE.H
│ │ │ ├── SOSCOMP.H
│ │ │ ├── TARGA.H
│ │ │ ├── TEXT.H
│ │ │ ├── VESABLIT.H
│ │ │ ├── VESAVID.H
│ │ │ ├── VESAVID.I
│ │ │ ├── VGA.I
│ │ │ ├── VIDEO.H
│ │ │ └── VIDEO.I
│ │ ├── WAVEFILE.H
│ │ ├── WWLIB32/
│ │ │ ├── AUDIO.H
│ │ │ ├── BUFFER.H
│ │ │ ├── DESCMGMT.H
│ │ │ ├── DIPTHONG.H
│ │ │ ├── FILE.H
│ │ │ ├── FILETEMP.H
│ │ │ ├── FONT.H
│ │ │ ├── FUNCTION.H
│ │ │ ├── GBUFFER.H
│ │ │ ├── GBUFFER.INC
│ │ │ ├── IFF.H
│ │ │ ├── KEYBOARD.H
│ │ │ ├── KEYBOARD.INC
│ │ │ ├── KEYSTRUC.INC
│ │ │ ├── MCGAPRIM.H
│ │ │ ├── MCGAPRIM.INC
│ │ │ ├── MEMFLAG.H
│ │ │ ├── MISC.H
│ │ │ ├── MONO.H
│ │ │ ├── PALETTE.H
│ │ │ ├── PLAYCD.H
│ │ │ ├── SHAPE.H
│ │ │ ├── SHAPE.INC
│ │ │ ├── SOS.H
│ │ │ ├── SOSCOMP.H
│ │ │ ├── SOSDATA.H
│ │ │ ├── SOSDEFS.H
│ │ │ ├── SOSFNCT.H
│ │ │ ├── SOSRES.H
│ │ │ ├── SOUND.H
│ │ │ ├── STAMP.INC
│ │ │ ├── SVGAPRIM.INC
│ │ │ ├── TILE.H
│ │ │ ├── TIMER.H
│ │ │ ├── VBUFFER.H
│ │ │ ├── VIDEO.H
│ │ │ ├── WINDOWS.H
│ │ │ ├── WSA.H
│ │ │ ├── WWLIB32.H
│ │ │ ├── WWMEM.H
│ │ │ ├── WWMEM.INC
│ │ │ ├── WWSTD.H
│ │ │ └── _FILE.H
│ │ └── WWTYPES.H
│ ├── LIB/
│ │ └── README.TXT
│ ├── VQA32/
│ │ ├── AUDIO.BAK1
│ │ ├── AUDIO.BAK2
│ │ ├── AUDIO.CPP
│ │ ├── BCC32.CFG
│ │ ├── CAPTION.CPP
│ │ ├── CAPTION.H
│ │ ├── CONFIG.CPP
│ │ ├── DRAWER.BAK
│ │ ├── DRAWER.CPP
│ │ ├── DSTREAM.CPP
│ │ ├── LOADER.BAK
│ │ ├── LOADER.CPP
│ │ ├── MAKEFILE
│ │ ├── MAKEFILE.BAK
│ │ ├── MAKEFILE.BOR
│ │ ├── MAKEFILE.WAT
│ │ ├── MONODISP.BAK
│ │ ├── MONODISP.CPP
│ │ ├── SOS.H
│ │ ├── SOSDATA.H
│ │ ├── SOSDEFS.H
│ │ ├── SOSFNCT.H
│ │ ├── SOSRES.H
│ │ ├── TASK.CPP
│ │ ├── TASM32.CFG
│ │ ├── TLIB.CFG
│ │ ├── TLINK32.CFG
│ │ ├── UNVQ.H
│ │ ├── UNVQBUFF.ASM
│ │ ├── UNVQVESA.ASM
│ │ ├── UNVQXMDE.ASM
│ │ ├── UNVQXMDE.ASM.BAK
│ │ ├── VERTAG.CPP
│ │ ├── VQAFILE.H
│ │ ├── VQAPLAY.BAK
│ │ ├── VQAPLAY.H
│ │ ├── VQAPLAY.I
│ │ └── VQAPLAYP.H
│ └── VQM32/
│ ├── ALL.H
│ ├── AUDUNZAP.ASM
│ ├── AUDZAP.CPP
│ ├── BCC32.CFG
│ ├── CAPTOKEN.CPP
│ ├── CAPTOKEN.H
│ ├── CHRWIDTH.CPP
│ ├── COMPRESS.H
│ ├── CRC.ASM
│ ├── CRC.H
│ ├── DRAWCHAR.ASM
│ ├── FILLRECT.ASM
│ ├── FONT.CPP
│ ├── FONT.H
│ ├── GRAPHICS.H
│ ├── HUFFCMP.CPP
│ ├── HUFFDCMP.ASM
│ ├── HUFFMAN.H
│ ├── IFF.CPP
│ ├── IFF.H
│ ├── LCWCOMP.ASM
│ ├── LCWUNCMP.ASM
│ ├── MAKEFILE
│ ├── MAKEFILE.BAK
│ ├── MAKEFILE.BOR
│ ├── MAKEFILE.WAT
│ ├── MCGABUF.ASM
│ ├── MEM.CPP
│ ├── MEM.H
│ ├── MIXFILE.CPP
│ ├── MIXFILE.H
│ ├── MONO.ASM
│ ├── MONO.H
│ ├── PALETTE.ASM
│ ├── PALETTE.H
│ ├── PORTIO.ASM
│ ├── PORTIO.H
│ ├── PROFILE.CPP
│ ├── PROFILE.H
│ ├── REALMODE.H
│ ├── SORTPAL.CPP
│ ├── SOSCODEC.ASM
│ ├── SOSCOMP.H
│ ├── TARGA.CPP
│ ├── TARGA.H
│ ├── TASM32.CFG
│ ├── TESTVB.CPP
│ ├── TEXT.H
│ ├── TEXTPRNT.ASM
│ ├── TLIB.CFG
│ ├── TLINK32.CFG
│ ├── VB.ASM
│ ├── VERTAG.CPP
│ ├── VESABLIT.CPP
│ ├── VESABLIT.H
│ ├── VESABUF.ASM
│ ├── VESAVID.CPP
│ ├── VESAVID.H
│ ├── VESAVID.I
│ ├── VGA.I
│ ├── VIDEO.CPP
│ ├── VIDEO.H
│ ├── VIDEO.I
│ ├── XMODE.ASM
│ └── XMODEPG.CPP
├── WIN32LIB/
│ ├── AUDIO/
│ │ ├── AUDIO.H
│ │ ├── AUDIO.IDE
│ │ ├── AUDUNCMP.ASM
│ │ ├── DIFFTB.INC
│ │ ├── FUNCTION.H
│ │ ├── INDEXTB.INC
│ │ ├── MAKEFILE
│ │ ├── MAKEFILE.BOR
│ │ ├── NYBBTB.INC
│ │ ├── OLD/
│ │ │ ├── AUDIO.H
│ │ │ ├── AUDIO.IDE
│ │ │ ├── AUDUNCMP.ASM
│ │ │ ├── DIFFTB.INC
│ │ │ ├── FUNCTION.H
│ │ │ ├── INDEXTB.INC
│ │ │ ├── MAKEFILE
│ │ │ ├── MAKEFILE.BOR
│ │ │ ├── MAKEFILE.WAT
│ │ │ ├── NYBBTB.INC
│ │ │ ├── OLSOSDEC.ASM
│ │ │ ├── SOS.H
│ │ │ ├── SOSCODEC.ASM
│ │ │ ├── SOSCOMP.H
│ │ │ ├── SOSDATA.H
│ │ │ ├── SOSDEFS.H
│ │ │ ├── SOSFNCT.H
│ │ │ ├── SOSRES.H
│ │ │ ├── SOUND.H
│ │ │ ├── SOUNDINT.CPP
│ │ │ ├── SOUNDINT.H
│ │ │ ├── SOUNDIO.CPP
│ │ │ ├── SOUNDLCK.CPP
│ │ │ ├── TEST.CPP
│ │ │ └── TST.CPP
│ │ ├── OLSOSDEC.ASM
│ │ ├── SOS.H
│ │ ├── SOSCODEC.ASM
│ │ ├── SOSCOMP.H
│ │ ├── SOSDATA.H
│ │ ├── SOSDEFS.H
│ │ ├── SOSFNCT.H
│ │ ├── SOSRES.H
│ │ ├── SOUND.H
│ │ ├── SOUNDINT.CPP
│ │ ├── SOUNDINT.H
│ │ ├── SOUNDIO.CPP
│ │ ├── SOUNDLCK.CPP
│ │ ├── TEST.CPP
│ │ └── TST.CPP
│ ├── DIPTHONG/
│ │ ├── DIPTHONG.CPP
│ │ ├── DIPTHONG.H
│ │ ├── MAKEFILE
│ │ ├── MAKEFILE.BOR
│ │ ├── MAKEFILE.WAT
│ │ └── _DIPTABL.CPP
│ ├── DRAWBUFF/
│ │ ├── BITBLIT.ASM
│ │ ├── BUFFER.CPP
│ │ ├── BUFFER.H
│ │ ├── BUFFGLBL.CPP
│ │ ├── CLEAR.ASM
│ │ ├── DRAWBUFF.H
│ │ ├── DRAWBUFF.INC
│ │ ├── DRAWLINE.ASM
│ │ ├── DRAWRECT.CPP
│ │ ├── FILLQUAD.ASM
│ │ ├── FILLRECT.ASM
│ │ ├── FTPUTPIX.ASM
│ │ ├── GBUFFER.CPP
│ │ ├── GBUFFER.H
│ │ ├── GBUFFER.INC
│ │ ├── GETCLIP.ASM
│ │ ├── GETPIX.ASM
│ │ ├── ICONCACH.CPP
│ │ ├── ICONCACH.H
│ │ ├── MAKEFILE
│ │ ├── MAKEFILE.BOR
│ │ ├── PUTPIX.ASM
│ │ ├── REGIONSZ.CPP
│ │ ├── REMAP.ASM
│ │ ├── SCALE.ASM
│ │ ├── SHADOW.ASM
│ │ ├── STAMP.ASM
│ │ ├── STAMP.INC
│ │ ├── STMPCACH.ASM
│ │ ├── SZREGION.ASM
│ │ ├── TEST/
│ │ │ ├── HOLD.DEF
│ │ │ ├── MAKEFILE
│ │ │ ├── MAKEFILE.BOR
│ │ │ ├── MAKEFILE.WAT
│ │ │ ├── TEST/
│ │ │ │ └── TEST.CPP
│ │ │ ├── TEST.BAK
│ │ │ ├── TEST.CPP
│ │ │ ├── TEST.DEF
│ │ │ └── TESTASM.ASM
│ │ ├── TOBUFF.ASM
│ │ ├── TOPAGE.ASM
│ │ └── TXTPRNT.ASM
│ ├── EXAMPLE/
│ │ ├── DEFINES.H
│ │ ├── EXTERNS.H
│ │ ├── FUNCTION.H
│ │ ├── GLOBALS.CPP
│ │ ├── MAIN.CPP
│ │ ├── MAKEFILE
│ │ ├── MAKEFILE.BOR
│ │ ├── MAKEFILE.WAT
│ │ ├── STARTUP.CPP
│ │ ├── STRUCTS.H
│ │ └── WWLIB32.H
│ ├── FONT/
│ │ ├── FONT.CPP
│ │ ├── FONT.H
│ │ ├── LOADFONT.CPP
│ │ ├── MAKEFILE
│ │ ├── MAKEFILE.BOR
│ │ ├── SETFPAL.ASM
│ │ ├── SET_FONT.CPP
│ │ └── TEXTPRNT.ASM
│ ├── IFF/
│ │ ├── FILEPCX.H
│ │ ├── IFF.CPP
│ │ ├── IFF.H
│ │ ├── LCWCOMP.ASM
│ │ ├── LCWUNCMP.ASM
│ │ ├── LOAD.CPP
│ │ ├── LOADPCX.CPP
│ │ ├── LOADPICT.CPP
│ │ ├── MAKEFILE
│ │ ├── MAKEFILE.BOR
│ │ ├── MAKEFILE.WAT
│ │ ├── PACK2PLN.ASM
│ │ ├── WRITELBM.CPP
│ │ └── WRITEPCX.CPP
│ ├── INCLUDE/
│ │ ├── AUDIO.H
│ │ ├── BUFFER.H
│ │ ├── DEFINES.H
│ │ ├── DESCMGMT.H
│ │ ├── DIFFTB.INC
│ │ ├── DIPTHONG.H
│ │ ├── DRAWBUFF.H
│ │ ├── DRAWBUFF.INC
│ │ ├── EXTERNS.H
│ │ ├── FILE.H
│ │ ├── FILEPCX.H
│ │ ├── FILETEMP.H
│ │ ├── FONT.H
│ │ ├── FUNCTION.H
│ │ ├── GBUFFER.H
│ │ ├── GBUFFER.INC
│ │ ├── ICONCACH.H
│ │ ├── IFF.H
│ │ ├── INDEXTB.INC
│ │ ├── KEYBOARD.H
│ │ ├── KEYBOARD.INC
│ │ ├── KEYSTRUC.INC
│ │ ├── MCGAPRIM.INC
│ │ ├── MEMFLAG.H
│ │ ├── MISC.H
│ │ ├── MODEMREG.H
│ │ ├── MONO.H
│ │ ├── MOUSE.H
│ │ ├── MOUSE.INC
│ │ ├── NYBBTB.INC
│ │ ├── PALETTE.H
│ │ ├── PLAYCD.H
│ │ ├── PROFILE.H
│ │ ├── PROFILE.INC
│ │ ├── RAWFILE.H
│ │ ├── SHAPE.H
│ │ ├── SHAPE.INC
│ │ ├── SOS.H
│ │ ├── SOSCOMP.H
│ │ ├── SOSDATA.H
│ │ ├── SOSDEFS.H
│ │ ├── SOSFNCT.H
│ │ ├── SOSRES.H
│ │ ├── SOUND.H
│ │ ├── SOUNDINT.H
│ │ ├── STAMP.INC
│ │ ├── STRUCTS.H
│ │ ├── SVGAPRIM.INC
│ │ ├── TILE.H
│ │ ├── TIMER.H
│ │ ├── VIDEO.H
│ │ ├── WINCOMM.H
│ │ ├── WSA.H
│ │ ├── WWFILE.H
│ │ ├── WWLIB32.H
│ │ ├── WWMEM.H
│ │ ├── WWMEM.INC
│ │ ├── WWSTD.H
│ │ ├── WW_WIN.H
│ │ └── _FILE.H
│ ├── KEYBOARD/
│ │ ├── KEYBOARD.CPP
│ │ ├── KEYBOARD.H
│ │ ├── MAKEFILE
│ │ ├── MAKEFILE.BOR
│ │ ├── MAKEFILE.WAT
│ │ ├── MOUSE.CPP
│ │ ├── MOUSE.H
│ │ ├── MOUSE.INC
│ │ ├── OLD/
│ │ │ ├── KEYBOARD.ASM
│ │ │ ├── KEYBOARD.BAK
│ │ │ ├── KEYBOARD.CPP
│ │ │ ├── KEYBOARD.H
│ │ │ ├── KEYBOARD.INC
│ │ │ ├── KEYIPROT.ASM
│ │ │ ├── KEYIREAL.ASM
│ │ │ ├── KEYIREAL.IBN
│ │ │ ├── KEYSTRUC.INC
│ │ │ ├── MAKEFILE
│ │ │ ├── MAKEFILE.BAK
│ │ │ ├── MAKEFILE.BOR
│ │ │ ├── MAKEFILE.WAT
│ │ │ ├── MOUSE.ASM
│ │ │ ├── MOUSE.CPP
│ │ │ ├── MOUSE.CPP.BAK
│ │ │ ├── MOUSE.H
│ │ │ ├── MOUSE.INC
│ │ │ ├── PAGFAULT.ASM
│ │ │ ├── WWMOUSE.ASM
│ │ │ └── WWMOUSE.ASM.BAK
│ │ ├── OLDTEST/
│ │ │ ├── KEYBOARD.CPP
│ │ │ ├── KEYBOARD.H
│ │ │ ├── MAKEFILE
│ │ │ ├── MAKEFILE.BOR
│ │ │ ├── MAKEFILE.WAT
│ │ │ ├── TEST.CPP
│ │ │ └── TEST.DEF
│ │ ├── TEST/
│ │ │ ├── HOLD.DEF
│ │ │ ├── KEYBOARD.CPP
│ │ │ ├── KEYBOARD.H
│ │ │ ├── MAKEFILE
│ │ │ ├── MAKEFILE.BOR
│ │ │ ├── MAKEFILE.WAT
│ │ │ ├── TEST.CPP
│ │ │ ├── TEST.DEF
│ │ │ └── TESTASM.ASM
│ │ └── WWMOUSE.ASM
│ ├── MAKE.BAT
│ ├── MAKEFILE
│ ├── MAKEFILE.BOR
│ ├── MAKE_EXE.MAK
│ ├── MAKE_LIB.MAK
│ ├── MEM/
│ │ ├── ALLOC.CPP
│ │ ├── MAKEFILE
│ │ ├── MAKEFILE.BOR
│ │ ├── MAKEFILE.WAT
│ │ ├── MEM.CPP
│ │ ├── MEMFLAG.H
│ │ ├── MEM_COPY.ASM
│ │ ├── MSVC/
│ │ │ ├── ALLOC.CPP
│ │ │ ├── MAKEFILE
│ │ │ ├── MAKEFILE.BOR
│ │ │ ├── MAKEFILE.WAT
│ │ │ ├── MEM.CPP
│ │ │ ├── MEM.MAK
│ │ │ ├── MEMFLAG.H
│ │ │ ├── MEM_COPY.ASM
│ │ │ ├── NEWDEL.CPP
│ │ │ ├── WWMEM.H
│ │ │ └── WWMEM.INC
│ │ ├── NEWDEL.CPP
│ │ ├── OLDMEM/
│ │ │ ├── ALLOC.CPP
│ │ │ ├── MAKEFILE
│ │ │ ├── MAKEFILE.BOR
│ │ │ ├── MAKEFILE.WAT
│ │ │ ├── MEM.CPP
│ │ │ ├── MEMFLAG.H
│ │ │ ├── MEM_COPY.ASM
│ │ │ ├── NEWDEL.CPP
│ │ │ ├── WWMEM.H
│ │ │ └── WWMEM.INC
│ │ ├── VMPAGEIN.ASM
│ │ ├── WWMEM.H
│ │ └── WWMEM.INC
│ ├── MISC/
│ │ ├── CLIPRECT.ASM
│ │ ├── CRC.ASM
│ │ ├── DDRAW.CPP
│ │ ├── DELAY.CPP
│ │ ├── DETPROC.ASM
│ │ ├── EXIT.CPP
│ │ ├── FACING16.ASM
│ │ ├── FACING8.ASM
│ │ ├── FACINGFF.ASM
│ │ ├── FADING.ASM
│ │ ├── FINDARGV.CPP
│ │ ├── IRANDOM.CPP
│ │ ├── LIB.CPP
│ │ ├── MAKEFILE
│ │ ├── MAKEFILE.BOR
│ │ ├── MAKEFILE.WAT
│ │ ├── MISC.H
│ │ ├── OPSYS.ASM
│ │ ├── RANDOM.ASM
│ │ ├── REVERSE.ASM
│ │ ├── SHAKESCR.ASM
│ │ ├── VERSION.CPP
│ │ ├── WWLIB32.H
│ │ └── WWSTD.H
│ ├── MONO/
│ │ ├── MAKEFILE
│ │ ├── MAKEFILE.BOR
│ │ ├── MAKEFILE.WAT
│ │ ├── MONO.CPP
│ │ └── MONO.H
│ ├── MOVIE/
│ │ ├── MAKE.BAT
│ │ ├── MAKEFILE
│ │ ├── MOVIE.CPP
│ │ └── MOVIE.H
│ ├── PALETTE/
│ │ ├── LOADPAL.CPP
│ │ ├── MAKEFILE
│ │ ├── MAKEFILE.BOR
│ │ ├── MORPHPAL.CPP
│ │ ├── PAL.ASM
│ │ ├── PALETTE.CPP
│ │ └── PALETTE.H
│ ├── PLAYCD/
│ │ ├── GETCD.CPP
│ │ ├── MAKEFILE
│ │ ├── MAKEFILE.BOR
│ │ ├── MAKEFILE.WAT
│ │ ├── PLAYCD.ASM
│ │ ├── PLAYCD.H
│ │ └── REDBOOK.CPP
│ ├── PROFILE/
│ │ ├── APROFILE.ASM
│ │ ├── MAKEFILE
│ │ ├── PROFILE.CPP
│ │ ├── PROFILE.H
│ │ ├── PROFILE.INC
│ │ ├── UTIL/
│ │ │ └── PROFILE.CPP
│ │ └── WPROFILE.CPP
│ ├── PROJECT.CFG
│ ├── RAWFILE/
│ │ ├── CCFILE.CPP
│ │ ├── FILE.H
│ │ ├── FILETEMP.H
│ │ ├── MAKEFILE
│ │ ├── MAKEFILE.BOR
│ │ ├── MAKEFILE.WAT
│ │ ├── RAWFILE.CPP
│ │ ├── RAWFILE.H
│ │ └── WWFILE.H
│ ├── REBUILD.BAT
│ ├── SHAPE/
│ │ ├── DRAWSHP.ASM
│ │ ├── DS_DN.ASM
│ │ ├── DS_DR.ASM
│ │ ├── DS_DS.ASM
│ │ ├── DS_DSR.ASM
│ │ ├── DS_LRS.ASM
│ │ ├── DS_LS.ASM
│ │ ├── DS_LSRS.ASM
│ │ ├── DS_LSS.ASM
│ │ ├── DS_RRS.ASM
│ │ ├── DS_RS.ASM
│ │ ├── DS_RSRS.ASM
│ │ ├── DS_RSS.ASM
│ │ ├── DS_TABLE.ASM
│ │ ├── GETSHAPE.CPP
│ │ ├── MAKEFILE
│ │ ├── MAKEFILE.BOR
│ │ ├── MAKEFILE.WAT
│ │ ├── PRIOINIT.CPP
│ │ ├── SETSHAPE.ASM
│ │ ├── SHAPE.ASM
│ │ ├── SHAPE.H
│ │ └── SHAPE.INC
│ ├── SRCDEBUG/
│ │ ├── ALLOC.CPP
│ │ ├── APROFILE.ASM
│ │ ├── AUDUNCMP.ASM
│ │ ├── BITBLIT.ASM
│ │ ├── BUFFER.CPP
│ │ ├── BUFFGLBL.CPP
│ │ ├── CCFILE.CPP
│ │ ├── CLEAR.ASM
│ │ ├── CLIPRECT.ASM
│ │ ├── CRC.ASM
│ │ ├── DDRAW.CPP
│ │ ├── DELAY.CPP
│ │ ├── DESCMGMT.CPP
│ │ ├── DETPROC.ASM
│ │ ├── DEVICES.ASM
│ │ ├── DEVTABLE.ASM
│ │ ├── DIPTHONG.CPP
│ │ ├── DRAWLINE.ASM
│ │ ├── DRAWRECT.CPP
│ │ ├── DRAWSHP.ASM
│ │ ├── DS_DN.ASM
│ │ ├── DS_DR.ASM
│ │ ├── DS_DS.ASM
│ │ ├── DS_DSR.ASM
│ │ ├── DS_LRS.ASM
│ │ ├── DS_LS.ASM
│ │ ├── DS_LSRS.ASM
│ │ ├── DS_LSS.ASM
│ │ ├── DS_RRS.ASM
│ │ ├── DS_RS.ASM
│ │ ├── DS_RSRS.ASM
│ │ ├── DS_RSS.ASM
│ │ ├── DS_TABLE.ASM
│ │ ├── EXIT.CPP
│ │ ├── FACING16.ASM
│ │ ├── FACING8.ASM
│ │ ├── FACINGFF.ASM
│ │ ├── FADING.ASM
│ │ ├── FFIRST.ASM
│ │ ├── FFIXSEL.ASM
│ │ ├── FGETCS.ASM
│ │ ├── FGETDS.ASM
│ │ ├── FGETSEL.ASM
│ │ ├── FGLOB2.CPP
│ │ ├── FILE.CPP
│ │ ├── FILECACH.CPP
│ │ ├── FILECHNG.CPP
│ │ ├── FILEDATA.CPP
│ │ ├── FILEGLOB.CPP
│ │ ├── FILEINFO.CPP
│ │ ├── FILEINIT.CPP
│ │ ├── FILEIO.CPP
│ │ ├── FILELIB.CPP
│ │ ├── FILESTUB.CPP
│ │ ├── FILLQUAD.ASM
│ │ ├── FILLRECT.ASM
│ │ ├── FINDARGV.CPP
│ │ ├── FINDFILE.CPP
│ │ ├── FONT.CPP
│ │ ├── FTPUTPIX.ASM
│ │ ├── GBUFFER.CPP
│ │ ├── GETCD.CPP
│ │ ├── GETCLIP.ASM
│ │ ├── GETPIX.ASM
│ │ ├── GETSHAPE.CPP
│ │ ├── HARDERR.ASM
│ │ ├── ICONCACH.CPP
│ │ ├── ICONSET.CPP
│ │ ├── IFF.CPP
│ │ ├── INITDLAY.CPP
│ │ ├── INITMONO.CPP
│ │ ├── IRANDOM.CPP
│ │ ├── KEYBOARD.ASM
│ │ ├── KEYBOARD.CPP
│ │ ├── KEYIPROT.ASM
│ │ ├── KEYIREAL.ASM
│ │ ├── LCWCOMP.ASM
│ │ ├── LCWUNCMP.ASM
│ │ ├── LIB.CPP
│ │ ├── LOAD.CPP
│ │ ├── LOADFONT.CPP
│ │ ├── LOADPAL.CPP
│ │ ├── LOADPCX.CPP
│ │ ├── LOADPICT.CPP
│ │ ├── MEM.CPP
│ │ ├── MEM_COPY.ASM
│ │ ├── MODEMREG.CPP
│ │ ├── MONO.ASM
│ │ ├── MONO.CPP
│ │ ├── MONOPRNT.CPP
│ │ ├── MORPHPAL.CPP
│ │ ├── MOUSE.ASM
│ │ ├── MOUSE.CPP
│ │ ├── NEWDEL.CPP
│ │ ├── OLSOSDEC.ASM
│ │ ├── OPSYS.ASM
│ │ ├── PACK2PLN.ASM
│ │ ├── PAGFAULT.ASM
│ │ ├── PAL.ASM
│ │ ├── PALETTE.CPP
│ │ ├── PLAYCD.ASM
│ │ ├── PRIOINIT.CPP
│ │ ├── PROFILE.CPP
│ │ ├── PUTPIX.ASM
│ │ ├── RANDOM.ASM
│ │ ├── RAWFILE.CPP
│ │ ├── REDBOOK.CPP
│ │ ├── REGIONSZ.CPP
│ │ ├── REMAP.ASM
│ │ ├── REVERSE.ASM
│ │ ├── SCALE.ASM
│ │ ├── SETFPAL.ASM
│ │ ├── SETSHAPE.ASM
│ │ ├── SET_FONT.CPP
│ │ ├── SHADOW.ASM
│ │ ├── SHAKESCR.ASM
│ │ ├── SHAPE.ASM
│ │ ├── SOSCODEC.ASM
│ │ ├── SOUNDINT.CPP
│ │ ├── SOUNDIO.CPP
│ │ ├── SOUNDLCK.CPP
│ │ ├── STAMP.ASM
│ │ ├── STMPCACH.ASM
│ │ ├── SZREGION.ASM
│ │ ├── TEST.CPP
│ │ ├── TEXTPRNT.ASM
│ │ ├── TIMER.CPP
│ │ ├── TIMERA.ASM
│ │ ├── TIMERDWN.CPP
│ │ ├── TIMEREAL.ASM
│ │ ├── TIMERINI.CPP
│ │ ├── TOBUFF.ASM
│ │ ├── TOPAGE.ASM
│ │ ├── TST.CPP
│ │ ├── TXTPRNT.ASM
│ │ ├── VBITBLIT.ASM
│ │ ├── VBUFFER.CPP
│ │ ├── VCLEAR.ASM
│ │ ├── VERSION.CPP
│ │ ├── VERTBLNK.ASM
│ │ ├── VESA.ASM
│ │ ├── VESAHOOK.ASM
│ │ ├── VESAINFO.CPP
│ │ ├── VESAREAL.ASM
│ │ ├── VGETPIX.ASM
│ │ ├── VIDEO.CPP
│ │ ├── VLBTOVE.ASM
│ │ ├── VMPAGEIN.ASM
│ │ ├── VPUTPIX.ASM
│ │ ├── VSCALE.ASM
│ │ ├── VSCALE.CPP
│ │ ├── VSCLTOVE.ASM
│ │ ├── VTOBUFF.ASM
│ │ ├── VTOPAGE.ASM
│ │ ├── VTXTPRNT.ASM
│ │ ├── VVBLIT.ASM
│ │ ├── VVETOLB.ASM
│ │ ├── VVETOSCL.ASM
│ │ ├── VVETOSCL.CPP
│ │ ├── WINCOMM.CPP
│ │ ├── WINDOWS.CPP
│ │ ├── WINHIDE.CPP
│ │ ├── WPROFILE.CPP
│ │ ├── WRITELBM.CPP
│ │ ├── WRITEPCX.CPP
│ │ ├── WSA.CPP
│ │ ├── WWMOUSE.ASM
│ │ ├── XORDELTA.ASM
│ │ └── _DIPTABL.CPP
│ ├── TILE/
│ │ ├── ICONSET.CPP
│ │ ├── MAKEFILE
│ │ ├── MAKEFILE.BOR
│ │ ├── MAKEFILE.WAT
│ │ └── TILE.H
│ ├── TIMER/
│ │ ├── MAKEFILE
│ │ ├── MAKEFILE.BOR
│ │ ├── MAKEFILE.WAT
│ │ ├── TIMER.CPP
│ │ ├── TIMER.H
│ │ ├── TIMER.IDE
│ │ ├── TIMERDWN.CPP
│ │ └── TIMERINI.CPP
│ ├── WINCOMM/
│ │ ├── MAKEFILE
│ │ ├── MODEMREG.CPP
│ │ ├── MODEMREG.H
│ │ ├── WINCOMM.CPP
│ │ └── WINCOMM.H
│ ├── WSA/
│ │ ├── MAKEFILE
│ │ ├── MAKEFILE.BOR
│ │ ├── MAKEFILE.WAT
│ │ ├── WSA.CPP
│ │ ├── WSA.H
│ │ └── XORDELTA.ASM
│ └── WW_WIN/
│ ├── MAKEFILE
│ ├── MAKEFILE.BOR
│ ├── MAKEFILE.WAT
│ ├── OLD/
│ │ ├── MAKEFILE
│ │ ├── MAKEFILE.BOR
│ │ ├── MAKEFILE.WAT
│ │ ├── WINDOWS.CPP
│ │ ├── WINHIDE.CPP
│ │ └── WW_WIN.H
│ ├── WINDOWS.CPP
│ ├── WINHIDE.CPP
│ ├── WW_WIN.H
│ ├── WW_WIN.IDE
│ └── WW_WIN.IDE.BAK
├── WINVQ/
│ ├── INCLUDE/
│ │ ├── VOCFILE.H
│ │ ├── VQ.H
│ │ ├── VQA32/
│ │ │ ├── CAPTION.H
│ │ │ ├── SOS.H
│ │ │ ├── SOSDATA.H
│ │ │ ├── SOSDEFS.H
│ │ │ ├── SOSFNCT.H
│ │ │ ├── SOSRES.H
│ │ │ ├── UNVQ.H
│ │ │ ├── VQAFILE.H
│ │ │ ├── VQAPLAY.H
│ │ │ ├── VQAPLAY.H.BAK
│ │ │ └── VQAPLAYP.H
│ │ ├── VQFILE.H
│ │ ├── VQM32/
│ │ │ ├── ALL.H
│ │ │ ├── CAPTOKEN.H
│ │ │ ├── COMPRESS.H
│ │ │ ├── CRC.H
│ │ │ ├── FONT.H
│ │ │ ├── GRAPHICS.H
│ │ │ ├── HUFFMAN.H
│ │ │ ├── IFF.H
│ │ │ ├── MEM.H
│ │ │ ├── MIXFILE.H
│ │ │ ├── MONO.H
│ │ │ ├── PALETTE.H
│ │ │ ├── PORTIO.H
│ │ │ ├── PROFILE.H
│ │ │ ├── REALMODE.H
│ │ │ ├── SOSCOMP.H
│ │ │ ├── TARGA.H
│ │ │ ├── TEXT.H
│ │ │ ├── VESABLIT.H
│ │ │ ├── VESAVID.H
│ │ │ ├── VESAVID.I
│ │ │ ├── VGA.I
│ │ │ ├── VIDEO.H
│ │ │ └── VIDEO.I
│ │ ├── WAVEFILE.H
│ │ └── WWTYPES.H
│ ├── LIB/
│ │ ├── README.TXT
│ │ ├── SOSDBLC.LIB
│ │ ├── SOSDW1CR.LIB
│ │ ├── SOSDW1CS.LIB
│ │ ├── SOSDW1PR.LIB
│ │ ├── SOSDW1PS.LIB
│ │ └── SOSMBLC.LIB
│ ├── VPLAY32/
│ │ ├── BCC32.CFG
│ │ ├── CAPTION.FNT
│ │ ├── EVA.FNT
│ │ ├── MAKEFILE
│ │ ├── MAKEFILE.BOR
│ │ ├── MAKEFILE.WAT
│ │ ├── PLYVQA32.CPP
│ │ ├── TASM32.CFG
│ │ ├── TLIB.CFG
│ │ ├── TLINK32.CFG
│ │ └── VPLAYTNT.DEF
│ ├── VQA32/
│ │ ├── AUDIO.CPP
│ │ ├── BCC32.CFG
│ │ ├── CAPTION.CPP
│ │ ├── CAPTION.H
│ │ ├── CONFIG.CPP
│ │ ├── DRAWER.CPP
│ │ ├── DSTREAM.CPP
│ │ ├── LOADER.CPP
│ │ ├── MAKEFILE
│ │ ├── MAKEFILE.BAK
│ │ ├── MAKEFILE.BOR
│ │ ├── MAKEFILE.WAT
│ │ ├── MONODISP.CPP
│ │ ├── OLD/
│ │ │ ├── AUDIO.CPP
│ │ │ ├── BCC32.CFG
│ │ │ ├── CAPTION.CPP
│ │ │ ├── CAPTION.H
│ │ │ ├── CONFIG.CPP
│ │ │ ├── DRAWER.CPP
│ │ │ ├── DSTREAM.CPP
│ │ │ ├── LOADER.CPP
│ │ │ ├── MAKEFILE
│ │ │ ├── MAKEFILE.BOR
│ │ │ ├── MAKEFILE.WAT
│ │ │ ├── MONODISP.CPP
│ │ │ ├── SOS.H
│ │ │ ├── SOSDATA.H
│ │ │ ├── SOSDEFS.H
│ │ │ ├── SOSFNCT.H
│ │ │ ├── SOSRES.H
│ │ │ ├── TASK.CPP
│ │ │ ├── TASM32.CFG
│ │ │ ├── TLIB.CFG
│ │ │ ├── TLINK32.CFG
│ │ │ ├── UNVQ.H
│ │ │ ├── UNVQBUFF.ASM
│ │ │ ├── UNVQVESA.ASM
│ │ │ ├── UNVQXMDE.ASM
│ │ │ ├── VERTAG.CPP
│ │ │ ├── VQAFILE.H
│ │ │ ├── VQAPLAY.H
│ │ │ ├── VQAPLAY.I
│ │ │ └── VQAPLAYP.H
│ │ ├── SOS.H
│ │ ├── SOSDATA.H
│ │ ├── SOSDEFS.H
│ │ ├── SOSFNCT.H
│ │ ├── SOSRES.H
│ │ ├── TASK.CPP
│ │ ├── TASM32.CFG
│ │ ├── TLIB.CFG
│ │ ├── TLINK32.CFG
│ │ ├── UNVQ.H
│ │ ├── UNVQBUFF.ASM
│ │ ├── UNVQVESA.ASM
│ │ ├── UNVQXMDE.ASM
│ │ ├── VERTAG.CPP
│ │ ├── VQAFILE.H
│ │ ├── VQAPLAY.BAK
│ │ ├── VQAPLAY.H
│ │ ├── VQAPLAY.I
│ │ └── VQAPLAYP.H
│ ├── VQAVIEW/
│ │ ├── DEBUG.CPP
│ │ ├── DEBUG.RC
│ │ ├── DIALOGS.RC
│ │ ├── DIALOGS.RH
│ │ ├── GAMETIME.CPP
│ │ ├── GAMETIME.H
│ │ ├── INTERPAL.ASM
│ │ ├── MAIN.CPP
│ │ ├── MAIN.H
│ │ ├── MAINWIND.CPP
│ │ ├── MAINWIND.H
│ │ ├── MAKEFILE
│ │ ├── MENUS.RC
│ │ ├── MENUS.RH
│ │ ├── MONOCHRM.CPP
│ │ ├── MONOCHRM.H
│ │ ├── MOVIES.CPP
│ │ ├── MOVIES.H
│ │ ├── PAL.CPP
│ │ ├── PAL.H
│ │ ├── TEST.MAK
│ │ ├── VIDMODE.H
│ │ ├── VQ.CPP
│ │ ├── VQ.H
│ │ ├── VQAVIEW.IDE
│ │ ├── VQAVIEW.IDE.BAK
│ │ ├── WESTWOOD.H
│ │ ├── WM.CPP
│ │ ├── WM.H
│ │ └── WWLIB.H
│ └── VQM32/
│ ├── ALL.H
│ ├── AUDUNZAP.ASM
│ ├── AUDZAP.CPP
│ ├── BCC32.CFG
│ ├── CAPTOKEN.CPP
│ ├── CAPTOKEN.H
│ ├── CHRWIDTH.CPP
│ ├── COMPRESS.H
│ ├── CRC.ASM
│ ├── CRC.H
│ ├── DRAWCHAR.ASM
│ ├── DRAWCHAR.BAK
│ ├── FILLRECT.ASM
│ ├── FONT.CPP
│ ├── FONT.H
│ ├── GRAPHICS.H
│ ├── HUFFCMP.CPP
│ ├── HUFFDCMP.ASM
│ ├── HUFFMAN.H
│ ├── IFF.CPP
│ ├── IFF.H
│ ├── LCWCOMP.ASM
│ ├── LCWUNCMP.ASM
│ ├── MAKEFILE
│ ├── MAKEFILE.BOR
│ ├── MAKEFILE.WAT
│ ├── MCGABUF.ASM
│ ├── MEM.CPP
│ ├── MEM.H
│ ├── MIXFILE.CPP
│ ├── MIXFILE.H
│ ├── MONO.ASM
│ ├── MONO.H
│ ├── PALETTE.ASM
│ ├── PALETTE.H
│ ├── PORTIO.ASM
│ ├── PORTIO.H
│ ├── PROFILE.CPP
│ ├── PROFILE.H
│ ├── REALMODE.H
│ ├── SORTPAL.CPP
│ ├── SOSCODEC.ASM
│ ├── SOSCOMP.H
│ ├── TARGA.CPP
│ ├── TARGA.H
│ ├── TASM32.CFG
│ ├── TESTVB.CPP
│ ├── TEXT.H
│ ├── TEXTPRNT.ASM
│ ├── TLIB.CFG
│ ├── TLINK32.CFG
│ ├── VB.ASM
│ ├── VERTAG.CPP
│ ├── VESABLIT.CPP
│ ├── VESABLIT.H
│ ├── VESABUF.ASM
│ ├── VESAVID.CPP
│ ├── VESAVID.H
│ ├── VESAVID.I
│ ├── VGA.I
│ ├── VIDEO.CPP
│ ├── VIDEO.H
│ ├── VIDEO.I
│ ├── XMODE.ASM
│ └── XMODEPG.CPP
└── WWFLAT32/
├── AUDIO/
│ ├── AUDIO.BAK
│ ├── AUDIO.H
│ ├── AUDUNCMP.ASM
│ ├── DIFFTB.INC
│ ├── FUNCTION.H
│ ├── INDEXTB.INC
│ ├── MAKEFILE
│ ├── NEW/
│ │ ├── AUDIO.H
│ │ ├── AUDUNCMP.ASM
│ │ ├── DIFFTB.INC
│ │ ├── FUNCTION.H
│ │ ├── INDEXTB.INC
│ │ ├── MAKEFILE
│ │ ├── NYBBTB.INC
│ │ ├── SOS.H
│ │ ├── SOSCODEC.ASM
│ │ ├── SOSCOMP.H
│ │ ├── SOSDATA.H
│ │ ├── SOSDEFS.H
│ │ ├── SOSDW1PS.LIB
│ │ ├── SOSFNCT.H
│ │ ├── SOSRES.H
│ │ ├── SOUND.BAK
│ │ ├── SOUND.H
│ │ ├── SOUNDINT.BAK
│ │ ├── SOUNDINT.CPP
│ │ ├── SOUNDINT.H
│ │ ├── SOUNDIO.BAK
│ │ ├── SOUNDIO.CPP
│ │ └── SOUNDLCK.CPP
│ ├── NYBBTB.INC
│ ├── SOS.H
│ ├── SOSCODEC.ASM
│ ├── SOSCOMP.H
│ ├── SOSDATA.H
│ ├── SOSDEFS.H
│ ├── SOSDW1PS.LIB
│ ├── SOSFNCT.H
│ ├── SOSRES.H
│ ├── SOUND.BAK
│ ├── SOUND.H
│ ├── SOUNDINT.BAK
│ ├── SOUNDINT.CPP
│ ├── SOUNDINT.H
│ ├── SOUNDIO.BAK
│ ├── SOUNDIO.CPP
│ └── SOUNDLCK.CPP
├── DESCMGMT/
│ ├── DESCMGMT.CPP
│ ├── DESCMGMT.H
│ ├── FFIXSEL.ASM
│ ├── FGETCS.ASM
│ ├── FGETDS.ASM
│ ├── FGETSEL.ASM
│ └── MAKEFILE
├── DIPTHONG/
│ ├── DIPTHONG.CPP
│ ├── DIPTHONG.H
│ ├── MAKEFILE
│ └── _DIPTABL.CPP
├── EXAMPLE/
│ ├── DEFINES.H
│ ├── EXTERNS.H
│ ├── FUNCTION.H
│ ├── GLOBALS.CPP
│ ├── MAIN.CPP
│ ├── MAKEFILE
│ ├── STARTUP.CPP
│ ├── STRUCTS.H
│ └── WWLIB32.H
├── FILE/
│ ├── DEVICES.ASM
│ ├── DEVTABLE.ASM
│ ├── FFIRST.ASM
│ ├── FGLOB2.CPP
│ ├── FILE.BAK
│ ├── FILE.CPP
│ ├── FILE.H
│ ├── FILECACH.CPP
│ ├── FILECHNG.CPP
│ ├── FILEDATA.CPP
│ ├── FILEGLOB.CPP
│ ├── FILEINFO.CPP
│ ├── FILEINIT.CPP
│ ├── FILEIO.CPP
│ ├── FILELIB.CPP
│ ├── FILESTUB.CPP
│ ├── FILETEMP.H
│ ├── FINDFILE.BAK
│ ├── FINDFILE.CPP
│ ├── HARDERR.ASM
│ ├── MAKEFILE
│ ├── _FILE.BAK
│ └── _FILE.H
├── FONT/
│ ├── FONT.BAK
│ ├── FONT.CPP
│ ├── FONT.H
│ ├── LOADFONT.BAK
│ ├── LOADFONT.CPP
│ ├── MAKEFILE
│ ├── SETFPAL.ASM
│ ├── SET_FONT.CPP
│ ├── TEXTPRNT.ASM
│ └── TEXTPRNT.BAK
├── IFF/
│ ├── FILEPCX.H
│ ├── IFF.BAK
│ ├── IFF.CPP
│ ├── IFF.H
│ ├── LCWCOMP.ASM
│ ├── LCWUNCMP.ASM
│ ├── LOAD.BAK
│ ├── LOAD.CPP
│ ├── LOADPCX.CPP
│ ├── LOADPICT.BAK
│ ├── LOADPICT.CPP
│ ├── MAKEFILE
│ ├── PACK2PLN.ASM
│ ├── WRITELBM.CPP
│ └── WRITEPCX.CPP
├── INCLUDE/
│ ├── AUDIO.H
│ ├── BUFFER.H
│ ├── DESCMGMT.H
│ ├── DIFFTB.INC
│ ├── DIPTHONG.H
│ ├── FILE.H
│ ├── FILEPCX.H
│ ├── FILETEMP.H
│ ├── FONT.BAK
│ ├── FONT.H
│ ├── FUNCTION.H
│ ├── GBUFFER.BAK
│ ├── GBUFFER.H
│ ├── GBUFFER.INC
│ ├── IFF.H
│ ├── INDEXTB.INC
│ ├── KEYBOARD.H
│ ├── KEYBOARD.INC
│ ├── KEYSTRUC.INC
│ ├── MCGAPRIM.H
│ ├── MCGAPRIM.INC
│ ├── MEMFLAG.H
│ ├── MISC.BAK
│ ├── MISC.H
│ ├── MONO.BAK
│ ├── MONO.H
│ ├── NYBBTB.INC
│ ├── PALETTE.BAK
│ ├── PALETTE.H
│ ├── PLAYCD.H
│ ├── SHAPE.H
│ ├── SHAPE.INC
│ ├── SOS.H
│ ├── SOSCOMP.H
│ ├── SOSDATA.H
│ ├── SOSDEFS.H
│ ├── SOSFNCT.H
│ ├── SOSRES.H
│ ├── SOUND.H
│ ├── SOUNDINT.H
│ ├── STAMP.INC
│ ├── SVGAPRIM.INC
│ ├── TILE.H
│ ├── TIMER.BAK
│ ├── TIMER.H
│ ├── VBUFFER.H
│ ├── VIDEO.H
│ ├── WINDOW.H
│ ├── WSA.H
│ ├── WWLIB32.H
│ ├── WWMEM.H
│ ├── WWMEM.INC
│ ├── WWSTD.H
│ ├── WWSTD.H.BAK
│ └── _FILE.H
├── KEYBOARD/
│ ├── KEYBOARD.ASM
│ ├── KEYBOARD.BAK
│ ├── KEYBOARD.H
│ ├── KEYBOARD.INC
│ ├── KEYIPROT.ASM
│ ├── KEYIREAL.ASM
│ ├── KEYIREAL.BAK
│ ├── KEYIREAL.IBN
│ ├── KEYSTRUC.INC
│ ├── MAKEFILE
│ ├── MOUSE.ASM
│ ├── NEW/
│ │ ├── KEYBOARD.ASM
│ │ ├── KEYBOARD.BAK
│ │ ├── KEYBOARD.H
│ │ ├── KEYBOARD.INC
│ │ ├── KEYIPROT.ASM
│ │ ├── KEYIREAL.ASM
│ │ ├── KEYIREAL.BAK
│ │ ├── KEYIREAL.IBN
│ │ ├── KEYSTRUC.INC
│ │ ├── MAKEFILE
│ │ ├── MOUSE.ASM
│ │ └── PAGFAULT.ASM
│ ├── PAGFAULT.ASM
│ └── X/
│ ├── KEYBOARD.ASM
│ ├── KEYBOARD.BAK
│ ├── KEYBOARD.H
│ ├── KEYBOARD.INC
│ ├── KEYIPROT.ASM
│ ├── KEYIREAL.ASM
│ ├── KEYIREAL.BAK
│ ├── KEYIREAL.IBN
│ ├── KEYSTRUC.INC
│ ├── MAKEFILE
│ ├── MOUSE.ASM
│ └── PAGFAULT.ASM
├── LIB/
│ └── SOSDW1PS.LIB
├── MAKEFILE
├── MAKE_EXE.MAK
├── MAKE_LIB.MAK
├── MCGAPRIM/
│ ├── BITBLIT.ASM
│ ├── BUFFER.CPP
│ ├── BUFFER.H
│ ├── BUFFGLBL.CPP
│ ├── CLEAR.ASM
│ ├── DRAWLINE.ASM
│ ├── DRAWRECT.CPP
│ ├── DRAWRECT.CPP.BAK
│ ├── FILLQUAD.ASM
│ ├── FILLRECT.ASM
│ ├── GBUFFER.CPP
│ ├── GBUFFER.CPP.BAK
│ ├── GBUFFER.H
│ ├── GBUFFER.INC
│ ├── GETCLIP.ASM
│ ├── GETPIX.ASM
│ ├── MAKEFILE
│ ├── MCGAPRIM.H
│ ├── MCGAPRIM.INC
│ ├── MCGAPRIM.PJT
│ ├── PUTPIX.ASM
│ ├── REGIONSZ.CPP
│ ├── REMAP.ASM
│ ├── SCALE.ASM
│ ├── SHADOW.ASM
│ ├── STAMP.ASM
│ ├── STAMP.BAK
│ ├── STAMP.INC
│ ├── SZREGION.ASM
│ ├── TOBUFF.ASM
│ ├── TOPAGE.ASM
│ ├── TXTPRNT.ASM
│ ├── VBITBLIT.ASM
│ ├── VBUFFER.CPP
│ ├── VBUFFER.H
│ ├── VCLEAR.ASM
│ ├── VESA.ASM
│ ├── VGETPIX.ASM
│ ├── VLBTOVE.ASM
│ ├── VPUTPIX.ASM
│ ├── VSCALE.ASM
│ ├── VSCLTOVE.ASM
│ ├── VTOBUFF.ASM
│ ├── VTOPAGE.ASM
│ ├── VTXTPRNT.ASM
│ ├── VVBLIT.ASM
│ ├── VVETOLB.ASM
│ └── VVETOSCL.ASM
├── MEM/
│ ├── ALLOC.CPP
│ ├── ALLOC.CPP.BAK
│ ├── MAKEFILE
│ ├── MEM.CPP
│ ├── MEM.CPP.BAK
│ ├── MEMFLAG.H
│ ├── MEM_COPY.ASM
│ ├── NEWDEL.CPP
│ ├── OLD/
│ │ ├── ALLOC.CPP
│ │ ├── MAKEFILE
│ │ ├── MEM.CPP
│ │ ├── MEMFLAG.H
│ │ ├── MEM_COPY.ASM
│ │ ├── NEWDEL.CPP
│ │ ├── WWMEM.H
│ │ └── WWMEM.INC
│ ├── WWMEM.H
│ └── WWMEM.INC
├── MISC/
│ ├── ASM.ASM
│ ├── ASM.ASM.BAK
│ ├── CLIPRECT.ASM
│ ├── CRC.ASM
│ ├── CRC.IDE
│ ├── DELAY.CPP
│ ├── DETPROC.ASM
│ ├── EXIT.CPP
│ ├── FACING16.ASM
│ ├── FACING8.ASM
│ ├── FACINGFF.ASM
│ ├── FADING.ASM
│ ├── FINDARGV.CPP
│ ├── IRANDOM.CPP
│ ├── KEYCODE.CPP
│ ├── KEYCODE.CPP.BAK
│ ├── LIB.CPP
│ ├── MAKEFILE
│ ├── MISC.H
│ ├── OPSYS.ASM
│ ├── PROC.ASM
│ ├── RANDOM.ASM
│ ├── REVERSE.ASM
│ ├── SHAKESCR.ASM
│ ├── VERSION.CPP
│ ├── WWLIB32.H
│ └── WWSTD.H
├── MONO/
│ ├── INITMONO.CPP
│ ├── MAKEFILE
│ ├── MONO.ASM
│ ├── MONO.H
│ └── MONOPRNT.CPP
├── PALETTE/
│ ├── LOADPAL.CPP
│ ├── MAKEFILE
│ ├── MORPHPAL.CPP
│ ├── PAL.ASM
│ ├── PALETTE.CPP
│ └── PALETTE.H
├── PLAYCD/
│ ├── GETCD.CPP
│ ├── GETCD.CPP.BAK
│ ├── MAKEFILE
│ ├── PLAYCD.ASM
│ ├── PLAYCD.H
│ ├── PLAYCD.H.BAK
│ └── REDBOOK.CPP
├── PROJECT.CFG
├── SHAPE/
│ ├── DRAWSHP.ASM
│ ├── DS_DN.ASM
│ ├── DS_DR.ASM
│ ├── DS_DS.ASM
│ ├── DS_DSR.ASM
│ ├── DS_LRS.ASM
│ ├── DS_LS.ASM
│ ├── DS_LSRS.ASM
│ ├── DS_LSS.ASM
│ ├── DS_RRS.ASM
│ ├── DS_RS.ASM
│ ├── DS_RSRS.ASM
│ ├── DS_RSS.ASM
│ ├── DS_TABLE.ASM
│ ├── GETSHAPE.CPP
│ ├── MAKEFILE
│ ├── PRIOINIT.CPP
│ ├── SETSHAPE.ASM
│ ├── SHAPE.H
│ └── SHAPE.INC
├── SRCDEBUG/
│ ├── ALLOC.CPP
│ ├── KEYBOARD.ASM
│ ├── KEYIPROT.ASM
│ ├── KEYIREAL.ASM
│ ├── MEM.CPP
│ ├── MEM_COPY.ASM
│ ├── MOUSE.ASM
│ ├── NEWDEL.CPP
│ └── PAGFAULT.ASM
├── SVGAPRIM/
│ ├── MAKEFILE
│ ├── SVGAPRIM.INC
│ ├── VCLEAR.ASM
│ ├── VESA.ASM
│ ├── VGETPIX.ASM
│ ├── VLBTOVE.ASM
│ ├── VPUTPIX.ASM
│ ├── VSCALE.CPP
│ ├── VSCLTOVE.ASM
│ ├── VTOBUFF.ASM
│ ├── VTOPAGE.ASM
│ ├── VTXTPRNT.ASM
│ ├── VVBLIT.ASM
│ ├── VVETOLB.ASM
│ └── VVETOSCL.CPP
├── TILE/
│ ├── ICONSET.BAK
│ ├── ICONSET.CPP
│ ├── MAKEFILE
│ ├── TILE.H
│ └── TILE.H.BAK
├── TIMER/
│ ├── MAKEFILE
│ ├── TIMER.CPP
│ ├── TIMER.H
│ ├── TIMERA.ASM
│ ├── TIMERA.BAK
│ ├── TIMERDWN.CPP
│ ├── TIMEREAL.ASM
│ ├── TIMEREAL.IBN
│ └── TIMERINI.CPP
├── VIDEO/
│ ├── INITDLAY.CPP
│ ├── MAKEFILE
│ ├── VERTBLNK.ASM
│ ├── VESAHOOK.ASM
│ ├── VESAINFO.CPP
│ ├── VESAREAL.ASM
│ ├── VESAREAL.IBN
│ ├── VIDEO.CPP
│ └── VIDEO.H
├── WINDOWS/
│ ├── MAKEFILE
│ ├── WINDOW.H
│ ├── WINDOWS.CPP
│ ├── WINDOWS.CPP.BAK
│ ├── WINDOWS.H
│ ├── WINHIDE.CPP
│ └── WINHIDE.CPP.BAK
└── WSA/
├── MAKEFILE
├── WSA.CPP
├── WSA.H
└── XORDELTA.ASM
================================================
FILE CONTENTS
================================================
================================================
FILE: CODE/2KEYFBUF.ASM
================================================
;
; Command & Conquer Red Alert(tm)
; Copyright 2025 Electronic Arts Inc.
;
; 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 3 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, see <http://www.gnu.org/licenses/>.
;
;***************************************************************************
;** C O N F I D E N T I A L --- W E S T W O O D A S S O C I A T E S **
;***************************************************************************
;* *
;* Project Name : Command & Conquer *
;* *
;* File Name : KEYFBUFF.ASM *
;* *
;* Programmer : David R. Dettmer *
;* *
;* Start Date : March 3, 1995 *
;* *
;* Last Update : *
;* *
;*-------------------------------------------------------------------------*
;* Functions: *
;* Buffer_Frame_To_Page -- Copies a linear buffer to a virtual viewport *
;* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *
;********************** Model & Processor Directives ***********************
IDEAL
P386
MODEL USE32 FLAT
jumps
;******************************** Includes *********************************
INCLUDE "gbuffer.inc"
include "profile.inc"
;******************************** Equates **********************************
TRUE equ 1 ; Boolean 'true' value
FALSE equ 0 ; Boolean 'false' value
;*=========================================================================*/
;* The following are defines used to control what functions are linked *
;* in for Buffer_Frame_To_Page. *
;*=========================================================================*/
;USE_NORMAL EQU TRUE
;USE_HORZ_REV EQU TRUE
;USE_VERT_REV EQU TRUE
;USE_SCALING EQU TRUE
FLAG_NORMAL EQU 0
FLAG_TRANS EQU 1
FLAG_GHOST EQU 2
FLAG_FADING EQU 4
FLAG_PREDATOR EQU 8
FLAG_MASK EQU 0Fh
SHAPE_NORMAL EQU 0000h ; Standard shape
;SHAPE_HORZ_REV EQU 0001h ; Flipped horizontally
;SHAPE_VERT_REV EQU 0002h ; Flipped vertically
;SHAPE_SCALING EQU 0004h ; Scaled (WORD scale_x, WORD scale_y)
;SHAPE_VIEWPORT_REL EQU 0010h ; Coords are window-relative
;SHAPE_WIN_REL EQU 0010h ; Coordinates are window relative instead of absolute.
SHAPE_CENTER EQU 0020h ; Coords are based on shape's center pt
SHAPE_TRANS EQU 0040h ; has transparency
SHAPE_FADING EQU 0100h ; Fading effect (VOID * fading_table,
; WORD fading_num)
SHAPE_PREDATOR EQU 0200h ; Transparent warping effect
;SHAPE_COMPACT EQU 0400h ; Never use this bit
;SHAPE_PRIORITY EQU 0800h ; Use priority system when drawing
SHAPE_GHOST EQU 1000h ; Shape is drawn ghosted
;SHAPE_SHADOW EQU 2000h
SHAPE_PARTIAL EQU 4000h
;SHAPE_COLOR EQU 8000h ; Remap the shape's colors
; (VOID * color_table)
;
;.......................... Shadow Effect ..................................
;
SHADOW_COL EQU 00FFh ; magic number for shadows
;......................... Priority System .................................
;
CLEAR_UNUSED_BITS EQU 0007h ; and with 0000-0111 to clear
; non-walkable high bit and
; scaling id bits
NON_WALKABLE_BIT EQU 0080h ; and with 1000-0000 to clear all
; but non-walkable bit
;
;......................... Predator Effect .................................
;
;PRED_MASK EQU 0007h ; mask used for predator pixel puts
PRED_MASK EQU 000Eh ; mask used for predator pixel puts
;---------------------------------------------------------------------------
;
; Use a macro to make code a little cleaner.
; The parameter varname is optional.
; Syntax to use macro is :
; WANT equ expression
; USE func [,varname]
; If the 'varname' is defined, a table declaration is created like:
; GLOBAL TableName:DWORD
; Then, the table entry is created:
; If WANT is true, the table entry is created for the given function:
; varname DD func
; If WANT is not TRUE, a Not_Supported entry is put in the table:
; varname DD Not_Supported
; The resulting tables look like:
;
; GLOBAL ExampTable:DWORD
; ExampTable DD routine1
; DD routine2
; DD routine3
; ...
; Thus, each table is an array of function pointers.
;
;---------------------------------------------------------------------------
MACRO USE func, varname
IF WANT
varname DD func
ELSE
varname DD Not_Supported
ENDIF
ENDM
; IFNB <varname>
; GLOBAL varname:DWORD
; ENDIF
;---------------------------------------------------------------------------
DATASEG
;---------------------------------------------------------------------------
; Predator effect variables
;---------------------------------------------------------------------------
; make table for negative offset and use the used space for other variables
BFPredNegTable DW -1, -3, -2, -5, -2, -4, -3, -1
; 8 words below calculated
DW 0, 0, 0, 0, 0, 0, 0, 0 ; index ffffff00
DD 0, 0, 0, 0 ; index ffffff10
BFPredOffset DD 0, 0, 0, 0 ; index ffffff20
DD 0, 0, 0, 0 ; index ffffff30
; partially faded predator effect value
BFPartialPred DD 0, 0, 0, 0 ; index ffffff40
BFPartialCount DD 0, 0, 0, 0 ; index ffffff50
DD 0, 0, 0, 0 ; index ffffff60
DD 0, 0, 0, 0 ; index ffffff70
DD 0, 0, 0, 0 ; index ffffff80
DD 0, 0, 0, 0 ; index ffffff90
DD 0, 0, 0, 0 ; index ffffffa0
DD 0, 0, 0, 0 ; index ffffffb0
DD 0, 0, 0, 0 ; index ffffffc0
DD 0, 0, 0, 0 ; index ffffffd0
DD 0, 0, 0, 0 ; index ffffffe0
DD 0, 0, 0, 0 ; index fffffff0
BFPredTable DW 1, 3, 2, 5, 2, 3, 4, 1
;BFPredTable DB 1, 3, 2, 5, 4, 3, 2, 1
global C BigShapeBufferStart:dword
global C UseBigShapeBuffer:dword
global C UseOldShapeDraw:dword
global C TheaterShapeBufferStart:dword
global C IsTheaterShape:dword
global C Single_Line_Trans_Entry:near
global C Next_Line:near
global C MMX_Done:near
global C MMXAvailable:dword
global EndNewShapeJumpTable:byte
global NewShapeJumpTable:dword
;**********************************************************************************
;
; Jump tables for new line header system
;
; Each line of shape data now has a header byte which describes the data on the line.
;
;
; Header byte control bits
;
BLIT_TRANSPARENT =1
BLIT_GHOST =2
BLIT_FADING =4
BLIT_PREDATOR =8
BLIT_SKIP =16
BLIT_ALL =BLIT_TRANSPARENT or BLIT_GHOST or BLIT_FADING or BLIT_PREDATOR or BLIT_SKIP
struc ShapeHeaderType
draw_flags dd ?
shape_data dd ?
shape_buffer dd ?
ends
;
; Global definitions for routines that draw a single line of a shape
;
global Short_Single_Line_Copy:near
global Single_Line_Trans:near
global Single_Line_Ghost:near
global Single_Line_Ghost_Trans:near
global Single_Line_Fading:near
global Single_Line_Fading_Trans:near
global Single_Line_Ghost_Fading:near
global Single_Line_Ghost_Fading_Trans:near
global Single_Line_Predator:near
global Single_Line_Predator_Trans:near
global Single_Line_Predator_Ghost:near
global Single_Line_Predator_Ghost_Trans:near
global Single_Line_Predator_Fading:near
global Single_Line_Predator_Fading_Trans:near
global Single_Line_Predator_Ghost_Fading:near
global Single_Line_Predator_Ghost_Fading_Trans:near
global Single_Line_Skip:near
global Single_Line_Single_Fade:near
global Single_Line_Single_Fade_Trans:near
label NewShapeJumpTable dword
;
; Jumptable for shape line drawing with no flags set
;
dd Short_Single_Line_Copy
dd Short_Single_Line_Copy
dd Short_Single_Line_Copy
dd Short_Single_Line_Copy
label CriticalFadeRedirections dword
dd Short_Single_Line_Copy
dd Short_Single_Line_Copy
dd Short_Single_Line_Copy
dd Short_Single_Line_Copy
dd Short_Single_Line_Copy
dd Short_Single_Line_Copy
dd Short_Single_Line_Copy
dd Short_Single_Line_Copy
dd Short_Single_Line_Copy
dd Short_Single_Line_Copy
dd Short_Single_Line_Copy
dd Short_Single_Line_Copy
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
;
; Jumptable for shape line drawing routines with transparent flags set
;
dd Short_Single_Line_Copy
dd Single_Line_Trans
dd Short_Single_Line_Copy
dd Single_Line_Trans
dd Short_Single_Line_Copy
dd Single_Line_Trans
dd Short_Single_Line_Copy
dd Single_Line_Trans
dd Short_Single_Line_Copy
dd Single_Line_Trans
dd Short_Single_Line_Copy
dd Single_Line_Trans
dd Short_Single_Line_Copy
dd Single_Line_Trans
dd Short_Single_Line_Copy
dd Single_Line_Trans
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
;
; Jumptable for shape line drawing routines with ghost flags set
;
dd Short_Single_Line_Copy
dd Short_Single_Line_Copy
dd Single_Line_Ghost
dd Single_Line_Ghost
dd Short_Single_Line_Copy
dd Short_Single_Line_Copy
dd Single_Line_Ghost
dd Single_Line_Ghost
dd Short_Single_Line_Copy
dd Short_Single_Line_Copy
dd Single_Line_Ghost
dd Single_Line_Ghost
dd Short_Single_Line_Copy
dd Short_Single_Line_Copy
dd Single_Line_Ghost
dd Single_Line_Ghost
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
;
; Jumptable for shape line drawing routines with ghost and transparent flags set
;
dd Short_Single_Line_Copy
dd Single_Line_Trans
dd Single_Line_Ghost
dd Single_Line_Ghost_Trans
dd Short_Single_Line_Copy
dd Single_Line_Trans
dd Single_Line_Ghost
dd Single_Line_Ghost_Trans
dd Short_Single_Line_Copy
dd Single_Line_Trans
dd Single_Line_Ghost
dd Single_Line_Ghost_Trans
dd Short_Single_Line_Copy
dd Single_Line_Trans
dd Single_Line_Ghost
dd Single_Line_Ghost_Trans
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
;
; Jumptable for shape line drawing routines with fading flag set
;
dd Short_Single_Line_Copy
dd Short_Single_Line_Copy
dd Short_Single_Line_Copy
dd Short_Single_Line_Copy
dd Single_Line_Single_Fade
dd Single_Line_Single_Fade
dd Single_Line_Fading
dd Single_Line_Fading
dd Short_Single_Line_Copy
dd Short_Single_Line_Copy
dd Short_Single_Line_Copy
dd Short_Single_Line_Copy
dd Single_Line_Fading
dd Single_Line_Fading
dd Single_Line_Fading
dd Single_Line_Fading
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
;
; Jumptable for shape line drawing routines with fading and transparent flags set
;
dd Short_Single_Line_Copy
dd Single_Line_Trans
dd Short_Single_Line_Copy
dd Single_Line_Trans
dd Single_Line_Single_Fade
dd Single_Line_Single_Fade_Trans
dd Single_Line_Fading
dd Single_Line_Fading_Trans
dd Short_Single_Line_Copy
dd Single_Line_Trans
dd Short_Single_Line_Copy
dd Single_Line_Trans
dd Single_Line_Fading
dd Single_Line_Fading_Trans
dd Single_Line_Fading
dd Single_Line_Fading_Trans
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
;
; Jumptable for shape line drawing routines with fading and ghost flags set
;
dd Short_Single_Line_Copy
dd Short_Single_Line_Copy
dd Single_Line_Ghost
dd Single_Line_Ghost
dd Single_Line_Single_Fade
dd Single_Line_Single_Fade
dd Single_Line_Ghost_Fading
dd Single_Line_Ghost_Fading
dd Short_Single_Line_Copy
dd Short_Single_Line_Copy
dd Single_Line_Ghost
dd Single_Line_Ghost
dd Single_Line_Fading
dd Single_Line_Fading
dd Single_Line_Ghost_Fading
dd Single_Line_Ghost_Fading
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
;
; Jumptable for shape line drawing routines with fading, transparent and ghost flags set
;
dd Short_Single_Line_Copy
dd Single_Line_Trans
dd Single_Line_Ghost
dd Single_Line_Ghost_Trans
dd Single_Line_Single_Fade
dd Single_Line_Single_Fade_Trans
dd Single_Line_Ghost_Fading
dd Single_Line_Ghost_Fading_Trans
dd Short_Single_Line_Copy
dd Single_Line_Trans
dd Single_Line_Ghost
dd Single_Line_Ghost_Trans
dd Single_Line_Fading
dd Single_Line_Fading_Trans
dd Single_Line_Ghost_Fading
dd Single_Line_Ghost_Fading_Trans
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
;
; Jumptable for shape line drawing with predator flag set
;
dd Short_Single_Line_Copy
dd Short_Single_Line_Copy
dd Short_Single_Line_Copy
dd Short_Single_Line_Copy
dd Short_Single_Line_Copy
dd Short_Single_Line_Copy
dd Short_Single_Line_Copy
dd Short_Single_Line_Copy
dd Single_Line_Predator
dd Single_Line_Predator
dd Single_Line_Predator
dd Single_Line_Predator
dd Single_Line_Predator
dd Single_Line_Predator
dd Single_Line_Predator
dd Single_Line_Predator
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
;
; Jumptable for shape line drawing routines with transparent and predator flags set
;
dd Short_Single_Line_Copy
dd Single_Line_Trans
dd Short_Single_Line_Copy
dd Single_Line_Trans
dd Short_Single_Line_Copy
dd Single_Line_Trans
dd Short_Single_Line_Copy
dd Single_Line_Trans
dd Single_Line_Predator
dd Single_Line_Predator_Trans
dd Single_Line_Predator
dd Single_Line_Predator_Trans
dd Single_Line_Predator
dd Single_Line_Predator_Trans
dd Single_Line_Predator
dd Single_Line_Predator_Trans
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
;
; Jumptable for shape line drawing routines with ghost and predator flags set
;
dd Short_Single_Line_Copy
dd Short_Single_Line_Copy
dd Single_Line_Ghost
dd Single_Line_Ghost
dd Short_Single_Line_Copy
dd Short_Single_Line_Copy
dd Single_Line_Ghost
dd Single_Line_Ghost
dd Single_Line_Predator
dd Single_Line_Predator
dd Single_Line_Predator_Ghost
dd Single_Line_Predator_Ghost
dd Single_Line_Predator
dd Single_Line_Predator
dd Single_Line_Predator_Ghost
dd Single_Line_Predator_Ghost
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
;
; Jumptable for shape line drawing routines with ghost and transparent and predator flags set
;
dd Short_Single_Line_Copy
dd Single_Line_Trans
dd Single_Line_Ghost
dd Single_Line_Ghost_Trans
dd Short_Single_Line_Copy
dd Single_Line_Trans
dd Single_Line_Ghost
dd Single_Line_Ghost_Trans
dd Single_Line_Predator
dd Single_Line_Predator_Trans
dd Single_Line_Predator_Ghost
dd Single_Line_Predator_Ghost_Trans
dd Single_Line_Predator
dd Single_Line_Predator_Trans
dd Single_Line_Predator_Ghost
dd Single_Line_Predator_Ghost_Trans
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
;
; Jumptable for shape line drawing routines with fading and predator flags set
;
dd Short_Single_Line_Copy
dd Short_Single_Line_Copy
dd Short_Single_Line_Copy
dd Short_Single_Line_Copy
dd Single_Line_Single_Fade
dd Single_Line_Single_Fade
dd Single_Line_Fading
dd Single_Line_Fading
dd Single_Line_Predator
dd Single_Line_Predator
dd Single_Line_Predator
dd Single_Line_Predator
dd Single_Line_Predator_Fading
dd Single_Line_Predator_Fading
dd Single_Line_Predator_Fading
dd Single_Line_Predator_Fading
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
;
; Jumptable for shape line drawing routines with fading and transparent and predator flags set
;
dd Short_Single_Line_Copy
dd Single_Line_Trans
dd Short_Single_Line_Copy
dd Single_Line_Trans
dd Single_Line_Single_Fade
dd Single_Line_Single_Fade_Trans
dd Single_Line_Fading
dd Single_Line_Fading_Trans
dd Single_Line_Predator
dd Single_Line_Predator_Trans
dd Single_Line_Predator
dd Single_Line_Predator_Trans
dd Single_Line_Predator_Fading
dd Single_Line_Predator_Fading_Trans
dd Single_Line_Predator_Fading
dd Single_Line_Predator_Fading_Trans
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
;
; Jumptable for shape line drawing routines with fading and ghost and predator flags set
;
dd Short_Single_Line_Copy
dd Short_Single_Line_Copy
dd Single_Line_Ghost
dd Single_Line_Ghost
dd Single_Line_Single_Fade
dd Single_Line_Single_Fade
dd Single_Line_Ghost_Fading
dd Single_Line_Ghost_Fading
dd Single_Line_Predator
dd Single_Line_Predator
dd Single_Line_Predator_Ghost
dd Single_Line_Predator_Ghost
dd Single_Line_Predator_Fading
dd Single_Line_Predator_Fading
dd Single_Line_Predator_Ghost_Fading
dd Single_Line_Predator_Ghost_Fading
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
;
; Jumptable for shape line drawing routines with all flags set
;
label AllFlagsJumpTable dword
dd Short_Single_Line_Copy
dd Single_Line_Trans
dd Single_Line_Ghost
dd Single_Line_Ghost_Trans
dd Single_Line_Single_Fade
dd Single_Line_Single_Fade_Trans
dd Single_Line_Ghost_Fading
dd Single_Line_Ghost_Fading_Trans
dd Single_Line_Predator
dd Single_Line_Predator_Trans
dd Single_Line_Predator_Ghost
dd Single_Line_Predator_Ghost_Trans
dd Single_Line_Predator_Fading
dd Single_Line_Predator_Fading_Trans
dd Single_Line_Predator_Ghost_Fading
dd Single_Line_Predator_Ghost_Fading_Trans
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
dd Single_Line_Skip
label EndNewShapeJumpTable byte
CODESEG
;---------------------------------------------------------------------------
; Code Segment Tables:
; This code uses the USE macro to set up tables of function addresses.
; The tables have the following format:
; Tables defined are:
; BufferFrameTable
;---------------------------------------------------------------------------
WANT equ <TRUE>
USE BF_Copy, BufferFrameTable
WANT equ <TRUE>
USE BF_Trans
WANT equ <TRUE>
USE BF_Ghost
WANT equ <TRUE>
USE BF_Ghost_Trans
WANT equ <TRUE>
USE BF_Fading
WANT equ <TRUE>
USE BF_Fading_Trans
WANT equ <TRUE>
USE BF_Ghost_Fading
WANT equ <TRUE>
USE BF_Ghost_Fading_Trans
WANT equ <TRUE>
USE BF_Predator
WANT equ <TRUE>
USE BF_Predator_Trans
WANT equ <TRUE>
USE BF_Predator_Ghost
WANT equ <TRUE>
USE BF_Predator_Ghost_Trans
WANT equ <TRUE>
USE BF_Predator_Fading
WANT equ <TRUE>
USE BF_Predator_Fading_Trans
WANT equ <TRUE>
USE BF_Predator_Ghost_Fading
WANT equ <TRUE>
USE BF_Predator_Ghost_Fading_Trans
;---------------------------------------------------------------------------
;*********************************************************************************************
;* Set_Shape_Header -- create the line header bytes for a shape *
;* *
;* INPUT: Shape width *
;* Shape height *
;* ptr to raw shape data *
;* ptr to shape headers *
;* shape flags *
;* ptr to translucency table *
;* IsTranslucent *
;* *
;* OUTPUT: none *
;* *
;* Warnings: *
;* *
;* HISTORY: *
;* 11/29/95 10:09AM ST : Created. *
;*===========================================================================================*
proc Setup_Shape_Header C near
ARG pixel_width :DWORD ; width of rectangle to blit
ARG pixel_height :DWORD ; height of rectangle to blit
ARG src :DWORD ; this is a member function
ARG headers :DWORD
ARG flags :DWORD
ARG Translucent :DWORD
ARG IsTranslucent :DWORD
LOCAL trans_count :DWORD
pushad
mov esi,[src] ;ptr to raw shape data
mov edi,[headers] ;ptr to headers we are going to set up
mov eax,[flags]
and eax,SHAPE_TRANS or SHAPE_FADING or SHAPE_PREDATOR or SHAPE_GHOST
mov [(ShapeHeaderType edi).draw_flags],eax ;save old flags in header
add edi,size ShapeHeaderType
mov edx,[pixel_height] ;number of shape lines to scan
??outer_loop: mov ecx,[pixel_width] ;number of pixels in shape line
xor bl,bl ;flag the we dont know anything about this line yet
mov [trans_count],0 ;we havnt scanned any transparent pixels yet
;
; Scan one shape line to see what kind of data it contains
;
??inner_loop: xor eax,eax
mov al,[esi]
inc esi
;
; Check for transparent pixel
;
test al,al
jnz ??not_transp
test [flags],SHAPE_TRANS
jz ??not_transp
or bl,BLIT_TRANSPARENT ;flag that pixel is transparent
inc [trans_count] ;keep count of the number of transparent pixels on the line
jmp ??end_lp
;
; Check for predator effect on this line
;
??not_transp: test [flags],SHAPE_PREDATOR
jz ??not_pred
or bl,BLIT_PREDATOR
;
; Check for ghost effects
;
??not_pred: test [flags],SHAPE_GHOST
jz ??not_ghost
push edi
mov edi,[IsTranslucent]
cmp [byte edi+eax],-1
pop edi
jz ??not_ghost
or bl,BLIT_GHOST
;
; Check if fading is required
;
??not_ghost: test [flags],SHAPE_FADING
jz ??end_lp
or bl,BLIT_FADING
??end_lp: dec ecx
jnz ??inner_loop
;
; Interpret the info we have collected and decide which routine will be
; used to draw this line
;
xor bh,bh
test bl,BLIT_TRANSPARENT
jz ??no_transparencies
or bh,BLIT_TRANSPARENT
mov ecx,[pixel_width]
cmp ecx,[trans_count]
jnz ??not_all_trans
; all pixels in the line were transparent so we dont need to draw it at all
mov bh,BLIT_SKIP
jmp ??got_line_type
??not_all_trans:
??no_transparencies:
mov al,bl
and al,BLIT_PREDATOR
or bh,al
mov al,bl
and al,BLIT_GHOST
or bh,al
mov al,bl
and al,BLIT_FADING
or bh,al
;
; Save the line header and do the next line
;
??got_line_type:mov [edi],bh
inc edi
dec edx
jnz ??outer_loop
popad
ret
endp Setup_Shape_Header
;**************************************************************
;
; Macro to fetch the header of the next line and jump to the appropriate routine
;
macro next_line
add edi , [ dest_adjust_width ] ;add in dest modulo
dec edx ;line counter
jz ??real_out ;return
mov ecx,[save_ecx] ;ecx is pixel count
mov eax,[header_pointer] ;ptr to next header byte
mov al,[eax]
inc [header_pointer]
and eax,BLIT_ALL ;Make sure we dont jump to some spurious address
; if the header is wrong then its better to draw with the wrong
; shape routine than to die
shl eax,2
add eax,[ShapeJumpTableAddress] ;get the address to jump to
jmp [dword eax] ;do the jump
endm
;***************************************************************************
;* VVC::TOPAGE -- Copies a linear buffer to a virtual viewport *
;* *
;* INPUT: WORD x_pixel - x pixel on viewport to copy from *
;* WORD y_pixel - y pixel on viewport to copy from *
;* WORD pixel_width - the width of copy region *
;* WORD pixel_height - the height of copy region *
;* BYTE * src - buffer to copy from *
;* VVPC * dest - virtual viewport to copy to *
;* *
;* OUTPUT: none *
;* *
;* WARNINGS: Coordinates and dimensions will be adjusted if they exceed *
;* the boundaries. In the event that no adjustment is *
;* possible this routine will abort. If the size of the *
;* region to copy exceeds the size passed in for the buffer *
;* the routine will automatically abort. *
;* *
;* HISTORY: *
;* 06/15/1994 PWG : Created. *
;*=========================================================================*
GLOBAL C Buffer_Frame_To_Page:NEAR
PROC Buffer_Frame_To_Page C near
USES eax,ebx,ecx,edx,esi,edi
;*===================================================================
;* define the arguements that our function takes.
;*===================================================================
ARG x_pixel :DWORD ; x pixel position in source
ARG y_pixel :DWORD ; y pixel position in source
ARG pixel_width :DWORD ; width of rectangle to blit
ARG pixel_height:DWORD ; height of rectangle to blit
ARG src :DWORD ; this is a member function
ARG dest :DWORD ; what are we blitting to
ARG flags :DWORD ; flags passed
;*===================================================================
; Define some locals so that we can handle things quickly
;*===================================================================
LOCAL IsTranslucent :DWORD ; ptr to the is_translucent table
LOCAL Translucent :DWORD ; ptr to the actual translucent table
LOCAL FadingTable :DWORD ; extracted fading table pointer
LOCAL FadingNum :DWORD ; get the number of times to fade
LOCAL StashECX :DWORD ; temp variable for ECX register
LOCAL jflags :DWORD ; flags used to goto correct buff frame routine
LOCAL BufferFrameRout :DWORD ; ptr to the buffer frame routine
LOCAL jmp_loc :DWORD ; calculated jump location
LOCAL loop_cnt :DWORD
LOCAL x1_pixel :DWORD
LOCAL y1_pixel :DWORD
LOCAL scr_x :DWORD
LOCAL scr_y :DWORD
LOCAL dest_adjust_width :DWORD
LOCAL scr_adjust_width :DWORD
LOCAL header_pointer :DWORD
LOCAL use_old_draw :DWORD
LOCAL save_ecx :DWORD
LOCAL ShapeJumpTableAddress :DWORD
LOCAL shape_buffer_start :DWORD
prologue
cmp [ src ] , 0
jz ??real_out
cmp [UseOldShapeDraw],0
jz ??new_system
mov [use_old_draw],1
jmp ??do_args
??new_system:
;
; Save the line attributes pointers and
; Modify the src pointer to point to the actual image
;
cmp [UseBigShapeBuffer],0
jz ??do_args ;just use the old shape drawing system
mov edi,[src]
mov [header_pointer],edi
mov eax,[BigShapeBufferStart]
cmp [(ShapeHeaderType edi).shape_buffer],0
jz ??is_ordinary_shape
mov eax,[TheaterShapeBufferStart]
??is_ordinary_shape:
mov [shape_buffer_start],eax
mov edi,[(ShapeHeaderType edi).shape_data]
add edi,[shape_buffer_start]
mov [src],edi
mov [use_old_draw],0
;====================================================================
; Pull off optional arguments:
; EDI is used as an offset from the 'flags' parameter, to point
; to the optional argument currently being processed.
;====================================================================
??do_args:
mov edi , 4 ; optional params start past flags
mov [ jflags ] , 0 ; clear jump flags
??check_centering:
;-------------------------------------------------------------------
; See if we need to center the frame
;-------------------------------------------------------------------
test [ flags ] , SHAPE_CENTER ; does this need to be centered?
je ??check_trans ; if not the skip over this stuff
mov eax , [ pixel_width ]
mov ebx , [ pixel_height ]
sar eax , 1
sar ebx , 1
sub [ x_pixel ] , eax
sub [ y_pixel ] , ebx
??check_trans:
test [ flags ] , SHAPE_TRANS
jz ??check_ghost
or [ jflags ] , FLAG_TRANS
;--------------------------------------------------------------------
; SHAPE_GHOST: DWORD is_translucent tbl
;--------------------------------------------------------------------
??check_ghost:
test [ flags ] , SHAPE_GHOST ; are we ghosting this shape
jz ??check_fading
mov eax , [ flags + edi ]
or [ jflags ] , FLAG_GHOST
mov [ IsTranslucent ] , eax ; save ptr to is_trans. tbl
add eax , 0100h ; add 256 for first table
add edi , 4 ; next argument
mov [ Translucent ] , eax ; save ptr to translucent tbl
??check_fading:
;______________________________________________________________________
; If this is the first time through for this shape then
; set up the shape header
;______________________________________________________________________
pushad
cmp [UseBigShapeBuffer],0 ;no big shape buffer so use old system
jz ??new_shape
cmp [UseOldShapeDraw],0 ;use old shape system flag
jnz ??new_shape
mov edi,[header_pointer]
cmp [(ShapeHeaderType edi).draw_flags],-1
jz ??setup_headers
mov eax,[flags] ;Redo the shape headers if this shape was
and eax,SHAPE_TRANS or SHAPE_FADING or SHAPE_PREDATOR or SHAPE_GHOST ;initially set up with different flags
cmp eax,[(ShapeHeaderType edi).draw_flags]
jz ??no_header_setup
??new_shape:
mov [use_old_draw],1
jmp ??no_header_setup
??setup_headers:
push [IsTranslucent]
push [Translucent]
push [flags]
push [header_pointer]
push [src]
push [pixel_height]
push [pixel_width]
call Setup_Shape_Header
add esp,7*4
mov [ShapeJumpTableAddress],offset AllFlagsJumpTable
jmp ??headers_set
??no_header_setup:
xor eax,eax
test [flags],SHAPE_PREDATOR
jz ??not_shape_predator
or al,BLIT_PREDATOR
??not_shape_predator:
test [flags],SHAPE_FADING
jz ??not_shape_fading
or al,BLIT_FADING
??not_shape_fading:
test [flags],SHAPE_TRANS
jz ??not_shape_transparent
or al,BLIT_TRANSPARENT
??not_shape_transparent:
test [flags],SHAPE_GHOST
jz ??not_shape_ghost
or al,BLIT_GHOST
??not_shape_ghost:
shl eax,7
add eax,offset NewShapeJumpTable
mov [ShapeJumpTableAddress],eax
??headers_set:
popad
;--------------------------------------------------------------------
; SHAPE_FADING: DWORD fade_table[256], DWORD fade_count
;--------------------------------------------------------------------
test [ flags ] , SHAPE_FADING ; are we fading this shape
jz ??check_predator
mov eax , [ flags + edi ]
mov [ FadingTable ] , eax ; save address of fading tbl
mov eax , [ flags + edi + 4 ] ; get fade num
or [ jflags ] , FLAG_FADING
and eax , 03fh ; no need for more than 63
add edi , 8 ; next argument
cmp eax , 0 ; check if it's 0
jnz ??set_fading ; if not, store fade num
and [ flags ] , NOT SHAPE_FADING ; otherwise, don't fade
??set_fading:
mov [ FadingNum ] , eax
mov ebx,[ShapeJumpTableAddress]
mov [dword ebx+CriticalFadeRedirections-NewShapeJumpTable],offset Single_Line_Single_Fade
mov [dword ebx+CriticalFadeRedirections-NewShapeJumpTable+4],offset Single_Line_Single_Fade_Trans
cmp eax,1
jz ??single_fade
mov [dword ebx+CriticalFadeRedirections-NewShapeJumpTable],offset Single_Line_Fading
mov [dword ebx+CriticalFadeRedirections-NewShapeJumpTable+4],offset Single_Line_Fading_Trans
??single_fade:
;--------------------------------------------------------------------
; SHAPE_PREDATOR: DWORD init_pred_lookup_offset (0-7)
;--------------------------------------------------------------------
??check_predator:
test [ flags ] , SHAPE_PREDATOR ; is predator effect on
jz ??check_partial
mov eax , [ flags + edi ] ; pull the partial value
or [ jflags ] , FLAG_PREDATOR
shl eax , 1
cmp eax , 0
jge ??check_range
neg eax
mov ebx , -1
and eax , PRED_MASK ; keep entries within bounds
mov bl , al
mov eax , ebx ; will be ffffff00-ffffff07
jmp ??pred_cont
??check_range:
and eax , PRED_MASK ; keep entries within bounds
??pred_cont:
add edi , 4 ; next argument
mov [ BFPredOffset ] , eax
mov [ BFPartialCount ] , 0 ; clear the partial count
mov [ BFPartialPred ] , 100h ; init partial to off
??pred_neg_init:
mov esi , [ dest ] ; get ptr to dest
mov ebx, 7 * 2
??pred_loop:
movzx eax , [ WORD PTR BFPredNegTable + ebx ]
add eax , [ (GraphicViewPort esi) . GVPWidth ] ; add width
add eax , [ (GraphicViewPort esi) . GVPXAdd ] ; add x add
add eax , [ (GraphicViewPort esi) . GVPPitch ] ; extra pitch of DD surface ST - 9/29/95 1:08PM
mov [ WORD PTR BFPredNegTable + 16 + ebx ] , ax
dec ebx
dec ebx
jge ??pred_loop
;--------------------------------------------------------------------
; SHAPE_PARTIAL: DWORD partial_pred_value (0-255)
;--------------------------------------------------------------------
??check_partial:
test [ flags ] , SHAPE_PARTIAL ; is this a partial pred?
jz ??setupfunc
mov eax , [ flags + edi ] ; pull the partial value
add edi , 4 ; next argument
and eax , 0ffh ; make sure 0-255
mov [ BFPartialPred ] , eax ; store it off
??setupfunc:
mov ebx , [ jflags ] ; load flags value
and ebx , FLAG_MASK ; clip high bits
add ebx , ebx ; mult by 4 to get DWORD offset
add ebx , ebx
mov ebx , [ BufferFrameTable + ebx ] ; get table value
mov [ BufferFrameRout ] , ebx ; store it in the function pointer
; Clip dest Rectangle against source Window boundaries.
mov [ scr_x ] , 0
mov [ scr_y ] , 0
mov esi , [ dest ] ; get ptr to dest
xor ecx , ecx
xor edx , edx
mov edi , [ (GraphicViewPort esi) . GVPWidth ] ; get width into register
mov ebx , [ x_pixel ]
mov eax , [ x_pixel ]
add ebx , [ pixel_width ]
shld ecx , eax , 1
mov [ x1_pixel ] , ebx
inc edi
shld edx , ebx , 1
sub eax , edi
sub ebx , edi
shld ecx , eax , 1
shld edx , ebx , 1
mov edi,[ ( GraphicViewPort esi) . GVPHeight ] ; get height into register
mov ebx , [ y_pixel ]
mov eax , [ y_pixel ]
add ebx , [ pixel_height ]
shld ecx , eax , 1
mov [ y1_pixel ] , ebx
inc edi
shld edx , ebx , 1
sub eax , edi
sub ebx , edi
shld ecx , eax , 1
shld edx , ebx , 1
xor cl , 5
xor dl , 5
mov al , cl
test dl , cl
jnz ??real_out
or al , dl
jz ??do_blit
mov [use_old_draw],1
test cl , 1000b
jz ??dest_left_ok
mov eax , [ x_pixel ]
neg eax
mov [ x_pixel ] , 0
mov [ scr_x ] , eax
??dest_left_ok:
test cl , 0010b
jz ??dest_bottom_ok
mov eax , [ y_pixel ]
neg eax
mov [ y_pixel ] , 0
mov [ scr_y ] , eax
??dest_bottom_ok:
test dl , 0100b
jz ??dest_right_ok
mov eax , [ (GraphicViewPort esi) . GVPWidth ] ; get width into register
mov [ x1_pixel ] , eax
??dest_right_ok:
test dl , 0001b
jz ??do_blit
mov eax , [ (GraphicViewPort esi) . GVPHeight ] ; get width into register
mov [ y1_pixel ] , eax
??do_blit:
cld
mov eax , [ (GraphicViewPort esi) . GVPXAdd ]
add eax , [ (GraphicViewPort esi) . GVPPitch ]
add eax , [ (GraphicViewPort esi) . GVPWidth ]
mov edi , [ (GraphicViewPort esi) . GVPOffset ]
mov ecx , eax
mul [ y_pixel ]
add edi , [ x_pixel ]
add edi , eax
add ecx , [ x_pixel ]
sub ecx , [ x1_pixel ]
mov [ dest_adjust_width ] , ecx
mov esi , [ src ]
mov eax , [ pixel_width ]
sub eax , [ x1_pixel ]
add eax , [ x_pixel ]
mov [ scr_adjust_width ] , eax
mov eax , [ scr_y ]
mul [ pixel_width ]
add eax , [ scr_x ]
add esi , eax
;
; If the shape needs to be clipped then we cant handle it with the new header systen
; so draw it with the old shape drawer
;
cmp [use_old_draw],0
jnz ??use_old_stuff
add [header_pointer],size ShapeHeaderType
mov edx,[pixel_height]
mov ecx,[pixel_width]
mov eax,[header_pointer]
mov al,[eax]
mov [save_ecx],ecx
inc [header_pointer]
and eax,BLIT_ALL
shl eax,2
add eax,[ShapeJumpTableAddress]
jmp [dword eax]
??use_old_stuff:
mov edx , [ y1_pixel ]
mov eax , [ x1_pixel ]
sub edx , [ y_pixel ]
jle ??real_out
sub eax , [ x_pixel ]
jle ??real_out
jmp [ BufferFrameRout ] ; buffer frame to viewport routine
??real_out:
epilogue
ret
; ********************************************************************
; Forward bitblit only
; the inner loop is so efficient that
; the optimal consept no longer apply because
; the optimal byte have to by a number greather than 9 bytes
; ********************************************************************
global BF_Copy:near
BF_Copy:
prologue
cmp eax , 10
jl ??forward_loop_bytes
??forward_loop_dword:
mov ecx , edi
mov ebx , eax
neg ecx
and ecx , 3
sub ebx , ecx
rep movsb
mov ecx , ebx
shr ecx , 2
rep movsd
mov ecx , ebx
and ecx , 3
rep movsb
add esi , [ scr_adjust_width ]
add edi , [ dest_adjust_width ]
dec edx
jnz ??forward_loop_dword
ret
??forward_loop_bytes:
mov ecx , eax
rep movsb
add esi , [ scr_adjust_width ]
add edi , [ dest_adjust_width ]
dec edx ; decrement the height
jnz ??forward_loop_bytes
epilogue
ret
;********************************************************************
;********************************************************************
segment code page public use32 'code' ; Need stricter segment alignment
; for pentium optimisations
;*****************************************************************************
; Draw a single line with transparent pixels
;
; 11/29/95 10:21AM - ST
;
align 32
Single_Line_Trans:
prologue
??slt_mask_map_lp: ; Pentium pipeline usage
;Pipe Cycles
mov al,[esi] ;U 1
inc esi ;Vee 1
test al,al ;U 1
jz ??slt_skip ;Vee 1/5
??slt_not_trans:mov [edi],al ;u 1
inc edi ;vee 1
dec ecx ;u 1
jnz ??slt_mask_map_lp ;vee (maybe) 1
??slt_end_line: epilogue
next_line
align 32
??slt_skip: inc edi
dec ecx
jz ??slt_skip_end_line
mov al,[esi]
inc esi
test al,al
jz ??slt_skip2
mov [edi],al
inc edi
dec ecx
jnz ??slt_mask_map_lp
epilogue
next_line
align 32
??slt_skip2: inc edi
dec ecx
jz ??slt_end_line
;
; If we have hit two transparent pixels in a row then we go into
; the transparent optimised bit
;
??slt_round_again:
rept 64
mov al,[esi] ; ;pipe 1
inc esi ;1 ;pipe 2
test al,al ; ;pipe 1
jnz ??slt_not_trans;pipe 2 (not pairable in 1)
;2
inc edi ; ;pipe 1
dec ecx ;3 ;pipe 2
jz ??slt_end_line ;4 ;pipe 1 (not pairable)
endm ; best case is 4 cycles per iteration
jmp ??slt_round_again
??slt_skip_end_line:
epilogue
next_line
;*****************************************************************************
; Draw a single line with no transparent pixels
;
; 11/29/95 10:21AM - ST
;
; We have to align the destination for cards that dont bankswitch correctly
; when you write non-aligned data.
;
align 32
Long_Single_Line_Copy:
prologue
rept 3
test edi,3
jz ??LSLC_aligned
movsb
dec ecx
endm
??LSLC_aligned:
mov ebx,ecx
shr ecx,2
rep movsd
and ebx,3
jz ??out
movsb
dec bl
jz ??out
movsb
dec bl
jz ??out
movsb
??out: epilogue
next_line
;*****************************************************************************
; Draw a single short line with no transparent pixels
;
; 11/29/95 10:21AM - ST
;
align 32
Short_Single_Line_Copy:
prologue
cmp ecx,16
jge Long_Single_Line_Copy
mov ebx,ecx
rep movsb
mov ecx,ebx
epilogue
next_line
;*****************************************************************************
; Skip a line of source that is all transparent
;
; 11/29/95 10:21AM - ST
;
align 32
Single_Line_Skip:
prologue
add esi,ecx
add edi,ecx
epilogue
next_line
;*****************************************************************************
; Draw a single line with ghosting
;
; 11/29/95 10:21AM - ST
;
align 32
Single_Line_Ghost:
prologue
xor eax,eax
??slg_loop: mov al,[esi]
mov ebx,[IsTranslucent]
inc esi
mov bh,[eax+ebx]
cmp bh,-1
jz ??slg_store_pixel
and ebx,0ff00h
mov al,[edi]
add ebx,[Translucent]
mov al,[eax+ebx]
??slg_store_pixel:
mov [edi],al
inc edi
dec ecx
jnz ??slg_loop
epilogue
next_line
;*****************************************************************************
; Draw a single line with transparent pixels and ghosting
;
; 11/29/95 10:21AM - ST
;
align 32
Single_Line_Ghost_Trans:
prologue
xor eax,eax
; cmp ecx,3
; ja ??slgt4
??slgt_loop: mov al,[esi]
inc esi
test al,al
jz ??slgt_transparent
??slgt_not_transparent:
mov ebx,[IsTranslucent]
mov bh,[eax+ebx]
cmp bh,-1
jz ??slgt_store_pixel
and ebx,0ff00h
mov al,[edi]
add ebx,[Translucent]
mov al,[eax+ebx]
??slgt_store_pixel:
mov [edi],al
inc edi
dec ecx
jnz ??slgt_loop
epilogue
next_line
align 32
??slgt_transparent:
inc edi ;1
dec ecx ;2
jz ??slgt_out ;1 (not pairable)
??slgt_round_again:
rept 64
mov al,[esi] ; ;pipe 1
inc esi ;1 ;pipe 2
test al,al ; ;pipe 1
jnz ??slgt_not_transparent ;pipe 2 (not pairable in 1)
;2
inc edi ; ;pipe 1
dec ecx ;3 ;pipe 2
jz ??slgt_out ;4 ;pipe 1 (not pairable)
endm ; best case is 4 cycles per iteration
jmp ??slgt_round_again
??slgt_out: epilogue
next_line
;
; Optimised video memory access version
;
align 32
??slgt4: push edx
mov edx,[edi]
rept 4
local slgt4_store1
local slgt4_trans1
mov al,[esi]
inc esi
test al,al
jz slgt4_trans1
mov ebx,[IsTranslucent]
mov bh,[eax+ebx]
cmp bh,-1
jz slgt4_store1
and ebx,0ff00h
mov al,dl
add ebx,[Translucent]
mov al,[eax+ebx]
slgt4_store1: mov dl,al
slgt4_trans1: ror edx,8
endm
mov [edi],edx
pop edx
lea edi,[edi+4]
lea ecx,[ecx+0fffffffch]
cmp ecx,3
ja ??slgt4
test ecx,ecx
jnz ??slgt_loop
epilogue
next_line
;*****************************************************************************
; Draw a single line with fading (colour remapping)
;
; 11/29/95 10:21AM - ST
;
align 32
Single_Line_Fading:
prologue
xor eax,eax
mov ebx,[FadingTable]
push ebp
mov ebp,[FadingNum]
push ebp
??slf_loop: mov al,[esi]
inc esi
mov ebp,[esp]
??slf_fade_loop:mov al,[ebx+eax]
dec ebp
jnz ??slf_fade_loop
mov [edi],al
inc edi
dec ecx
jnz ??slf_loop
add esp,4
pop ebp
epilogue
next_line
;*****************************************************************************
; Draw a single line with transparent pixels and fading (colour remapping)
;
; 11/29/95 10:21AM - ST
;
align 32
Single_Line_Fading_Trans:
prologue
xor eax,eax
mov ebx,[FadingTable]
push ebp
mov ebp,[FadingNum]
push ebp
??slft_loop: mov al,[esi]
inc esi
test al,al
jz ??slft_transparent
mov ebp,[esp]
??slft_fade_loop:
mov al,[ebx+eax]
dec ebp
jnz ??slft_fade_loop
mov [edi],al
??slft_transparent:
inc edi
dec ecx
jnz ??slft_loop
add esp,4
pop ebp
epilogue
next_line
;*****************************************************************************
; Draw a single line with a single fade level (colour remap)
;
; 11/29/95 10:21AM - ST
;
align 32
Single_Line_Single_Fade:
prologue
xor eax,eax
mov ebx,[FadingTable]
??slsf_loop: mov al,[esi]
mov al,[ebx+eax]
mov [edi],al
inc esi
inc edi
dec ecx
jnz ??slsf_loop
epilogue
next_line
;*****************************************************************************
; Draw a single line with transparent pixels and a single fade level (colour remap)
;
; 11/29/95 10:21AM - ST
;
align 32
Single_Line_Single_Fade_Trans:
prologue
xor eax,eax
mov ebx,[FadingTable]
??slsft_loop: mov al,[esi]
inc esi
test al,al
jz ??slsft_transparent
mov al,[ebx+eax]
mov [edi],al
inc edi
dec ecx
jnz ??slsft_loop
epilogue
next_line
align 32
??slsft_transparent:
inc edi
dec ecx
jz ??slsft_next_line
mov al,[esi]
inc esi
test al,al
jz ??slsft_transparent
mov al,[ebx+eax]
mov [edi],al
inc edi
dec ecx
jnz ??slsft_loop
??slsft_next_line:
epilogue
next_line
;*****************************************************************************
; Draw a single line with ghosting and fading (colour remapping)
;
; 11/29/95 10:21AM - ST
;
align 32
Single_Line_Ghost_Fading:
prologue
mov [StashECX],ecx
??SLGF_loop: xor eax,eax
mov al,[esi]
mov ebx,[IsTranslucent]
mov bh,[eax+ebx]
cmp bh,-1
jz ??slgf_do_fading
and ebx,0ff00h
mov al,[edi]
add ebx,[Translucent]
mov al,[ebx+eax]
??slgf_do_fading:
mov ebx,[FadingTable]
mov ecx,[FadingNum]
??slgf_fade_loop:
mov al,[eax+ebx]
dec ecx
jnz ??slgf_fade_loop
mov [edi],al
inc esi
inc edi
dec [StashECX]
jnz ??SLGF_loop
epilogue
next_line
;*****************************************************************************
; Draw a single line with transparent pixels, ghosting and fading
;
; 11/29/95 10:21AM - ST
;
align 32
Single_Line_Ghost_Fading_Trans:
prologue
mov [StashECX],ecx
xor eax,eax
; cmp ecx,3
; ja ??slgft4
??SLGFT_loop: mov al,[esi]
inc esi
test al,al
jz ??slgft_trans_pixel
mov ebx,[IsTranslucent]
mov bh,[eax+ebx]
cmp bh,-1
jz ??slgft_do_fading
and ebx,0ff00h
mov al,[edi]
add ebx,[Translucent]
mov al,[ebx+eax]
??slgft_do_fading:
mov ebx,[FadingTable]
mov ecx,[FadingNum]
??slgft_fade_loop:
mov al,[eax+ebx]
dec ecx
jnz ??slgft_fade_loop
mov [edi],al
??slgft_trans_pixel:
inc edi
dec [StashECX]
jnz ??SLGFT_loop
epilogue
next_line
align 32
??slgft4: push edx
mov edx,[edi]
rept 4
local slgft4_fade
local slgft4_fade_lp
local slgft4_trans
mov al,[esi]
inc esi
test al,al
jz slgft4_trans
mov ebx,[IsTranslucent]
mov bh,[eax+ebx]
cmp bh,-1
jz slgft4_fade
and ebx,0ff00h
mov al,dl
add ebx,[Translucent]
mov al,[ebx+eax]
slgft4_fade: mov ebx,[FadingTable]
mov ecx,[FadingNum]
slgft4_fade_lp: mov al,[eax+ebx]
dec ecx
jnz slgft4_fade_lp
mov dl,al
slgft4_trans: ror edx,8
endm
mov [edi],edx
pop edx
lea edi,[edi+4]
sub [StashECX],4
jz ??slgft4_out
cmp [StashECX],3
ja ??slgft4
jmp ??SLGFT_loop
??slgft4_out: epilogue
next_line
;*****************************************************************************
; Draw a single line with predator effect
;
; 11/29/95 10:21AM - ST
;
align 32
Single_Line_Predator:
prologue
??slp_loop: mov al,[esi]
mov ebx,[BFPartialCount]
add ebx,[BFPartialPred]
or bh,bh
jnz ??slp_get_pred
mov [BFPartialCount] , ebx
jmp ??slp_skip_pixel
??slp_get_pred: xor bh , bh
mov eax,[BFPredOffset]
mov [BFPartialCount] , ebx
add [BYTE BFPredOffset],2
mov eax,[DWORD BFPredTable+eax]
and [BYTE BFPredOffset],PRED_MASK
and eax,0ffffh
mov al,[edi+eax]
mov [edi],al
??slp_skip_pixel:
inc esi
inc edi
dec ecx
jnz ??slp_loop
epilogue
next_line
;*****************************************************************************
; Draw a single line with transparent pixels and predator effect
;
; 11/29/95 10:21AM - ST
;
align 32
Single_Line_Predator_Trans:
prologue
??slpt_loop: mov al,[esi]
inc esi
test al,al
jz ??slpt_skip_pixel
mov ebx,[BFPartialCount]
add ebx,[BFPartialPred]
or bh,bh
jnz ??slpt_get_pred
mov [BFPartialCount] , ebx
jmp ??slpt_skip_pixel
??slpt_get_pred:xor bh , bh
mov eax,[BFPredOffset]
mov [BFPartialCount] , ebx
add [BYTE BFPredOffset],2
mov eax,[DWORD BFPredTable+eax]
and [BYTE PTR BFPredOffset ] , PRED_MASK
and eax,0ffffh
mov al,[edi+eax]
mov [edi],al
??slpt_skip_pixel:
inc edi
dec ecx
jnz ??slpt_loop
epilogue
next_line
;*****************************************************************************
; Draw a single line with predator and ghosting
;
; 11/29/95 10:21AM - ST
;
align 32
Single_Line_Predator_Ghost:
prologue
??slpg_loop: mov al,[esi]
mov ebx,[BFPartialCount]
add ebx,[BFPartialPred]
test bh,bh
jnz ??slpg_get_pred ; is this a predator pixel?
mov [BFPartialCount],ebx
jmp ??slpg_check_ghost
??slpg_get_pred:
xor bh,bh
mov eax,[BFPredOffset]
mov [BFPartialCount],ebx
add [BYTE BFPredOffset],2
mov eax,[DWORD BFPredTable+eax ]
and [BYTE BFPredOffset],PRED_MASK
and eax,0ffffh
mov al,[edi+eax]
??slpg_check_ghost:
mov ebx,[IsTranslucent]
mov bh,[ebx+eax]
cmp bh,0ffh
je ??slpg_store_pixel
xor eax,eax
and ebx,0FF00h
mov al,[edi]
add ebx,[Translucent]
mov al,[ebx+eax]
??slpg_store_pixel:
mov [edi],al
inc esi
inc edi
dec ecx
jnz ??slpg_loop
epilogue
next_line
;*****************************************************************************
; Draw a single line with transparent pixels, predator and ghosting
;
; 11/29/95 10:21AM - ST
;
align 32
Single_Line_Predator_Ghost_Trans:
prologue
??slpgt_loop: mov al,[esi]
inc esi
test al,al
jz ??slpgt_transparent
mov ebx,[BFPartialCount]
add ebx,[BFPartialPred]
test bh,bh
jnz ??slpgt_get_pred ; is this a predator pixel?
mov [BFPartialCount],ebx
jmp ??slpgt_check_ghost
??slpgt_get_pred:
xor bh,bh
mov eax,[BFPredOffset]
mov [BFPartialCount],ebx
add [BYTE BFPredOffset],2
mov eax,[DWORD BFPredTable+eax ]
and [BYTE BFPredOffset],PRED_MASK
and eax,0ffffh
mov al,[edi+eax]
??slpgt_check_ghost:
mov ebx,[IsTranslucent]
mov bh,[ebx+eax]
cmp bh,0ffh
je ??slpgt_store_pixel
xor eax,eax
and ebx,0FF00h
mov al,[edi]
add ebx,[Translucent]
mov al,[ebx+eax]
??slpgt_store_pixel:
mov [edi],al
??slpgt_transparent:
inc edi
dec ecx
jnz ??slpgt_loop
pop ecx
epilogue
next_line
;*****************************************************************************
; Draw a single line with predator and fading
;
; 11/29/95 10:21AM - ST
;
align 32
Single_Line_Predator_Fading:
prologue
mov [StashECX],ecx
??slpf_loop: mov al,[esi]
mov ebx,[BFPartialCount]
inc esi
add ebx,[BFPartialPred]
test bh,bh
jnz ??slpf_get_pred
mov [BFPartialCount],ebx
jmp ??slpf_do_fading
??slpf_get_pred:xor bh,bh
mov eax,[BFPredOffset]
mov [BFPartialCount],ebx
and [BYTE BFPredOffset],2
mov eax,[DWORD BFPredTable+eax]
and [BYTE BFPredOffset],PRED_MASK
and eax,0ffffh
mov al,[eax+edi]
??slpf_do_fading:
and eax,255
mov ebx,[FadingTable]
mov ecx,[FadingNum]
??slpf_fade_loop:
mov al,[eax+ebx]
dec ecx
jnz ??slpf_fade_loop
mov [edi],al
inc edi
dec [StashECX]
jnz ??slpf_loop
epilogue
next_line
;*****************************************************************************
; Draw a single line with transparent pixels, fading and predator
;
; 11/29/95 10:21AM - ST
;
align 32
Single_Line_Predator_Fading_Trans:
prologue
mov [StashECX],ecx
??slpft_loop: mov al,[esi]
inc esi
test al,al
jz ??slpft_transparent
mov ebx,[BFPartialCount]
add ebx,[BFPartialPred]
test bh,bh
jnz ??slpft_get_pred
mov [BFPartialCount],ebx
jmp ??slpft_do_fading
??slpft_get_pred:
xor bh,bh
mov eax,[BFPredOffset]
mov [BFPartialCount],ebx
and [BYTE BFPredOffset],2
mov eax,[DWORD BFPredTable+eax]
and [BYTE BFPredOffset],PRED_MASK
and eax,0ffffh
mov al,[eax+edi]
??slpft_do_fading:
and eax,255
mov ebx,[FadingTable]
mov ecx,[FadingNum]
??slpft_fade_loop:
mov al,[eax+ebx]
dec ecx
jnz ??slpft_fade_loop
mov [edi],al
??slpft_transparent:
inc edi
dec [StashECX]
jnz ??slpft_loop
epilogue
next_line
;*****************************************************************************
; Draw a single line with predator, ghosting and fading
;
; 11/29/95 10:21AM - ST
;
align 32
Single_Line_Predator_Ghost_Fading:
prologue
mov [StashECX],ecx
??slpgf_loop: mov al,[esi]
mov ebx,[BFPartialCount]
inc esi
add ebx,[BFPartialPred]
test bh , bh
jnz ??slpgf_get_pred ; is this a predator pixel?
mov [BFPartialCount],ebx
jmp ??slpgf_check_ghost
??slpgf_get_pred:
xor bh,bh
mov eax,[BFPredOffset]
mov [BFPartialCount],ebx
add [BYTE BFPredOffset],2
mov eax,[DWORD BFPredTable+eax]
and [BYTE BFPredOffset],PRED_MASK
and eax,0ffffh
mov al,[edi+eax]
??slpgf_check_ghost:
and eax,255
mov ebx,[IsTranslucent]
mov bh,[ebx+eax]
cmp bh,0ffh
je ??slpgf_do_fading
and ebx , 0FF00h
mov al,[edi]
add ebx,[Translucent]
mov al,[ebx+eax]
??slpgf_do_fading:
xor eax,eax
mov ebx,[FadingTable]
mov ecx,[FadingNum]
??slpgf_fade_loop:
mov al,[ebx+eax]
dec ecx
jnz ??slpgf_fade_loop
??slpgf_store_pixel:
mov [edi],al
inc edi
dec [StashECX]
jnz ??slpgf_loop
epilogue
next_line
;*****************************************************************************
; Draw a single line with transparent pixels, predator, ghosting and fading
;
; 11/29/95 10:21AM - ST
;
align 32
Single_Line_Predator_Ghost_Fading_Trans:
prologue
mov [StashECX],ecx
??slpgft_loop: mov al,[esi]
inc esi
test al,al
jz ??slpgft_transparent
mov ebx,[BFPartialCount]
add ebx,[BFPartialPred]
test bh , bh
jnz ??slpgft_get_pred ; is this a predator pixel?
mov [BFPartialCount],ebx
jmp ??slpgft_check_ghost
??slpgft_get_pred:
xor bh,bh
mov eax,[BFPredOffset]
mov [BFPartialCount],ebx
add [BYTE BFPredOffset],2
mov eax,[DWORD BFPredTable+eax]
and [BYTE BFPredOffset],PRED_MASK
and eax,0ffffh
mov al,[edi+eax]
??slpgft_check_ghost:
and eax,255
mov ebx,[IsTranslucent]
mov bh,[ebx+eax]
cmp bh,0ffh
je ??slpgft_do_fading
and ebx , 0FF00h
mov al,[edi]
add ebx,[Translucent]
mov al,[ebx+eax]
??slpgft_do_fading:
xor eax,eax
mov ebx,[FadingTable]
mov ecx,[FadingNum]
??slpgft_fade_loop:
mov al,[ebx+eax]
dec ecx
jnz ??slpgft_fade_loop
??slpgft_store_pixel:
mov [edi],al
??slpgft_transparent:
inc edi
dec [StashECX]
jnz ??slpgft_loop
epilogue
next_line
ends ;end of strict alignment segment
codeseg
global BF_Trans:near
BF_Trans:
prologue
; calc the code location to skip to 10 bytes per REPT below!!!!
mov ecx , eax
and ecx , 01fh
lea ecx , [ ecx + ecx * 4 ] ; quick multiply by 5
neg ecx
shr eax , 5
lea ecx , [ ??trans_reference + ecx * 2 ] ; next multiply by 2
mov [ loop_cnt ] , eax
mov [ jmp_loc ] , ecx
??trans_loop:
mov ecx , [ loop_cnt ]
jmp [ jmp_loc ]
; the following code should NOT be changed without changing the calculation
; above!!!!!!
??trans_line:
REPT 32
local trans_pixel
mov bl , [ esi ]
inc esi
test bl , bl
jz trans_pixel
mov [ edi ] , bl
trans_pixel:
inc edi
ENDM
??trans_reference:
dec ecx
jge ??trans_line
add esi , [ scr_adjust_width ]
add edi , [ dest_adjust_width ]
dec edx
jnz ??trans_loop
epilogue
ret
;********************************************************************
;********************************************************************
global BF_Ghost:near
BF_Ghost:
prologue
mov ebx , eax ; width
; NOTE: the below calculation assumes a group of instructions is
; less than 256 bytes
; get length of the 32 groups of instructions
lea ecx , [ ??ghost_reference - ??ghost_line ]
shr ebx , 5 ; width / 32
shr ecx , 5 ; length of instructions / 32
and eax , 01fh ; mod of width / 32
mul cl ; calc offset to start of group
neg eax ; inverse of width
mov [ loop_cnt ] , ebx ; save width / 32
lea ecx , [ ??ghost_reference + eax ]
mov eax , 0
mov [ jmp_loc ] , ecx
??ghost_loop:
mov ecx , [ loop_cnt ]
jmp [ jmp_loc ]
??ghost_line:
REPT 32
local store_pixel
mov al , [ esi ]
inc esi
mov ebx , [ IsTranslucent ] ; is it a translucent color?
mov bh , [ BYTE PTR ebx + eax ]
cmp bh , 0ffh
je store_pixel
and ebx , 0FF00h ; clear all of ebx except bh
; we have the index to the translation table
; ((trans_colour * 256) + dest colour)
mov al , [ edi ] ; mov pixel at destination to al
add ebx , [ Translucent ] ; get the ptr to it!
; Add the (trans_color * 256) of the translation equ.
mov al , [ BYTE PTR ebx + eax ] ; get new pixel in al
store_pixel:
mov [ edi ] , al
inc edi
ENDM
??ghost_reference:
dec ecx
jge ??ghost_line
add esi , [ scr_adjust_width ]
add edi , [ dest_adjust_width ]
dec edx
jnz ??ghost_loop
epilogue
ret
;********************************************************************
;********************************************************************
global BF_Ghost_Trans:near
BF_Ghost_Trans:
prologue
mov ebx , eax ; width
; NOTE: the below calculation assumes a group of instructions is
; less than 256 bytes
; get length of the 32 groups of instructions
lea ecx , [ ??ghost_t_reference - ??ghost_t_line ]
shr ebx , 5 ; width / 32
shr ecx , 5 ; length of instructions / 32
and eax , 01fh ; mod of width / 32
mul cl ; calc offset to start of group
neg eax ; inverse of width
mov [ loop_cnt ] , ebx ; save width / 32
lea ecx , [ ??ghost_t_reference + eax ]
mov eax , 0
mov [ jmp_loc ] , ecx
??ghost_t_loop:
mov ecx , [ loop_cnt ]
jmp [ jmp_loc ]
??ghost_t_line:
REPT 32
local transp_pixel
local store_pixel
mov al , [ esi ]
inc esi
test al , al
jz transp_pixel
mov ebx , [ IsTranslucent ] ; is it a translucent color?
mov bh , [ BYTE PTR ebx + eax ]
cmp bh , 0ffh
je store_pixel
and ebx , 0FF00h ; clear all of ebx except bh
; we have the index to the translation table
; ((trans_colour * 256) + dest colour)
mov al , [ edi ] ; mov pixel at destination to al
add ebx , [ Translucent ] ; get the ptr to it!
; Add the (trans_color * 256) of the translation equ.
mov al , [ BYTE PTR ebx + eax ] ; get new pixel in al
store_pixel:
mov [ edi ] , al
transp_pixel:
inc edi
ENDM
??ghost_t_reference:
dec ecx
jge ??ghost_t_line
add esi , [ scr_adjust_width ]
add edi , [ dest_adjust_width ]
dec edx
jnz ??ghost_t_loop
epilogue
ret
;********************************************************************
;********************************************************************
global BF_Fading:near
BF_Fading:
prologue
mov ebx , eax ; width
; NOTE: the below calculation assumes a group of instructions is
; less than 256 bytes
; get length of the 32 groups of instructions
lea ecx , [ ??fading_reference - ??fading_line ]
shr ebx , 5 ; width / 32
shr ecx , 5 ; length of instructions / 32
and eax , 01fh ; mod of width / 32
mul cl ; calc offset to start of group
neg eax ; inverse of width
mov [ loop_cnt ] , ebx ; save width / 32
lea ecx , [ ??fading_reference + eax ]
mov eax , 0
mov [ jmp_loc ] , ecx
??fading_loop:
mov ecx , [ loop_cnt ]
mov [ StashECX ] , ecx ; preserve ecx for later
mov ebx , [ FadingTable ] ; run color through fading table
jmp [ jmp_loc ]
??fading_line_begin:
mov [ StashECX ] , ecx ; preserve ecx for later
??fading_line:
REPT 32
local fade_loop
mov al , [ esi ]
inc esi
mov ecx , [ FadingNum ]
fade_loop:
mov al, [BYTE PTR ebx + eax]
dec ecx
jnz fade_loop
mov [ edi ] , al
inc edi
ENDM
??fading_reference:
mov ecx , [ StashECX ] ; restore ecx for main draw loop
dec ecx
jge ??fading_line_begin
add esi , [ scr_adjust_width ]
add edi , [ dest_adjust_width ]
dec edx
jnz ??fading_loop
epilogue
ret
;********************************************************************
;********************************************************************
global BF_Fading_Trans:near
BF_Fading_Trans:
prologue
mov ebx , eax ; width
; NOTE: the below calculation assumes a group of instructions is
; less than 256 bytes
; get length of the 32 groups of instructions
lea ecx , [ ??fading_t_reference - ??fading_t_line ]
shr ebx , 5 ; width / 32
shr ecx , 5 ; length of instructions / 32
and eax , 01fh ; mod of width / 32
mul cl ; calc offset to start of group
neg eax ; inverse of width
mov [ loop_cnt ] , ebx ; save width / 32
lea ecx , [ ??fading_t_reference + eax ]
mov eax , 0
mov [ jmp_loc ] , ecx
??fading_t_loop:
mov ecx , [ loop_cnt ]
mov [ StashECX ] , ecx ; preserve ecx for later
mov ebx , [ FadingTable ] ; run color through fading table
jmp [ jmp_loc ]
??fading_t_line_begin:
mov [ StashECX ] , ecx ; preserve ecx for later
??fading_t_line:
REPT 32
local transp_pixel
local fade_loop
mov al , [ esi ]
inc esi
test al , al
jz transp_pixel
mov ecx , [ FadingNum ]
fade_loop:
mov al, [BYTE PTR ebx + eax]
dec ecx
jnz fade_loop
mov [ edi ] , al
transp_pixel:
inc edi
ENDM
??fading_t_reference:
mov ecx , [ StashECX ] ; restore ecx for main draw loop
dec ecx
jge ??fading_t_line_begin
add esi , [ scr_adjust_width ]
add edi , [ dest_adjust_width ]
dec edx
jnz ??fading_t_loop
epilogue
ret
;********************************************************************
;********************************************************************
global BF_Ghost_Fading:near
BF_Ghost_Fading:
prologue
mov ebx , eax ; width
; NOTE: the below calculation assumes a group of instructions is
; less than 256 bytes
; get length of the 32 groups of instructions
lea ecx , [ ??ghost_f_reference - ??ghost_f_line ]
shr ebx , 5 ; width / 32
shr ecx , 5 ; length of instructions / 32
and eax , 01fh ; mod of width / 32
mul cl ; calc offset to start of group
neg eax ; inverse of width
mov [ loop_cnt ] , ebx ; save width / 32
lea ecx , [ ??ghost_f_reference + eax ]
mov eax , 0
mov [ jmp_loc ] , ecx
??ghost_f_loop:
mov ecx , [ loop_cnt ]
mov [ StashECX ] , ecx ; preserve ecx for later
jmp [ jmp_loc ]
??ghost_f_line_begin:
mov [ StashECX ] , ecx ; preserve ecx for later
??ghost_f_line:
REPT 32
local store_pixel
local do_fading
local fade_loop
mov al , [ esi ]
inc esi
mov ebx , [ IsTranslucent ] ; is it a lucent color?
mov bh , [ BYTE PTR ebx + eax ]
cmp bh , 0ffh
je do_fading
and ebx , 0FF00h ; clear all of ebx except bh
; we have the index to the lation table
; ((_colour * 256) + dest colour)
mov al , [ edi ] ; mov pixel at destination to al
add ebx , [ Translucent ] ; get the ptr to it!
; Add the (_color * 256) of the lation equ.
mov al , [ BYTE PTR ebx + eax ] ; get new pixel in al
; DRD jmp store_pixel
do_fading:
mov ebx , [ FadingTable ] ; run color through fading table
mov ecx , [ FadingNum ]
fade_loop:
mov al, [BYTE PTR ebx + eax]
dec ecx
jnz fade_loop
store_pixel:
mov [ edi ] , al
inc edi
ENDM
??ghost_f_reference:
mov ecx , [ StashECX ] ; restore ecx for main draw loop
dec ecx
jge ??ghost_f_line_begin
add esi , [ scr_adjust_width ]
add edi , [ dest_adjust_width ]
dec edx
jnz ??ghost_f_loop
epilogue
ret
;********************************************************************
;********************************************************************
global BF_Ghost_Fading_Trans:near
BF_Ghost_Fading_Trans:
prologue
mov ebx , eax ; width
; NOTE: the below calculation assumes a group of instructions is
; less than 256 bytes
; get length of the 32 groups of instructions
lea ecx , [ ??ghost_f_t_reference - ??ghost_f_t_line ]
shr ebx , 5 ; width / 32
shr ecx , 5 ; length of instructions / 32
and eax , 01fh ; mod of width / 32
mul cl ; calc offset to start of group
neg eax ; inverse of width
mov [ loop_cnt ] , ebx ; save width / 32
lea ecx , [ ??ghost_f_t_reference + eax ]
mov eax , 0
mov [ jmp_loc ] , ecx
??ghost_f_t_loop:
mov ecx , [ loop_cnt ]
mov [ StashECX ] , ecx ; preserve ecx for later
jmp [ jmp_loc ]
??ghost_f_t_line_begin:
mov [ StashECX ] , ecx ; preserve ecx for later
??ghost_f_t_line:
REPT 32
local transp_pixel
local store_pixel
local do_fading
local fade_loop
mov al , [ esi ]
inc esi
test al , al
jz transp_pixel
mov ebx , [ IsTranslucent ] ; is it a translucent color?
mov bh , [ BYTE PTR ebx + eax ]
cmp bh , 0ffh
je do_fading
and ebx , 0FF00h ; clear all of ebx except bh
; we have the index to the translation table
; ((trans_colour * 256) + dest colour)
mov al , [ edi ] ; mov pixel at destination to al
add ebx , [ Translucent ] ; get the ptr to it!
; Add the (trans_color * 256) of the translation equ.
mov al , [ BYTE PTR ebx + eax ] ; get new pixel in al
; DRD jmp store_pixel
do_fading:
mov ebx , [ FadingTable ] ; run color through fading table
mov ecx , [ FadingNum ]
fade_loop:
mov al, [BYTE PTR ebx + eax]
dec ecx
jnz fade_loop
store_pixel:
mov [ edi ] , al
transp_pixel:
inc edi
ENDM
??ghost_f_t_reference:
mov ecx , [ StashECX ] ; restore ecx for main draw loop
dec ecx
jge ??ghost_f_t_line_begin
add esi , [ scr_adjust_width ]
add edi , [ dest_adjust_width ]
dec edx
jnz ??ghost_f_t_loop
epilogue
ret
;********************************************************************
;********************************************************************
global BF_Predator:near
BF_Predator:
prologue
mov ebx , eax ; width
; NOTE: the below calculation assumes a group of instructions is
; less than 256 bytes
; get length of the 32 groups of instructions
lea ecx , [ ??predator_reference - ??predator_line ]
shr ebx , 5 ; width / 32
shr ecx , 5 ; length of instructions / 32
and eax , 01fh ; mod of width / 32
mul cl ; calc offset to start of group
neg eax ; inverse of width
mov [ loop_cnt ] , ebx ; save width / 32
lea ecx , [ ??predator_reference + eax ]
mov eax , 0
mov [ jmp_loc ] , ecx
??predator_loop:
mov ecx , [ loop_cnt ]
jmp [ jmp_loc ]
??predator_line:
REPT 32
local get_pred
local skip_pixel
mov al , [ esi ]
inc esi
mov ebx , [ BFPartialCount ]
add ebx , [ BFPartialPred ]
or bh , bh
jnz get_pred ; is this a predator pixel?
mov [ BFPartialCount ] , ebx
jmp skip_pixel
get_pred:
xor bh , bh
mov eax, [ BFPredOffset ]
mov [ BFPartialCount ] , ebx
add [ BYTE PTR BFPredOffset ] , 2
movzx eax , [ WORD PTR BFPredTable + eax ]
and [ BYTE PTR BFPredOffset ] , PRED_MASK
; pick up a color offset a pseudo-
; random amount from the current
movzx eax , [ BYTE PTR edi + eax ] ; viewport address
; xor bh , bh
; mov eax , [ BFPredValue ] ; pick up a color offset a pseudo-
; ; random amount from the current
; mov [ BFPartialCount ] , ebx
; mov al , [ edi + eax ] ; viewport address
mov [ edi ] , al
skip_pixel:
inc edi
ENDM
??predator_reference:
dec ecx
jge ??predator_line
add esi , [ scr_adjust_width ]
add edi , [ dest_adjust_width ]
dec edx
jnz ??predator_loop
epilogue
ret
;********************************************************************
;********************************************************************
global BF_Predator_Trans:near
BF_Predator_Trans:
prologue
mov ebx , eax ; width
; NOTE: the below calculation assumes a group of instructions is
; less than 256 bytes
; get length of the 32 groups of instructions
lea ecx , [ ??predator_t_reference - ??predator_t_line ]
shr ebx , 5 ; width / 32
shr ecx , 5 ; length of instructions / 32
and eax , 01fh ; mod of width / 32
mul cl ; calc offset to start of group
neg eax ; inverse of width
mov [ loop_cnt ] , ebx ; save width / 32
lea ecx , [ ??predator_t_reference + eax ]
mov eax , 0
mov [ jmp_loc ] , ecx
??predator_t_loop:
mov ecx , [ loop_cnt ]
jmp [ jmp_loc ]
??predator_t_line:
REPT 32
local trans_pixel
local get_pred
local store_pixel
mov al , [ esi ]
inc esi
test al , al
jz trans_pixel
mov ebx , [ BFPartialCount ]
add ebx , [ BFPartialPred ]
or bh , bh
jnz get_pred ; is this a predator pixel?
mov [ BFPartialCount ] , ebx
jmp store_pixel
get_pred:
xor bh , bh
mov eax, [ BFPredOffset ]
mov [ BFPartialCount ] , ebx
add [ BYTE PTR BFPredOffset ] , 2
movzx eax , [ WORD PTR BFPredTable + eax ]
and [ BYTE PTR BFPredOffset ] , PRED_MASK
; pick up a color offset a pseudo-
; random amount from the current
movzx eax , [ BYTE PTR edi + eax ] ; viewport address
store_pixel:
mov [ edi ] , al
trans_pixel:
inc edi
ENDM
??predator_t_reference:
dec ecx
jge ??predator_t_line
add esi , [ scr_adjust_width ]
add edi , [ dest_adjust_width ]
dec edx
jnz ??predator_t_loop
epilogue
ret
;********************************************************************
;********************************************************************
global BF_Predator_Ghost:near
BF_Predator_Ghost:
prologue
mov ebx , eax ; width
; NOTE: the below calculation assumes a group of instructions is
; less than 256 bytes
; get length of the 32 groups of instructions
lea ecx , [ ??predator_g_reference - ??predator_g_line ]
shr ebx , 5 ; width / 32
shr ecx , 5 ; length of instructions / 32
and eax , 01fh ; mod of width / 32
mul cl ; calc offset to start of group
neg eax ; inverse of width
mov [ loop_cnt ] , ebx ; save width / 32
lea ecx , [ ??predator_g_reference + eax ]
mov eax , 0
mov [ jmp_loc ] , ecx
??predator_g_loop:
mov ecx , [ loop_cnt ]
jmp [ jmp_loc ]
??predator_g_line:
REPT 32
local get_pred
local check_ghost
local store_pixel
mov al , [ esi ]
mov ebx , [ BFPartialCount ]
inc esi
add ebx , [ BFPartialPred ]
or bh , bh
jnz get_pred ; is this a predator pixel?
mov [ BFPartialCount ] , ebx
jmp check_ghost
get_pred:
xor bh , bh
mov eax, [ BFPredOffset ]
mov [ BFPartialCount ] , ebx
add [ BYTE PTR BFPredOffset ] , 2
movzx eax , [ WORD PTR BFPredTable + eax ]
and [ BYTE PTR BFPredOffset ] , PRED_MASK
; pick up a color offset a pseudo-
; random amount from the current
movzx eax , [ BYTE PTR edi + eax ] ; viewport address
check_ghost:
mov ebx , [ IsTranslucent ] ; is it a translucent color?
mov bh , [ BYTE PTR ebx + eax ]
cmp bh , 0ffh
je store_pixel
and ebx , 0FF00h ; clear all of ebx except bh
; we have the index to the translation table
; ((trans_colour * 256) + dest colour)
mov al , [ edi ] ; mov pixel at destination to al
add ebx , [ Translucent ] ; get the ptr to it!
; Add the (trans_color * 256) of the translation equ.
mov al , [ BYTE PTR ebx + eax ] ; get new pixel in al
store_pixel:
mov [ edi ] , al
inc edi
ENDM
??predator_g_reference:
dec ecx
jge ??predator_g_line
add esi , [ scr_adjust_width ]
add edi , [ dest_adjust_width ]
dec edx
jnz ??predator_g_loop
epilogue
ret
;********************************************************************
;********************************************************************
global BF_Predator_Ghost_Trans:near
BF_Predator_Ghost_Trans:
prologue
mov ebx , eax ; width
; NOTE: the below calculation assumes a group of instructions is
; less than 256 bytes
; get length of the 32 groups of instructions
lea ecx , [ ??predator_g_t_reference - ??predator_g_t_line ]
shr ebx , 5 ; width / 32
shr ecx , 5 ; length of instructions / 32
and eax , 01fh ; mod of width / 32
mul cl ; calc offset to start of group
neg eax ; inverse of width
mov [ loop_cnt ] , ebx ; save width / 32
lea ecx , [ ??predator_g_t_reference + eax ]
mov eax , 0
mov [ jmp_loc ] , ecx
??predator_g_t_loop:
mov ecx , [ loop_cnt ]
jmp [ jmp_loc ]
??predator_g_t_line:
REPT 32
local trans_pixel
local get_pred
local check_ghost
local store_pixel
mov al , [ esi ]
inc esi
test al , al
jz trans_pixel
mov ebx , [ BFPartialCount ]
add ebx , [ BFPartialPred ]
or bh , bh
jnz get_pred ; is this a predator pixel?
mov [ BFPartialCount ] , ebx
jmp check_ghost
get_pred:
xor bh , bh
mov eax, [ BFPredOffset ]
mov [ BFPartialCount ] , ebx
add [ BYTE PTR BFPredOffset ] , 2
movzx eax , [ WORD PTR BFPredTable + eax ]
and [ BYTE PTR BFPredOffset ] , PRED_MASK
; pick up a color offset a pseudo-
; random amount from the current
movzx eax , [ BYTE PTR edi + eax ] ; viewport address
check_ghost:
mov ebx , [ IsTranslucent ] ; is it a translucent color?
mov bh , [ BYTE PTR ebx + eax ]
cmp bh , 0ffh
je store_pixel
and ebx , 0FF00h ; clear all of ebx except bh
; we have the index to the translation table
; ((trans_colour * 256) + dest colour)
mov al , [ edi ] ; mov pixel at destination to al
add ebx , [ Translucent ] ; get the ptr to it!
; Add the (trans_color * 256) of the translation equ.
mov al , [ BYTE PTR ebx + eax ] ; get new pixel in al
store_pixel:
mov [ edi ] , al
trans_pixel:
inc edi
ENDM
??predator_g_t_reference:
dec ecx
jge ??predator_g_t_line
add esi , [ scr_adjust_width ]
add edi , [ dest_adjust_width ]
dec edx
jnz ??predator_g_t_loop
epilogue
ret
;********************************************************************
;********************************************************************
global BF_Predator_Fading:near
BF_Predator_Fading:
prologue
mov ebx , eax ; width
; NOTE: the below calculation assumes a group of instructions is
; less than 256 bytes
; get length of the 32 groups of instructions
lea ecx , [ ??predator_f_reference - ??predator_f_line ]
shr ebx , 5 ; width / 32
shr ecx , 5 ; length of instructions / 32
and eax , 01fh ; mod of width / 32
mul cl ; calc offset to start of group
neg eax ; inverse of width
mov [ loop_cnt ] , ebx ; save width / 32
lea ecx , [ ??predator_f_reference + eax ]
mov eax , 0
mov [ jmp_loc ] , ecx
??predator_f_loop:
mov ecx , [ loop_cnt ]
mov [ StashECX ] , ecx ; preserve ecx for later
jmp [ jmp_loc ]
??predator_f_line_begin:
mov [ StashECX ] , ecx ; preserve ecx for later
??predator_f_line:
REPT 32
local get_pred
local do_fading
local fade_loop
mov al , [ esi ]
mov ebx , [ BFPartialCount ]
inc esi
add ebx , [ BFPartialPred ]
or bh , bh
jnz get_pred ; is this a predator pixel?
mov [ BFPartialCount ] , ebx
jmp do_fading
get_pred:
xor bh , bh
mov eax, [ BFPredOffset ]
mov [ BFPartialCount ] , ebx
add [ BYTE PTR BFPredOffset ] , 2
movzx eax , [ WORD PTR BFPredTable + eax ]
and [ BYTE PTR BFPredOffset ] , PRED_MASK
; pick up a color offset a pseudo-
; random amount from the current
movzx eax , [ BYTE PTR edi + eax ] ; viewport address
do_fading:
mov ebx , [ FadingTable ] ; run color through fading table
mov ecx , [ FadingNum ]
fade_loop:
mov al, [BYTE PTR ebx + eax]
dec ecx
jnz fade_loop
mov [ edi ] , al
inc edi
ENDM
??predator_f_reference:
mov ecx , [ StashECX ] ; restore ecx for main draw loop
dec ecx
jge ??predator_f_line_begin
add esi , [ scr_adjust_width ]
add edi , [ dest_adjust_width ]
dec edx
jnz ??predator_f_loop
epilogue
ret
;********************************************************************
;********************************************************************
global BF_Predator_Fading_Trans:near
BF_Predator_Fading_Trans:
prologue
mov ebx , eax ; width
; NOTE: the below calculation assumes a group of instructions is
; less than 256 bytes
; get length of the 32 groups of instructions
lea ecx , [ ??predator_f_t_reference - ??predator_f_t_line ]
shr ebx , 5 ; width / 32
shr ecx , 5 ; length of instructions / 32
and eax , 01fh ; mod of width / 32
mul cl ; calc offset to start of group
neg eax ; inverse of width
mov [ loop_cnt ] , ebx ; save width / 32
lea ecx , [ ??predator_f_t_reference + eax ]
mov eax , 0
mov [ jmp_loc ] , ecx
??predator_f_t_loop:
mov ecx , [ loop_cnt ]
mov [ StashECX ] , ecx ; preserve ecx for later
jmp [ jmp_loc ]
??predator_f_t_line_begin:
mov [ StashECX ] , ecx ; preserve ecx for later
??predator_f_t_line:
REPT 32
local trans_pixel
local get_pred
local do_fading
local fade_loop
mov al , [ esi ]
inc esi
test al , al
jz trans_pixel
mov ebx , [ BFPartialCount ]
add ebx , [ BFPartialPred ]
or bh , bh
jnz get_pred ; is this a predator pixel?
mov [ BFPartialCount ] , ebx
jmp do_fading
get_pred:
xor bh , bh
mov eax, [ BFPredOffset ]
mov [ BFPartialCount ] , ebx
add [ BYTE PTR BFPredOffset ] , 2
movzx eax , [ WORD PTR BFPredTable + eax ]
and [ BYTE PTR BFPredOffset ] , PRED_MASK
; pick up a color offset a pseudo-
; random amount from the current
movzx eax , [ BYTE PTR edi + eax ] ; viewport address
do_fading:
mov ebx , [ FadingTable ] ; run color through fading table
mov ecx , [ FadingNum ]
fade_loop:
mov al, [BYTE PTR ebx + eax]
dec ecx
jnz fade_loop
mov [ edi ] , al
trans_pixel:
inc edi
ENDM
??predator_f_t_reference:
mov ecx , [ StashECX ] ; restore ecx for main draw loop
dec ecx
jge ??predator_f_t_line_begin
add esi , [ scr_adjust_width ]
add edi , [ dest_adjust_width ]
dec edx
jnz ??predator_f_t_loop
epilogue
ret
;********************************************************************
;********************************************************************
global BF_Predator_Ghost_Fading:near
BF_Predator_Ghost_Fading:
prologue
mov ebx , eax ; width
; NOTE: the below calculation assumes a group of instructions is
; less than 256 bytes
; get length of the 32 groups of instructions
lea ecx , [ ??predator_g_f_reference - ??predator_g_f_line ]
shr ebx , 5 ; width / 32
shr ecx , 5 ; length of instructions / 32
and eax , 01fh ; mod of width / 32
mul cl ; calc offset to start of group
neg eax ; inverse of width
mov [ loop_cnt ] , ebx ; save width / 32
lea ecx , [ ??predator_g_f_reference + eax ]
mov eax , 0
mov [ jmp_loc ] , ecx
??predator_g_f_loop:
mov ecx , [ loop_cnt ]
mov [ StashECX ] , ecx ; preserve ecx for later
jmp [ jmp_loc ]
??predator_g_f_line_begin:
mov [ StashECX ] , ecx ; preserve ecx for later
??predator_g_f_line:
REPT 32
local get_pred
local check_ghost
local store_pixel
local do_fading
local fade_loop
mov al , [ esi ]
mov ebx , [ BFPartialCount ]
inc esi
add ebx , [ BFPartialPred ]
or bh , bh
jnz get_pred ; is this a predator pixel?
mov [ BFPartialCount ] , ebx
jmp check_ghost
get_pred:
xor bh , bh
mov eax, [ BFPredOffset ]
mov [ BFPartialCount ] , ebx
add [ BYTE PTR BFPredOffset ] , 2
movzx eax , [ WORD PTR BFPredTable + eax ]
and [ BYTE PTR BFPredOffset ] , PRED_MASK
; pick up a color offset a pseudo-
; random amount from the current
movzx eax , [ BYTE PTR edi + eax ] ; viewport address
check_ghost:
mov ebx , [ IsTranslucent ] ; is it a translucent color?
mov bh , [ BYTE PTR ebx + eax ]
cmp bh , 0ffh
je do_fading
and ebx , 0FF00h ; clear all of ebx except bh
; we have the index to the translation table
; ((trans_colour * 256) + dest colour)
mov al , [ edi ] ; mov pixel at destination to al
add ebx , [ Translucent ] ; get the ptr to it!
; Add the (trans_color * 256) of the translation equ.
mov al , [ BYTE PTR ebx + eax ] ; get new pixel in al
; DRD jmp store_pixel
do_fading:
mov ebx , [ FadingTable ] ; run color through fading table
mov ecx , [ FadingNum ]
fade_loop:
mov al, [BYTE PTR ebx + eax]
dec ecx
jnz fade_loop
store_pixel:
mov [ edi ] , al
inc edi
ENDM
??predator_g_f_reference:
mov ecx , [ StashECX ] ; restore ecx for main draw loop
dec ecx
jge ??predator_g_f_line_begin
add esi , [ scr_adjust_width ]
add edi , [ dest_adjust_width ]
dec edx
jnz ??predator_g_f_loop
epilogue
ret
;********************************************************************
;********************************************************************
global BF_Predator_Ghost_Fading_Trans:near
BF_Predator_Ghost_Fading_Trans:
prologue
mov ebx , eax ; width
; NOTE: the below calculation assumes a group of instructions is
; less than 256 bytes
; get length of the 32 groups of instructions
lea ecx , [ ??predator_g_f_t_reference - ??predator_g_f_t_line ]
shr ebx , 5 ; width / 32
shr ecx , 5 ; length of instructions / 32
and eax , 01fh ; mod of width / 32
mul cl ; calc offset to start of group
neg eax ; inverse of width
mov [ loop_cnt ] , ebx ; save width / 32
lea ecx , [ ??predator_g_f_t_reference + eax ]
mov eax , 0
mov [ jmp_loc ] , ecx
??predator_g_f_t_loop:
mov ecx , [ loop_cnt ]
mov [ StashECX ] , ecx ; preserve ecx for later
jmp [ jmp_loc ]
??predator_g_f_t_line_begin:
mov [ StashECX ] , ecx ; preserve ecx for later
??predator_g_f_t_line:
REPT 32
local trans_pixel
local get_pred
local check_ghost
local store_pixel
local do_fading
local fade_loop
mov al , [ esi ]
inc esi
test al , al
jz trans_pixel
mov ebx , [ BFPartialCount ]
add ebx , [ BFPartialPred ]
or bh , bh
jnz get_pred ; is this a predator pixel?
mov [ BFPartialCount ] , ebx
jmp check_ghost
get_pred:
xor bh , bh
mov eax, [ BFPredOffset ]
mov [ BFPartialCount ] , ebx
add [ BYTE PTR BFPredOffset ] , 2
movzx eax , [ WORD PTR BFPredTable + eax ]
and [ BYTE PTR BFPredOffset ] , PRED_MASK
; pick up a color offset a pseudo-
; random amount from the current
movzx eax , [ BYTE PTR edi + eax ] ; viewport address
check_ghost:
mov ebx , [ IsTranslucent ] ; is it a translucent color?
mov bh , [ BYTE PTR ebx + eax ]
cmp bh , 0ffh
je do_fading
and ebx , 0FF00h ; clear all of ebx except bh
; we have the index to the translation table
; ((trans_colour * 256) + dest colour)
mov al , [ edi ] ; mov pixel at destination to al
add ebx , [ Translucent ] ; get the ptr to it!
; Add the (trans_color * 256) of the translation equ.
mov al , [ BYTE PTR ebx + eax ] ; get new pixel in al
; DRD jmp store_pixel
do_fading:
mov ebx , [ FadingTable ] ; run color through fading table
mov ecx , [ FadingNum ]
fade_loop:
mov al, [BYTE PTR ebx + eax]
dec ecx
jnz fade_loop
store_pixel:
mov [ edi ] , al
trans_pixel:
inc edi
ENDM
??predator_g_f_t_reference:
mov ecx , [ StashECX ] ; restore ecx for main draw loop
dec ecx
jge ??predator_g_f_t_line_begin
add esi , [ scr_adjust_width ]
add edi , [ dest_adjust_width ]
dec edx
jnz ??predator_g_f_t_loop
epilogue
ret
;********************************************************************
;********************************************************************
Not_Supported:
ret
ENDP Buffer_Frame_To_Page
END
;***************************************************************************
;** C O N F I D E N T I A L --- W E S T W O O D A S S O C I A T E S **
;***************************************************************************
;* *
;* Project Name : Westwood Library *
;* *
;* File Name : KEYFBUFF.ASM *
;* *
;* Programmer : Phil W. Gorrow *
;* *
;* Start Date : July 16, 1992 *
;* *
;* Last Update : October 2, 1994 [JLB] *
;* *
;*-------------------------------------------------------------------------*
;* Functions: *
;* BUFFER_FRAME_TO_LOGICPAGE -- *
;* Normal_Draw -- Function that writes a normal pixel line *
;* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *
IDEAL
P386
IDEAL_MODE EQU 1
INCLUDE "wwlib.i"
;-------------------------------------------------------------------
; Extern all the library variables that this module requires
;-------------------------------------------------------------------
EXTRN C MaskPage:WORD
EXTRN C BackGroundPage:WORD
;-------------------------------------------------------------------
; Define all the equates that this module requires
;-------------------------------------------------------------------
WIN_X EQU 0 ; offset for the x coordinate
WIN_Y EQU 2 ; offset for the y coordinate
WIN_WIDTH EQU 4 ; offset for the window width
WIN_HEIGHT EQU 6 ; offset for the window height
BYTESPERROW EQU 320 ; number of bytes per row
FLAG_NORMAL EQU 0 ; flag for normal draw
FLAG_GHOST EQU 1 ; This flag enables the ghost
FLAG_PRIORITY_TRANS EQU 2 ; flag for priority and transparent
FLAG_TRANS EQU 4 ; flag for transparent draw
FLAG_PRIORITY EQU 8 ; flag for priority draw
; fx on the above flags
FLAG_MASK EQU 15 ; used to and of uneeded bits
SHAPE_NORMAL EQU 0000h ; Standard shape.
;SHAPE_HORZ_REV EQU 0001h ; Flipped horizontally.
;SHAPE_VERT_REV EQU 0002h ; Flipped vertically.
;SHAPE_SCALING EQU 0004h ; Scaled (WORD scale_x, WORD scale_y)
SHAPE_WIN_REL EQU 0010h ; Coordinates are window relative instead of absolute.
SHAPE_CENTER EQU 0020h ; Coordinates are based on shape's center point.
SHAPE_TRANS EQU 0040h ; has transparency
;SHAPE_FADING EQU 0100h ; Fading effect active (VOID * fading_table, WORD fading_num).
;SHAPE_PREDATOR EQU 0200h ; Transparent warping effect.
;SHAPE_COMPACT EQU 0400h ; Never use this bit.
SHAPE_PRIORITY EQU 0800h ; Use priority system when drawing.
SHAPE_GHOST EQU 1000h ; Transluscent table process.
;SHAPE_SHADOW EQU 2000h ; ????
;SHAPE_PARTIAL EQU 4000h ; ????
;SHAPE_COLOR EQU 8000h ; Remap the shape's colors (VOID * color_table).
; MBL MOD 12.1.92
CLEAR_NON_WALK_BIT_AND_SCALE_BITS EQU 7 ; Makes it one AND per pixel in Priority_Trans display
CLEAR_NON_WALK_BIT EQU 7fh ; and with 0111-1111 to clear non-walkable high bit
CLEAR_SCALE_BITS EQU 87h ; and with 1000-0111 to clear scaling id bits
NON_WALKABLE_BIT EQU 80h ; and with 1000-0000 to clear all but non-walkable bit
; END MBL MOD
CODESEG
; 1 = GHOST (all odd entrys are prefixed with Ghost_)
; 2 = BLAAAH
; 4 = Trans (prfx)
; 8 = Prior (prfx)
;---------------------------------------------------------------------------
; Define the table of different line draw types
;---------------------------------------------------------------------------
LineTable DW WSA_Normal_Draw ;0
DW Ghost_Normal_Draw ;1
DW 0 ;2
DW 0 ;3
DW Transparent_Draw ;4
DW Ghost_Transparent_Draw ;5
DW 0 ;6
DW 0 ;7
DW Priority_Draw ;8
DW Ghost_Priority_Draw ;9
DW 0 ;10
DW 0 ;11
DW Priority_Transparent_Draw ;12
DW Ghost_Priority_Transparent_Draw ;13
DW 0 ;14
DW 0 ;15
;***************************************************************************
;* BUFFER_FRAME_TO_LOGICPAGE -- *
;* *
;* *
;* *
;* INPUT: *
;* *
;* OUTPUT: *
;* *
;* WARNINGS: *
;* *
;* HISTORY: *
;* 07/16/1992 PWG : Created. *
;*=========================================================================*
PUBLIC C Buffer_Frame_To_LogicPage
PROC C Buffer_Frame_To_LogicPage FAR USES ax bx ecx dx ds esi es edi
;-------------------------------------------------------------------
; Define the arguements that our program takes.
;-------------------------------------------------------------------
ARG x_pixel:WORD ; x pixel position to draw at
ARG y_pixel:WORD ; y pixel position to draw at
ARG pixel_w:WORD ; pixel width of draw region
ARG pixel_h:WORD ; pixel height of draw region
ARG win:WORD ; window to clip around
ARG flags:WORD ; flags that this routine will take
ARG buffer:DWORD ; pointer to the buffer with data
ARG args:WORD
;-------------------------------------------------------------------
; Define the local variables that our program uses
;-------------------------------------------------------------------
LOCAL IsTranslucent:DWORD ; ptr to the is_translucent table
LOCAL Translucent:DWORD ; ptr to the actual translucent table
LOCAL win_x1:WORD ; clip window left x pixel position
LOCAL win_x2:WORD ; clip window right x pixel position
LOCAL win_y1:WORD ; clip window top y pixel position
LOCAL win_y2:WORD ; clip window bottom y pixel position
LOCAL clipleft:WORD ; number of pixels to clip on left
LOCAL clipright:WORD ; number of pixels to clip on right
LOCAL nextline:WORD ; offset to the next line
LOCAL putmiddle:WORD ; routine to call to put the middle
LOCAL maskpage:WORD ; location of the depth masks
LOCAL background:WORD ; location of the background data
LOCAL jflags:WORD ; location of the background data
LOCAL priority:BYTE ; the priority level of the back
push fs
xor ecx,ecx
;--------------------------------------------------------------------
; Check to see if we have supplied any GHOST tables.
;--------------------------------------------------------------------
push di
mov di,6
mov [jflags],0
??ghost:
test [flags],SHAPE_GHOST ; are we ghosting this shape
jz short ??no_ghost ; if not then skip and do more
or [jflags],FLAG_GHOST
les ax,[DWORD PTR buffer + di]
; get the "are we really translucent?" table
mov [WORD PTR IsTranslucent],ax
mov [WORD PTR IsTranslucent + 2],es
add ax,0100h ; add to offset for tables
; get the "ok we are translucent!!" table
mov [WORD PTR Translucent],ax
mov [WORD PTR Translucent + 2],es
add di,4
??no_ghost:
pop di
;-------------------------------------------------------------------
; See if we need to center the frame
;-------------------------------------------------------------------
test [flags],SHAPE_CENTER ; does this need to be centered?
je short ??no_centering ; if not the skip over this stuff
mov ax,[pixel_w]
mov bx,[pixel_h]
sar ax,1
sar bx,1
sub [x_pixel],ax
sub [y_pixel],bx
??no_centering:
mov ax,[flags]
and ax,SHAPE_PRIORITY+SHAPE_TRANS
cmp ax,SHAPE_PRIORITY+SHAPE_TRANS
jne short ??test_trans
or [jflags],FLAG_PRIORITY_TRANS
jmp short ??priority
;-------------------------------------------------------------------
; Get the trans information if we need to get it
;-------------------------------------------------------------------
??test_trans:
test [flags],SHAPE_TRANS ; does this draw use transparencies?
je short ??test_priority ; if not the skip over this junk
or [jflags],FLAG_TRANS
??test_priority:
;-------------------------------------------------------------------
; Get the priority information if we need to get it
;-------------------------------------------------------------------
test [flags],SHAPE_PRIORITY ; does this draw use priorities?
je short ??no_priority ; if not the skip over this junk
or [jflags],FLAG_PRIORITY
??priority:
mov ax,[BackGroundPage] ; get the background page from ds
mov [background],ax ; and store it on the stack
mov ax,[MaskPage] ; get the mask page from ds
mov [maskpage],ax ; and store it on the stack
mov ax,[WORD PTR buffer + 4]; get the priority level from args
mov [priority],al ; and store it in a local
;-------------------------------------------------------------------
; Get the draw routine that we are going to draw with
;-------------------------------------------------------------------
??no_priority:
; mov bx,[flags] ; load in the current flags byte
; and bx,FLAG_MASK ; prevent lockup on bad value
mov bx,[jflags] ; load in the jump table flags
shl bx,1
mov ax,[WORD PTR LineTable + bx] ; get the offset of the skip table
mov [putmiddle],ax ; store off the new offset
;-------------------------------------------------------------------
; Get a pointer to the logic page to where we will draw our buffer
;-------------------------------------------------------------------
push [LogicPage] ; push the current logic page
call FAR PTR Get_Page ; get the physical page address
add sp,2 ; pull the parameter from the stack
mov es,dx ; store the address in the dest
;--------------------------------------------------------------------
; Point DI to the beginning of the window that we need to look at.
; that way we can access all of the info through di.
;--------------------------------------------------------------------
mov si,OFFSET WindowList ; get the offset of the window list
mov cl,4 ; shift 3 times = multiply by 16
mov ax,[win] ; get the window number we are using
shl ax,cl ; each window is 8 words long
add si,ax ; add that into the offset of window
;--------------------------------------------------------------------
; Place all the clipping values on the stack so our function will
; be truly re-entrant and will not need to shadow these values.
;--------------------------------------------------------------------
mov cl,3 ; to convert x to pixel mult by 8
mov ax,[si + WIN_X] ; get the left clip position
shl ax,cl ; convert to a pixel x position
mov [win_x1],ax ; store the left edge of window
mov [win_x2],ax
mov ax,[si + WIN_WIDTH] ; get the width of the window
shl ax,cl ; convert to a pixel width
add [win_x2],ax ; add to get the right window edge
mov ax,[si + WIN_Y] ; get the win y coordinate to clip
mov [win_y1],ax ; and save it onto the stack
add ax,[si + WIN_HEIGHT] ; calculate the bottom win y coord
mov [win_y2],ax ; and save it onto the stack
test [flags],SHAPE_WIN_REL ; is this window relative?
je short ??get_buffer ; if not the skip over
mov ax,[win_x1] ; get left edge of window
add [x_pixel],ax ; add to x pixel position
mov ax,[win_y1] ; get top edge of window
add [y_pixel],ax ; add to y pixel position
;--------------------------------------------------------------------
; Get a pointer to the source buffer so we can handle the clipping
;--------------------------------------------------------------------
??get_buffer:
lds si,[buffer] ; get a pointer to the buffer
;--------------------------------------------------------------------
; Check the top of our shape and clip any lines that are necessary
;--------------------------------------------------------------------
mov ax,[y_pixel] ; get the y_pixel draw position
sub ax,[win_y1] ; subtract out the window y top
jns short ??check_bottom ; skip if y below window top
add ax,[pixel_h] ; add in the height of the region
jg short ??clip_top ; if positive then clip top lines
??jump_exit:
jmp ??exit ; otherwise completely clipped
??clip_top:
xchg [pixel_h],ax
sub ax,[pixel_h]
add [y_pixel],ax
mul [pixel_w] ; convert to number of bytes to skip
add si,ax ; skip past the necessary bytes
;--------------------------------------------------------------------
; Check the bottom of our shape and clip it if necessary
;--------------------------------------------------------------------
??check_bottom:
mov ax,[win_y2] ; get the bottom y of the window
sub ax,[y_pixel] ; subtract of the y to draw at
js ??jump_exit ; if its signed then nothing to draw
jz ??jump_exit ; if its zero then nothing to draw
cmp ax,[pixel_h] ; if more room to draw then height
jae short ??clip_x_left ; then go check the left clip
mov [pixel_h],ax ; clip all but amount that will fit
??clip_x_left:
mov [clipleft],0 ; clear clip on left of region
mov ax,[x_pixel] ; get the pixel x of draw region
sub ax,[win_x1] ; pull out the window coordinate
jns short ??clip_x_right
neg ax ; negate to get amnt to skip in buf
mov [clipleft],ax ; store it in the left clip info
add [x_pixel],ax ; move to the edge of the window
sub [pixel_w],ax ; pull it out of the pixel width
??clip_x_right:
mov [clipright],0 ; clear clip on right of region
mov ax,[win_x2] ; get the window x of clip region
sub ax,[x_pixel] ; subtract the draw edge of region
js ??jump_exit ; if its negative then get out
jz ??jump_exit ; if its zero then get out
cmp ax,[pixel_w] ; is space available larger than w
jae short ??draw_prep ; if so then go get drawing
xchg [pixel_w],ax ; amt to draw in pixel_w (wid in ax)
sub ax,[pixel_w] ; pull out the amount to draw
mov [clipright],ax ; this is the amount to clip on right
??draw_prep:
push si ; save off source pos in buffer
push ds ; both offset and segment
mov ax,@data
mov ds,ax
mov bx,[y_pixel]
shl bx,1 ; shift left by 1 for word table look
lds si,[YTable] ; get the address of the ytable
mov di,[ds:si+bx] ; look up the multiplied value
pop ds ; restore source pos in buffer
pop si ; both offset and segment
add di,[x_pixel] ; add in the x pixel position
mov [nextline],di ; save it off in the next line
;--------------------------------------------------------------------
; Now determine the type of the shape and process it in the proper
; way.
;--------------------------------------------------------------------
mov dx,[pixel_h]
; Check to see if the WSA is the screen width and there is no
; clipping. In this case, then a special single call to the
; line processing routine is possible.
mov ax,[clipleft]
add ax,[clipright]
jne short ??top_of_loop
cmp [pixel_w],BYTESPERROW
jne short ??top_of_loop
;------------------------------------
; The width of the WSA is the screen width, so just process as
; one large WSA line.
mov ax,BYTESPERROW
imul dx
mov cx,ax
call [putmiddle]
jmp short ??exit
;------------------------------------
; Process line by line.
??top_of_loop:
add si,[clipleft] ; skip whats necessary on left edge
mov cx,[pixel_w] ; get the width we need to draw
; Copy the source to the destination as appropriate. This routine can
; trash AX, BX, CX, and DI. It must properly modify SI to point one byte past
; the end of the data.
call [putmiddle]
add si,[clipright] ; skip past the left clip
add [nextline],BYTESPERROW
mov di,[nextline]
dec dx
jnz ??top_of_loop
??exit:
pop fs
ret
ENDP
;***************************************************************************
;* NORMAL_DRAW -- Function that writes a normal pixel line *
;* *
;* INPUT: cx - number of pixels to write *
;* ds:si - buffer which holds the pixels to write *
;* es:di - place to put the pixels we are writing *
;* *
;* OUTPUT: ds:si - points to next pixel past last pixel read *
;* es:di - points to next pixel past last pixel written *
;* *
;* WARNINGS: none *
;* *
;* HISTORY: *
;* 07/17/1992 PWG : Created. *
;*=========================================================================*
PROC NOLANGUAGE WSA_Normal_Draw NEAR
IF 1
; This version is marginally faster than the later version.
mov ax,cx
shr cx,2
rep movsd
and ax,011b
mov cx,ax
shr cx,1
rep movsw
adc cx,cx
rep movsb
ret
ELSE
shr cx,1 ; convert to words (odd pix in carry)
rep movsw ; write out the needed words
adc cx,0 ; add the carry into cx
rep movsb ; write out the odd byte if any
ret
ENDIF
ENDP
;***************************************************************************
;* TRANSPARENT_DRAW -- Function that writes a transparent pixel line *
;* *
;* INPUT: cx - number of pixels to write *
;* ds:si - buffer which holds the pixels to write *
;* es:di - place to put the pixels we are writing *
;* *
;* OUTPUT: ds:si - points to next pixel past last pixel read *
;* es:di - points to next pixel past last pixel written *
;* *
;* WARNINGS: none *
;* *
;* HISTORY: *
;* 07/17/1992 PWG : Created. *
;* 10/02/1994 JLB : Optimized for 250% speed improvement. *
;*=========================================================================*
PROC NOLANGUAGE Transparent_Draw NEAR
IF 1
; Preserve DX since it is used as a scratch register.
push dx
??loop:
; Swap DS:SI and ES:DI back in preparation for the REP SCASB
; instruction.
xchg di,si
mov dx,es
mov ax,ds
mov ds,dx
mov es,ax
; Remember the bytes remaining in order to calculate the position
; of the scan when it stops.
mov bx,cx
; Scan looking for a non-zero value in the source buffer.
xor al,al
repe scasb
; When the loop ends, if the EQ flag is set then the scanning is
; complete. Jump to the end of the routine in order to fixup the
; pointers.
je short ??fini
; Advance the destination pointer by the amount necessary to match
; the source movement. DS:SI points to where data should be written.
add si,bx
inc cx ; SCASB leaves CX one too low, fix it.
dec di ; SCASB leaves DI one byte too far, fix it.
sub si,cx
; Scan for the duration of non-zero pixels. This yields a count which
; is used to copy the source data to the destination. Preserve DI.
mov dx,di
mov bx,cx
repne scasb
mov di,dx
; Set BX to equal the number of bytes to copy from source to dest.
inc cx ; SCASB leaves CX one too low, fix it.
sub bx,cx
; Move the data from ES:DI to DS:SI for BX bytes.
xchg cx,bx ; Make CX=bytes to move, BX=bytes remaining.
; Swap DS:SI and ES:DI in preparation for the REP MOV instruction.
xchg di,si
mov dx,es
mov ax,ds
mov ds,dx
mov es,ax
; Move the data from source to dest. First try to move double
; words. Then copy the remainder bytes (if any). Putting jumps in
; this section doesn't result in any savings -- oh well.
mov ax,cx
shr cx,2
rep movsd
and ax,0011b
mov cx,ax
shr cx,1
rep movsw
adc cx,cx
rep movsb
; Restore CX with the remaining bytes to process.
mov cx,bx
; If there are more bytes to process, then loop back.
or cx,cx
jne short ??loop
??fini:
; Swap ES:DI and DS:SI back to original orientation.
mov ax,ds
mov bx,es
mov es,ax
mov ds,bx
xchg di,si
; Restore DX and return.
pop dx
ret
ELSE
??loop_top:
lodsb
or al,al
jz short ??skip
mov [es:di],al ; store the pixel to the screen
??skip:
inc di
loop ??loop_top
ret
ENDIF
ENDP
;***************************************************************************
;* PRIORITY_DRAW -- Function that writes a pixels if they are in front of *
;* the given plate. *
;* *
;* INPUT: cx - number of pixels to write *
;* ds:si - buffer which holds the pixels to write *
;* es:di - place to put the pixels we are writing *
;* *
;* OUTPUT: ds:si - points to next pixel past last pixel read *
;* es:di - points to next pixel past last pixel written *
;* *
;* WARNINGS: none *
;* *
;* HISTORY: *
;* 07/17/1992 PWG : Created. *
;* 12/01/1992 MBL : Updated to work with latest mask data encoding. *
;* 17/01/1993 MCC : Updated for 386, and optimized *
;*=========================================================================*
PROC NOLANGUAGE Priority_Draw NEAR
mov fs,[background] ; get the SEG of the background page
mov gs,[maskpage] ; get the SEG of the mask info
mov ah,[priority] ; keep a copy of priority varible for faster cmp
??loop_top:
lodsb ; get the pixel to draw on the screen
; get the mask byte for our pixel
mov bl,[ds:di]
; get rid of non-walkable bit and
; get rid of scaling id bits
and bl,CLEAR_NON_WALK_BIT_AND_SCALE_BITS
cmp ah,bl ; are we more toward the front?
jge short ??out_pixel ; if so then write the pixel
mov al,[fs:di] ; get the pixel to write
??out_pixel:
stosb ; write the pixel and inc the DI
loop ??loop_top
ret
ENDP
;***************************************************************************
;* PRIORITY_TRANSPARENT_DRAW -- Function that writes a pixels if they are *
;* in front of the given plate. It also deals with *
;* transparent pixels. *
;* *
;* INPUT: cx - number of pixels to write *
;* ds:si - buffer which holds the pixels to write *
;* es:di - place to put the pixels we are writing *
;* *
;* OUTPUT: ds:si - points to next pixel past last pixel read *
;* es:di - points to next pixel past last pixel written *
;* *
;* WARNINGS: none *
;* *
;* HISTORY: *
;* 07/17/1992 PWG : Created. *
;* 12/01/1992 MBL : Updated to work with latest mask data encoding. *
;* 17/01/1993 MCC : Updated for 386, and optimized *
;*=========================================================================*
PROC NOLANGUAGE Priority_Transparent_Draw NEAR
mov fs,[background] ; get the SEG of the background page
mov gs,[maskpage] ; get the SEG of the mask info
mov ah,[priority] ; keep a copy of priority varible for faster cmp
??loop_top:
lodsb ; get the pixel on the screen
or al,al ; check to see if al is transparent
je short ??write_back ; if it is go write background
mov bl,[gs:di] ; get the mask byte for our pixel
; get rid of non-walkable bit and
; get rid of scaling id bits
and bl,CLEAR_NON_WALK_BIT_AND_SCALE_BITS
cmp ah,bl ; are we more toward the front?
jge short ??out_pixel ; if so then write the pixel
??write_back:
mov al,[fs:di] ; get the pixel to write
??out_pixel:
stosb ; write the pixel
loop ??loop_top
ret
ENDP
;***************************************************************************
;* GHOST_NORMAL_DRAW -- Function that writes a normal pixel line *
;* *
;* INPUT: cx - number of pixels to write *
;* ds:si - buffer which holds the pixels to write *
;* es:di - place to put the pixels we are writing *
;* *
;* OUTPUT: ds:si - points to next pixel past last pixel read *
;* es:di - points to next pixel past last pixel written *
;* *
;* WARNINGS: none *
;* *
;* HISTORY: *
;* 05/27/1993 MCC : Created. *
;*=========================================================================*
PROC NOLANGUAGE Ghost_Normal_Draw NEAR
??loop_top:
lodsb
;---
; Ok, find out if the colour is a Translucent colour
push ax
push ds
lds bx,[IsTranslucent]
mov ah,al ; preserve real pixel
xlat ; get new al (transluecent pixel
xchg ah,al ; get real pixel back into AL just in case
cmp ah,255
je short ??normal_pixel ; is it a translucent ?
; if we get passed here value in
; AH should be 0-15
; yes, it is a translucent colour so goto our translucent translation
; table and set up a ptr to the correct table
mov al,[es:di]
; mov pixel at destination to al and we have
; the index to the translation table
; ((trans_colour * 256) + dest colour)
lds bx,[Translucent] ; get the ptr to it!
add bh,ah ; Add the (trans_color * 256) of the translation equ.
; XLAT only uses AL so no need to clear AH
xlat ; get new pixel in AL
??normal_pixel:
pop ds
pop bx
mov ah,bh
;---
mov [es:di],al ; store the pixel to the screen
??skip:
inc di
loop ??loop_top
ret
ENDP
;***************************************************************************
;* GHOST_TRANSPARENT_DRAW -- Function that writes a transparent pixel line *
;* *
;* INPUT: cx - number of pixels to write *
;* ds:si - buffer which holds the pixels to write *
;* es:di - place to put the pixels we are writing *
;* *
;* OUTPUT: ds:si - points to next pixel past last pixel read *
;* es:di - points to next pixel past last pixel written *
;* *
;* WARNINGS: none *
;* *
;* HISTORY: *
;* 05/27/1993 MCC : Created. *
;*=========================================================================*
PROC NOLANGUAGE Ghost_Transparent_Draw NEAR
??loop_top:
lodsb
or al,al
jz short ??skip
;---
; Ok, find out if the colour is a Translucent colour
push ax
push ds
lds bx,[IsTranslucent]
mov ah,al ; preserve real pixel
xlat ; get new al (transluecent pixel
xchg ah,al ; get real pixel back into AL just in case
cmp ah,255
je short ??normal_pixel ; is it a translucent ?
; if we get passed here value in
; AH should be 0-15
; yes, it is a translucent colour so goto our translucent translation
; table and set up a ptr to the correct table
mov al,[es:di]
; mov pixel at destination to al and we have
; the index to the translation table
; ((trans_colour * 256) + dest colour)
lds bx,[Translucent] ; get the ptr to it!
add bh,ah ; Add the (trans_color * 256) of the translation equ.
; XLAT only uses AL so no need to clear AH
xlat ; get new pixel in AL
??normal_pixel:
pop ds
pop bx
mov ah,bh
;---
mov [es:di],al ; store the pixel to the screen
??skip:
inc di
loop ??loop_top
ret
ENDP
;***************************************************************************
;* GHOST_PRIORITY_DRAW -- Function that writes a pixels if they are in fron*
;* the given plate. *
;* *
;* INPUT: cx - number of pixels to write *
;* ds:si - buffer which holds the pixels to write *
;* es:di - place to put the pixels we are writing *
;* *
;* OUTPUT: ds:si - points to next pixel past last pixel read *
;* es:di - points to next pixel past last pixel written *
;* *
;* WARNINGS: none *
;* *
;* HISTORY: *
;* 07/17/1992 PWG : Created. *
;* 12/01/1992 MBL : Updated to work with latest mask data encoding. *
;* 05/27/1993 MCC : Updated to use the new Ghosting fx *
;* 17/01/1993 MCC : Updated for 386, and optimized *
;*=========================================================================*
PROC NOLANGUAGE Ghost_Priority_Draw NEAR
mov fs,[background] ; get the SEG of the background page
mov gs,[maskpage] ; get the SEG of the mask info
mov ah,[priority] ; keep a copy of priority varible for faster cmp
??loop_top:
lodsb ; get the pixel to draw on the screen
; get the mask byte for our pixel
mov bl,[ds:di]
; get rid of non-walkable bit and
; get rid of scaling id bits
and bl,CLEAR_NON_WALK_BIT_AND_SCALE_BITS
cmp ah,bl ; are we more toward the front?
jge short ??out_pixel ; if so then write the pixel
mov al,[fs:di] ; get the pixel to write
??out_pixel:
stosb ; write the pixel and inc the DI
loop ??loop_top
ret
ENDP
;***************************************************************************
;* GHOST_PRIORITY_TRANSPARENT_DRAW -- Function that writes a pixels if they*
;* in front of the given plate. It also deals with *
;* transparent pixels. *
;* *
;* INPUT: cx - number of pixels to write *
;* ds:si - buffer which holds the pixels to write *
;* es:di - place to put the pixels we are writing *
;* *
;* OUTPUT: ds:si - points to next pixel past last pixel read *
;* es:di - points to next pixel past last pixel written *
;* *
;* WARNINGS: none *
;* *
;* HISTORY: *
;* 07/17/1992 PWG : Created. *
;* 12/01/1992 MBL : Updated to work with latest mask data encoding. *
;* 05/27/1993 MCC : Updated to use the new Ghosting fx *
;* 17/01/1993 MCC : Updated for 386, and optimized *
;*=========================================================================*
PROC NOLANGUAGE Ghost_Priority_Transparent_Draw NEAR
mov fs,[background] ; get the SEG of the background page
mov gs,[maskpage] ; get the SEG of the mask info
mov ah,[priority] ; keep a copy of priority varible for faster cmp
??loop_top:
lodsb ; get the pixel on the screen
or al,al ; check to see if al is transparent
je short ??write_back ; if it is go write background
mov bl,[gs:di] ; get the mask byte for our pixel
; get rid of non-walkable bit and
; get rid of scaling id bits
and bl,CLEAR_NON_WALK_BIT_AND_SCALE_BITS
cmp ah,bl ; are we more toward the front?
jge short ??out_pixel ; if so then write the pixel
??write_back:
mov al,[fs:di] ; get the pixel to write
??out_pixel:
stosb ; write the pixel
loop ??loop_top
ret
ENDP
END
================================================
FILE: CODE/2KEYFRAM.CPP
================================================
/*
** Command & Conquer Red Alert(tm)
** Copyright 2025 Electronic Arts Inc.
**
** 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 3 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, see <http://www.gnu.org/licenses/>.
*/
/* $Header: /CounterStrike/2KEYFRAM.CPP 1 3/03/97 10:24a Joe_bostic $ */
/***********************************************************************************************
*** C O N F I D E N T I A L --- W E S T W O O D S T U D I O S ***
***********************************************************************************************
* *
* Project Name : Command & Conquer *
* *
* File Name : KEYFRAME.CPP *
* *
* Programmer : Joe L. Bostic *
* *
* Start Date : 06/25/95 *
* *
* Last Update : June 25, 1995 [JLB] *
* *
*---------------------------------------------------------------------------------------------*
* Functions: *
* Get_Build_Frame_Count -- Fetches the number of frames in data block. *
* Get_Build_Frame_Width -- Fetches the width of the shape image. *
* Get_Build_Frame_Height -- Fetches the height of the shape image. *
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
#include "function.h"
#define SUBFRAMEOFFS 7 // 3 1/2 frame offsets loaded (2 offsets/frame)
#define Apply_Delta(buffer, delta) Apply_XOR_Delta((char*)(buffer), (char*)(delta))
typedef struct {
unsigned short frames;
unsigned short x;
unsigned short y;
unsigned short width;
unsigned short height;
unsigned short largest_frame_size;
short flags;
} KeyFrameHeaderType;
#define INITIAL_BIG_SHAPE_BUFFER_SIZE 8000000
#define THEATER_BIG_SHAPE_BUFFER_SIZE 4000000
#define UNCOMPRESS_MAGIC_NUMBER 56789
unsigned BigShapeBufferLength = INITIAL_BIG_SHAPE_BUFFER_SIZE;
unsigned TheaterShapeBufferLength = THEATER_BIG_SHAPE_BUFFER_SIZE;
extern "C"{
char *BigShapeBufferStart = NULL;
char *TheaterShapeBufferStart = NULL;
BOOL UseBigShapeBuffer = FALSE;
bool IsTheaterShape = false;
}
#ifdef FIXIT_SCORE_CRASH
/*
** Global required to fix the score screen crash bug by allowing disabling of uncompressed shapes.
*/
bool OriginalUseBigShapeBuffer = false;
#endif //FIXIT
char *BigShapeBufferPtr = NULL;
int TotalBigShapes=0;
BOOL ReallocShapeBufferFlag = FALSE;
char *TheaterShapeBufferPtr = NULL;
int TotalTheaterShapes = 0;
#define MAX_SLOTS 1500
#define THEATER_SLOT_START 1000
char **KeyFrameSlots [MAX_SLOTS];
int TotalSlotsUsed=0;
int TheaterSlotsUsed = THEATER_SLOT_START;
typedef struct tShapeHeaderType{
unsigned draw_flags;
char *shape_data;
int shape_buffer; //1 if shape is in theater buffer
} ShapeHeaderType;
static int Length;
void *Get_Shape_Header_Data(void *ptr)
{
if (UseBigShapeBuffer) {
ShapeHeaderType *header = (ShapeHeaderType*) ptr;
return ((void*) (header->shape_data + (long)(header->shape_buffer ? TheaterShapeBufferStart : BigShapeBufferStart) ) );
} else {
return (ptr);
}
}
int Get_Last_Frame_Length(void)
{
return(Length);
}
void Reset_Theater_Shapes (void)
{
/*
** Delete any previously allocated slots
*/
for (int i=THEATER_SLOT_START ; i<TheaterSlotsUsed ; i++) {
delete [] KeyFrameSlots [i];
}
TheaterShapeBufferPtr = TheaterShapeBufferStart;
TotalTheaterShapes = 0;
TheaterSlotsUsed = THEATER_SLOT_START;
}
void Reallocate_Big_Shape_Buffer(void)
{
if (ReallocShapeBufferFlag) {
BigShapeBufferLength += 2000000; //Extra 2 Mb of uncompressed shape space
BigShapeBufferPtr -= (unsigned)BigShapeBufferStart;
Memory_Error = NULL;
BigShapeBufferStart = (char*)Resize_Alloc(BigShapeBufferStart, BigShapeBufferLength);
Memory_Error = &Memory_Error_Handler;
/*
** If we have run out of memory then disable the uncompressed shapes
** It may still be possible to continue with compressed shapes
*/
if (!BigShapeBufferStart) {
UseBigShapeBuffer = false;
return;
}
BigShapeBufferPtr += (unsigned)BigShapeBufferStart;
ReallocShapeBufferFlag = FALSE;
}
}
#ifdef FIXIT_SCORE_CRASH
/***********************************************************************************************
* Disable_Uncompressed_Shapes -- Temporarily turns off shape decompression *
* *
* *
* *
* INPUT: Nothing *
* *
* OUTPUT: Nothing *
* *
* WARNINGS: None *
* *
* HISTORY: *
* 11/19/96 2:37PM ST : Created *
*=============================================================================================*/
void Disable_Uncompressed_Shapes (void)
{
UseBigShapeBuffer = false;
}
/***********************************************************************************************
* Enable_Uncompressed_Shapes -- Restores state of shape decompression before it was disabled *
* *
* *
* *
* INPUT: Nothing *
* *
* OUTPUT: Nothing *
* *
* WARNINGS: None *
* *
* HISTORY: *
* 11/19/96 2:37PM ST : Created *
*=============================================================================================*/
void Enable_Uncompressed_Shapes (void)
{
UseBigShapeBuffer = OriginalUseBigShapeBuffer;
}
#endif //FIXIT
void Check_Use_Compressed_Shapes (void)
{
MEMORYSTATUS mem_info;
mem_info.dwLength=sizeof(mem_info);
GlobalMemoryStatus(&mem_info);
UseBigShapeBuffer = (mem_info.dwTotalPhys > 16*1024*1024) ? TRUE : FALSE;
#ifdef FIXIT_SCORE_CRASH
/*
** Keep track of our original decision about whether to use cached shapes.
** This is needed for the score screen crash fix.
*/
OriginalUseBigShapeBuffer = UseBigShapeBuffer;
#endif //FIXIT
}
unsigned long Build_Frame(void const *dataptr, unsigned short framenumber, void *buffptr)
{
#ifdef FIXIT_SCORE_CRASH
char *ptr;
unsigned long offcurr, offdiff;
#else
char *ptr, *lockptr;//, *uncomp_ptr;
unsigned long offcurr, off16, offdiff;
#endif
unsigned long offset[SUBFRAMEOFFS];
KeyFrameHeaderType *keyfr;
unsigned short buffsize, currframe, subframe;
unsigned long length = 0;
char frameflags;
unsigned long return_value;
char *temp_shape_ptr;
//
// valid pointer??
//
Length = 0;
if ( !dataptr || !buffptr ) {
return(0);
}
//
// look at header then check that frame to build is not greater
// than total frames
//
keyfr = (KeyFrameHeaderType *) dataptr;
if ( framenumber >= keyfr->frames ) {
return(0);
}
if (UseBigShapeBuffer) {
/*
** If we havnt yet allocated memory for uncompressed shapes then do so now.
**
*/
if (!BigShapeBufferStart) {
BigShapeBufferStart = (char*)Alloc(BigShapeBufferLength, MEM_NORMAL);
BigShapeBufferPtr = BigShapeBufferStart;
/*
** Allocate memory for theater specific uncompressed shapes
*/
TheaterShapeBufferStart = (char*) Alloc (TheaterShapeBufferLength, MEM_NORMAL);
TheaterShapeBufferPtr = TheaterShapeBufferStart;
}
/*
** If we are running out of memory (<10k left) for uncompressed shapes
** then allocate some more.
*/
if (( (unsigned)BigShapeBufferStart + BigShapeBufferLength) - (unsigned)BigShapeBufferPtr < 128000) {
ReallocShapeBufferFlag = TRUE;
}
/*
** If this animation was not previously uncompressed then
** allocate memory to keep the pointers to the uncompressed data
** for these animation frames
*/
if (keyfr->x != UNCOMPRESS_MAGIC_NUMBER) {
keyfr->x = UNCOMPRESS_MAGIC_NUMBER;
if (IsTheaterShape) {
keyfr->y = TheaterSlotsUsed;
TheaterSlotsUsed++;
} else {
keyfr->y = TotalSlotsUsed;
TotalSlotsUsed++;
}
/*
** Allocate and clear the memory for the shape info
*/
KeyFrameSlots[keyfr->y]= new char *[keyfr->frames];
memset (KeyFrameSlots[keyfr->y] , 0 , keyfr->frames*4);
}
/*
** If this frame was previously uncompressed then just return
** a pointer to the raw data
*/
if (*(KeyFrameSlots[keyfr->y]+framenumber)) {
if (IsTheaterShape) {
return ((unsigned long)TheaterShapeBufferStart + (unsigned long)*(KeyFrameSlots[keyfr->y]+framenumber));
} else {
return ((unsigned long)BigShapeBufferStart + (unsigned long)*(KeyFrameSlots[keyfr->y]+framenumber));
}
}
}
// calc buff size
buffsize = keyfr->width * keyfr->height;
// get offset into data
ptr = (char *)Add_Long_To_Pointer( dataptr, (((unsigned long)framenumber << 3) + sizeof(KeyFrameHeaderType)) );
Mem_Copy( ptr, &offset[0], 12L );
frameflags = (char)(offset[0] >> 24);
if ( (frameflags & KF_KEYFRAME) ) {
ptr = (char *)Add_Long_To_Pointer( dataptr, (offset[0] & 0x00FFFFFFL) );
if (keyfr->flags & 1 ) {
ptr = (char *)Add_Long_To_Pointer( ptr, 768L );
}
length = LCW_Uncompress( ptr, buffptr, buffsize );
} else { // key delta or delta
if ( (frameflags & KF_DELTA) ) {
currframe = (unsigned short)offset[1];
ptr = (char *)Add_Long_To_Pointer( dataptr, (((unsigned long)currframe << 3) + sizeof(KeyFrameHeaderType)) );
Mem_Copy( ptr, &offset[0], (long)(SUBFRAMEOFFS * sizeof(unsigned long)) );
}
// key frame
offcurr = offset[1] & 0x00FFFFFFL;
// key delta
offdiff = (offset[0] & 0x00FFFFFFL) - offcurr;
ptr = (char *)Add_Long_To_Pointer( dataptr, offcurr );
if (keyfr->flags & 1 ) {
ptr = (char *)Add_Long_To_Pointer( ptr, 768L );
}
#ifndef FIXIT_SCORE_CRASH
off16 = (unsigned long)lockptr & 0x00003FFFL;
#endif
length = LCW_Uncompress( ptr, buffptr, buffsize );
if (length > buffsize) {
return(0);
}
#ifndef FIXIT_SCORE_CRASH
if ( ((offset[2] & 0x00FFFFFFL) - offcurr) >= (0x00010000L - off16) ) {
ptr = (char *)Add_Long_To_Pointer( ptr, offdiff );
off16 = (unsigned long)ptr & 0x00003FFFL;
offcurr += offdiff;
offdiff = 0;
}
#endif
length = buffsize;
Apply_Delta(buffptr, Add_Long_To_Pointer(ptr, offdiff));
if ( (frameflags & KF_DELTA) ) {
// adjust to delta after the keydelta
currframe++;
subframe = 2;
while (currframe <= framenumber) {
offdiff = (offset[subframe] & 0x00FFFFFFL) - offcurr;
#ifndef FIXIT_SCORE_CRASH
if ( ((offset[subframe+2] & 0x00FFFFFFL) - offcurr) >= (0x00010000L - off16) ) {
ptr = (char *)Add_Long_To_Pointer( ptr, offdiff );
off16 = (unsigned long)lockptr & 0x00003FFFL;
offcurr += offdiff;
offdiff = 0;
}
#endif
length = buffsize;
Apply_Delta(buffptr, Add_Long_To_Pointer(ptr, offdiff));
currframe++;
subframe += 2;
if ( subframe >= (SUBFRAMEOFFS - 1) &&
currframe <= framenumber ) {
Mem_Copy( Add_Long_To_Pointer( dataptr,
(((unsigned long)currframe << 3) +
sizeof(KeyFrameHeaderType)) ),
&offset[0], (long)(SUBFRAMEOFFS * sizeof(unsigned long)) );
subframe = 0;
}
}
}
}
if (UseBigShapeBuffer) {
/*
** Save the uncompressed shape data so we dont have to uncompress it
** again next time its drawn.
** We keep a space free before the raw shape data so we can add line
** header info before the shape is drawn for the first time
*/
if (IsTheaterShape) {
/*
** Shape is a theater specific shape
*/
return_value = (unsigned long) TheaterShapeBufferPtr;
temp_shape_ptr = TheaterShapeBufferPtr + keyfr->height+sizeof(ShapeHeaderType);
/*
** align the actual shape data
*/
if (3 & (unsigned)temp_shape_ptr) {
temp_shape_ptr = (char *) ((unsigned)(temp_shape_ptr + 3) & 0xfffffffc);
}
memcpy (temp_shape_ptr , buffptr , length);
((ShapeHeaderType *)TheaterShapeBufferPtr)->draw_flags = -1; //Flag that headers need to be generated
((ShapeHeaderType *)TheaterShapeBufferPtr)->shape_data = temp_shape_ptr - (unsigned)TheaterShapeBufferStart; //pointer to old raw shape data
((ShapeHeaderType *)TheaterShapeBufferPtr)->shape_buffer = 1; //Theater buffer
*(KeyFrameSlots[keyfr->y]+framenumber) = TheaterShapeBufferPtr - (unsigned)TheaterShapeBufferStart;
TheaterShapeBufferPtr = (char*)(length + (unsigned)temp_shape_ptr);
/*
** Align the next shape
*/
if (3 & (unsigned)TheaterShapeBufferPtr) {
TheaterShapeBufferPtr = (char *)((unsigned)(TheaterShapeBufferPtr + 3) & 0xfffffffc);
}
Length = length;
return (return_value);
} else {
return_value=(unsigned long)BigShapeBufferPtr;
temp_shape_ptr = BigShapeBufferPtr + keyfr->height+sizeof(ShapeHeaderType);
/*
** align the actual shape data
*/
if (3 & (unsigned)temp_shape_ptr) {
temp_shape_ptr = (char *) ((unsigned)(temp_shape_ptr + 3) & 0xfffffffc);
}
memcpy (temp_shape_ptr , buffptr , length);
((ShapeHeaderType *)BigShapeBufferPtr)->draw_flags = -1; //Flag that headers need to be generated
((ShapeHeaderType *)BigShapeBufferPtr)->shape_data = temp_shape_ptr - (unsigned)BigShapeBufferStart; //pointer to old raw shape data
((ShapeHeaderType *)BigShapeBufferPtr)->shape_buffer = 0; //Normal Big Shape Buffer
*(KeyFrameSlots[keyfr->y]+framenumber) = BigShapeBufferPtr - (unsigned)BigShapeBufferStart;
BigShapeBufferPtr = (char*)(length + (unsigned)temp_shape_ptr);
// Align the next shape
if (3 & (unsigned)BigShapeBufferPtr) {
BigShapeBufferPtr = (char *)((unsigned)(BigShapeBufferPtr + 3) & 0xfffffffc);
}
Length = length;
return (return_value);
}
} else {
return ((unsigned long)buffptr);
}
}
/***********************************************************************************************
* Get_Build_Frame_Count -- Fetches the number of frames in data block. *
* *
* Use this routine to determine the number of shapes within the data block. *
* *
* INPUT: dataptr -- Pointer to the keyframe shape data block. *
* *
* OUTPUT: Returns with the number of shapes in the data block. *
* *
* WARNINGS: none *
* *
* HISTORY: *
* 06/25/1995 JLB : Commented. *
*=============================================================================================*/
unsigned short Get_Build_Frame_Count(void const *dataptr)
{
if (dataptr) {
return(((KeyFrameHeaderType const *)dataptr)->frames);
}
return(0);
}
unsigned short Get_Build_Frame_X(void const *dataptr)
{
if (dataptr) {
return(((KeyFrameHeaderType const *)dataptr)->x);
}
return(0);
}
unsigned short Get_Build_Frame_Y(void const *dataptr)
{
if (dataptr) {
return(((KeyFrameHeaderType const *)dataptr)->y);
}
return(0);
}
/***********************************************************************************************
* Get_Build_Frame_Width -- Fetches the width of the shape image. *
* *
* Use this routine to fetch the width of the shapes within the keyframe shape data block. *
* All shapes within the block have the same width. *
* *
* INPUT: dataptr -- Pointer to the keyframe shape data block. *
* *
* OUTPUT: Returns with the width of the shapes in the block -- expressed in pixels. *
* *
* WARNINGS: none *
* *
* HISTORY: *
* 06/25/1995 JLB : Commented *
*=============================================================================================*/
unsigned short Get_Build_Frame_Width(void const *dataptr)
{
if (dataptr) {
return(((KeyFrameHeaderType const *)dataptr)->width);
}
return(0);
}
/***********************************************************************************************
* Get_Build_Frame_Height -- Fetches the height of the shape image. *
* *
* Use this routine to fetch the height of the shapes within the keyframe shape data block. *
* All shapes within the block have the same height. *
* *
* INPUT: dataptr -- Pointer to the keyframe shape data block. *
* *
* OUTPUT: Returns with the height of the shapes in the block -- expressed in pixels. *
* *
* WARNINGS: none *
* *
* HISTORY: *
* 06/25/1995 JLB : Commented *
*=============================================================================================*/
unsigned short Get_Build_Frame_Height(void const *dataptr)
{
if (dataptr) {
return(((KeyFrameHeaderType const *)dataptr)->height);
}
return(0);
}
bool Get_Build_Frame_Palette(void const * dataptr, void * palette)
{
if (dataptr && (((KeyFrameHeaderType const *)dataptr)->flags & 1)) {
char const * ptr = (char const *)Add_Long_To_Pointer( dataptr,
( (( (long)sizeof(unsigned long) << 1) *
((KeyFrameHeaderType *) dataptr)->frames ) +
16 + sizeof(KeyFrameHeaderType) ) );
memcpy(palette, ptr, 768L);
return(true);
}
return(false);
}
================================================
FILE: CODE/2SUPPORT.ASM
================================================
;
; Command & Conquer Red Alert(tm)
; Copyright 2025 Electronic Arts Inc.
;
; 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 3 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, see <http://www.gnu.org/licenses/>.
;
; $Header: F:\projects\c&c0\vcs\code\2support.asv 5.0 11 Nov 1996 09:40:36 JOE_BOSTIC $
;***************************************************************************
;** C O N F I D E N T I A L --- W E S T W O O D S T U D I O S **
;***************************************************************************
;* *
;* Project Name : Command & Conquer *
;* *
;* File Name : SUPPORT.ASM *
;* *
;* Programmer : Joe L. Bostic *
;* *
;* Start Date : September 23, 1993 *
;* *
;* Last Update : May 10, 1994 [JLB] *
;* *
;*-------------------------------------------------------------------------*
;* Functions: *
;* strtrim -- Remove the trailing white space from a string. *
;* Fat_Put_Pixel -- Draws a fat pixel. *
;* Conquer_Build_Fading_Table -- Builds custom shadow/light fading table.*
;* Remove_From_List -- Removes a pointer from a list of pointers. *
;* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *
IDEAL
P386
MODEL USE32 FLAT
INCLUDE "gbuffer.inc"
DISPLAY "Command & Conquer assembly support routines."
CODESEG
;***************************************************************************
;* Fat_Put_Pixel -- Draws a fat pixel. *
;* *
;* Use this routine to draw a "pixel" that is bigger than 1 pixel *
;* across. This routine is faster than drawing a similar small shape *
;* and faster than calling Fill_Rect. *
;* *
;* INPUT: x,y -- Screen coordinates to draw the pixel's upper *
;* left corner. *
;* *
;* color -- The color to render the pixel in. *
;* *
;* size -- The number of pixels width of the big "pixel". *
;* *
;* page -- The pointer to a GraphicBuffer class or something *
;* *
;* OUTPUT: none *
;* *
;* WARNINGS: none *
;* *
;* HISTORY: *
;* 03/17/1994 JLB : Created. *
;*=========================================================================*
; VOID cdecl Fat_Put_Pixel(long x, long y, long color, long size, void *page)
GLOBAL C Fat_Put_Pixel:NEAR
PROC Fat_Put_Pixel C near
USES eax, ebx, ecx, edx, edi, esi
ARG x:DWORD ; X coordinate of upper left pixel corner.
ARG y:DWORD ; Y coordinate of upper left pixel corner.
ARG color:DWORD ; Color to use for the "pixel".
ARG siz:DWORD ; Size of "pixel" to plot (square).
ARG gpage:DWORD ; graphic page address to plot onto
cmp [siz],0
je short ??exit
; Set EDI to point to start of logical page memory.
;*===================================================================
; Get the viewport information and put bytes per row in ecx
;*===================================================================
mov ebx,[gpage] ; get a pointer to viewport
mov edi,[(GraphicViewPort ebx).GVPOffset] ; get the correct offset
; Verify the the Y pixel offset is legal.
mov eax,[y]
cmp eax,[(GraphicViewPort ebx).GVPHeight] ;YPIXEL_MAX
jae short ??exit
mov ecx,[(GraphicViewPort ebx).GVPWidth]
add ecx,[(GraphicViewPort ebx).GVPXAdd]
add ecx,[(GraphicViewPort ebx).GVPPitch]
mul ecx
add edi,eax
; Verify the the X pixel offset is legal.
mov edx,[(GraphicViewPort ebx).GVPWidth]
cmp edx,[x]
mov edx,ecx
jbe short ??exit
add edi,[x]
; Write the pixel to the screen.
mov ebx,[siz] ; Copy of pixel size.
sub edx,ebx ; Modulo to reach start of next row.
mov eax,[color]
??again:
mov ecx,ebx
rep stosb
add edi,edx ; EDI points to start of next row.
dec [siz]
jnz short ??again
??exit:
ret
ENDP Fat_Put_Pixel
if 0
;***************************************************************************
;* strtrim -- Remove the trailing white space from a string. *
;* *
;* Use this routine to remove white space characters from the beginning *
;* and end of the string. The string is modified in place by *
;* this routine. *
;* *
;* INPUT: buffer -- Pointer to the string to modify. *
;* *
;* OUTPUT: none *
;* *
;* WARNINGS: none *
;* *
;* HISTORY: *
;* 10/07/1992 JLB : Created. *
;*=========================================================================*
; VOID cdecl strtrim(BYTE *buffer);
GLOBAL C strtrim :NEAR
PROC strtrim C near
USES ax, edi, esi
ARG buffer:DWORD ; Pointer to string to modify.
cmp [buffer],0
je short ??fini
; Prepare for string scanning by loading pointers.
cld
mov esi,[buffer]
mov edi,esi
; Strip white space from the start of the string.
??looper:
lodsb
cmp al,20h ; Space
je short ??looper
cmp al,9 ; TAB
je short ??looper
stosb
; Copy the rest of the string.
??gruntloop:
lodsb
stosb
or al,al
jnz short ??gruntloop
dec edi
; Strip the white space from the end of the string.
??looper2:
mov [edi],al
dec edi
mov ah,[edi]
cmp ah,20h
je short ??looper2
cmp ah,9
je short ??looper2
??fini:
ret
ENDP strtrim
;***************************************************************************
;* Conquer_Build_Fading_Table -- Builds custom shadow/light fading table. *
;* *
;* This routine is used to build a special fading table for C&C. There *
;* are certain colors that get faded to and cannot be faded again. *
;* With this rule, it is possible to draw a shadow multiple times and *
;* not have it get any lighter or darker. *
;* *
;* INPUT: palette -- Pointer to the 768 byte IBM palette to build from. *
;* *
;* dest -- Pointer to the 256 byte remap table. *
;* *
;* color -- Color index of the color to "fade to". *
;* *
;* frac -- The fraction to fade to the specified color *
;* *
;* OUTPUT: Returns with pointer to the remap table. *
;* *
;* WARNINGS: none *
;* *
;* HISTORY: *
;* 10/07/1992 JLB : Created. *
;*=========================================================================*/
;VOID * cdecl Conquer_Build_Fading_Table(VOID *palette, VOID *dest, long color, long frac);
GLOBAL C Conquer_Build_Fading_Table : NEAR
PROC Conquer_Build_Fading_Table C near
USES ebx, ecx, edi, esi
ARG palette:DWORD
ARG dest:DWORD
ARG color:DWORD
ARG frac:DWORD
LOCAL matchvalue:DWORD ; Last recorded match value.
LOCAL targetred:BYTE ; Target gun red.
LOCAL targetgreen:BYTE ; Target gun green.
LOCAL targetblue:BYTE ; Target gun blue.
LOCAL idealred:BYTE
LOCAL idealgreen:BYTE
LOCAL idealblue:BYTE
LOCAL matchcolor:BYTE ; Tentative match color.
ALLOWED_COUNT EQU 16
ALLOWED_START EQU 256-ALLOWED_COUNT
cld
; If the source palette is NULL, then just return with current fading table pointer.
cmp [palette],0
je ??fini1
cmp [dest],0
je ??fini1
; Fractions above 255 become 255.
mov eax,[frac]
cmp eax,0100h
jb short ??ok
mov [frac],0FFh
??ok:
; Record the target gun values.
mov esi,[palette]
mov ebx,[color]
add esi,ebx
add esi,ebx
add esi,ebx
lodsb
mov [targetred],al
lodsb
mov [targetgreen],al
lodsb
mov [targetblue],al
; Main loop.
xor ebx,ebx ; Remap table index.
; Transparent black never gets remapped.
mov edi,[dest]
mov [edi],bl
inc edi
; EBX = source palette logical number (1..255).
; EDI = running pointer into dest remap table.
??mainloop:
inc ebx
mov esi,[palette]
add esi,ebx
add esi,ebx
add esi,ebx
mov edx,[frac]
shr edx,1
; new = orig - ((orig-target) * fraction);
lodsb ; orig
mov dh,al ; preserve it for later.
sub al,[targetred] ; al = (orig-target)
imul dl ; ax = (orig-target)*fraction
shl eax,1
sub dh,ah ; dh = orig - ((orig-target) * fraction)
mov [idealred],dh ; preserve ideal color gun value.
lodsb ; orig
mov dh,al ; preserve it for later.
sub al,[targetgreen] ; al = (orig-target)
imul dl ; ax = (orig-target)*fraction
shl eax,1
sub dh,ah ; dh = orig - ((orig-target) * fraction)
mov [idealgreen],dh ; preserve ideal color gun value.
lodsb ; orig
mov dh,al ; preserve it for later.
sub al,[targetblue] ; al = (orig-target)
imul dl ; ax = (orig-target)*fraction
shl eax,1
sub dh,ah ; dh = orig - ((orig-target) * fraction)
mov [idealblue],dh ; preserve ideal color gun value.
; Sweep through a limited set of existing colors to find the closest
; matching color.
mov eax,[color]
mov [matchcolor],al ; Default color (self).
mov [matchvalue],-1 ; Ridiculous match value init.
mov ecx,ALLOWED_COUNT
mov esi,[palette] ; Pointer to original palette.
add esi,(ALLOWED_START)*3
; BH = color index.
mov bh,ALLOWED_START
??innerloop:
xor edx,edx ; Comparison value starts null.
; Build the comparison value based on the sum of the differences of the color
; guns squared.
lodsb
sub al,[idealred]
mov ah,al
imul ah
add edx,eax
lodsb
sub al,[idealgreen]
mov ah,al
imul ah
add edx,eax
lodsb
sub al,[idealblue]
mov ah,al
imul ah
add edx,eax
jz short ??perfect ; If perfect match found then quit early.
cmp edx,[matchvalue]
jae short ??notclose
mov [matchvalue],edx ; Record new possible color.
mov [matchcolor],bh
??notclose:
inc bh ; Checking color index.
loop ??innerloop
mov bh,[matchcolor]
??perfect:
mov [matchcolor],bh
xor bh,bh ; Make BX valid main index again.
; When the loop exits, we have found the closest match.
mov al,[matchcolor]
stosb
cmp ebx,ALLOWED_START-1
jne ??mainloop
; Fill the remainder of the remap table with values
; that will remap the color to itself.
mov ecx,ALLOWED_COUNT
??fillerloop:
inc bl
mov al,bl
stosb
loop ??fillerloop
??fini1:
mov esi,[dest]
mov eax,esi
ret
ENDP Conquer_Build_Fading_Table
;***************************************************************************
;* Remove_From_List -- Removes a pointer from a list of pointers. *
;* *
;* This low level routine is used to remove a pointer from a list of *
;* pointers. The trailing pointers are moved downward to fill the *
;* hole. *
;* *
;* INPUT: list -- Pointer to list of pointer. *
;* *
;* index -- Pointer to length of pointer list. *
;* *
;* ptr -- The pointer value to search for and remove. *
;* *
;* OUTPUT: none *
;* *
;* WARNINGS: none *
;* *
;* HISTORY: *
;* 04/11/1994 JLB : Created. *
;* 04/22/1994 JLB : Convert to assembly language. *
;* 05/10/1994 JLB : Short pointers now. *
;*=========================================================================*/
;VOID cdecl Remove_From_List(VOID **list, long *index, long ptr);
GLOBAL C Remove_From_List:NEAR
PROC Remove_From_List C near
USES edi, esi, ecx, eax
ARG list:DWORD ; Pointer to list.
ARG index:DWORD ; Pointer to count.
ARG element:DWORD ; Element to remove.
; Fetch the number of elements in the list. If there are no
; elements, then just exit quickly.
mov edi,[index]
mov ecx,[edi]
jcxz short ??fini2
; Fetch pointer to list.
cmp [list],0
je short ??fini2
mov edi,[list]
; Loop through all elements searching for a match.
mov eax,[element]
repne scasd
jne short ??fini2 ; No match found.
; Copy all remaining elements down. If this is the
; last element in the list then nothing needs to be
; copied -- just decrement the list size.
jcxz short ??nocopy ; No copy necessary.
mov esi,edi
sub edi,4
rep movsd
; Reduce the list count by one.
??nocopy:
mov edi,[index]
dec [DWORD PTR edi]
??fini2:
ret
ENDP Remove_From_List
; long cdecl Get_EAX();
GLOBAL C Get_EAX :NEAR
PROC Get_EAX C near
ret
ENDP Get_EAX
endif
DATASEG
TabA DD 6949350
DD 4913933
DD 3474675
DD 2456966
DD 1737338
DD 1228483
DD 868669
DD 614242
DD 434334
DD 307121
DD 217167
DD 153560
DD 108584
DD 76780
DD 54292
DD 38390
DD 27146
DD 19195
DD 13573
DD 9598
DD 6786
DD 4799
DD 3393
DD 2399
DD 1697
DD 1200
DD 848
DD 600
DD 424
DD 300
DD 212
DD 150
DD 106
TabB DD 154
DD 218
DD 309
DD 437
DD 618
DD 874
DD 1236
DD 1748
DD 2472
DD 3496
DD 4944
DD 6992
DD 9888
DD 13983
DD 19775
DD 27967
DD 39551
DD 55933
DD 79101
DD 111866
DD 158203
DD 223732
DD 316405
DD 447465
DD 632811
DD 894929
DD 1265621
DD 1789859
DD 2531243
DD 3579718
DD 5062486
DD 7159436
DD 10124971
CODESEG
;***********************************************************************************************
;* Square_Root -- Finds the square root of the fixed pointer parameter. *
;* *
;* INPUT: val -- The fixed point (16:16) value to find the square root of. *
;* *
;* OUTPUT: Returns with the square root of the fixed pointer parameter. *
;* *
;* WARNINGS: none *
;* *
;* HISTORY: *
;* 10/04/1995 JLB : Adapted. *
;*=============================================================================================*/
;unsigned Square_Root(unsigned val);
GLOBAL C Square_Root :NEAR
PROC Square_Root C near
USES ebx,edx
bsr ebx,eax
jz ??zero
mul [DWORD 4*ebx + OFFSET TabA]
shrd eax,edx,10h
add eax, [4*ebx + OFFSET TabB]
??zero:
ret
ENDP Square_Root
;----------------------------------------------------------------------------
END
================================================
FILE: CODE/2TXTPRNT.ASM
================================================
;
; Command & Conquer Red Alert(tm)
; Copyright 2025 Electronic Arts Inc.
;
; 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 3 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, see <http://www.gnu.org/licenses/>.
;
;***************************************************************************
;** C O N F I D E N T I A L --- W E S T W O O D S T U D I O S **
;***************************************************************************
;* *
;* Project Name : Westwood 32 bit Library *
;* *
;* File Name : TXTPRNT.ASM *
;* *
;* Programmer : Phil W. Gorrow *
;* *
;* Start Date : January 17, 1995 *
;* *
;* Last Update : January 17, 1995 [PWG] *
;* *
;*-------------------------------------------------------------------------*
;* Functions: *
;* MCGA_Print -- Assembly MCGA text print routine *
;* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *
IDEAL
P386
MODEL USE32 FLAT
;INCLUDE "mcgaprim.inc"
;INCLUDE ".\gbuffer.inc"
GLOBAL C Buffer_Print : NEAR
STRUC GraphicViewPort
GVPOffset DD ? ; offset to virtual viewport
GVPWidth DD ? ; width of virtual viewport
GVPHeight DD ? ; height of virtual viewport
GVPXAdd DD ? ; x mod to get to next line
GVPXPos DD ? ; x pos relative to Graphic Buff
GVPYPos DD ? ; y pos relative to Graphic Buff
GVPPitch dd ? ; modulo of graphic view port
GVPBuffPtr DD ? ; ptr to associated Graphic Buff
ENDS
;*=========================================================================*
;* Extern the font pointer which is defined by the font class *
;*=========================================================================*
GLOBAL C FontPtr:DWORD
GLOBAL C FontXSpacing:DWORD
GLOBAL C FontYSpacing:DWORD
GLOBAL C ColorXlat:BYTE
;*=========================================================================*
;* Define the necessary equates for structures and bounds checking *
;*=========================================================================*
; The header of the font file looks like this:
; UWORD FontLength; 0
; BYTE FontCompress; 2
; BYTE FontDataBlocks; 3
; UWORD InfoBlockOffset; 4
; UWORD OffsetBlockOffset; 6
; UWORD WidthBlockOffset; 8
; UWORD DataBlockOffset; 10
; UWORD HeightOffset; 12
; For this reason the following equates have these values:
FONTINFOBLOCK EQU 4
FONTOFFSETBLOCK EQU 6
FONTWIDTHBLOCK EQU 8
FONTDATABLOCK EQU 10
FONTHEIGHTBLOCK EQU 12
FONTINFOMAXHEIGHT EQU 4
FONTINFOMAXWIDTH EQU 5
LOCALS ??
;*=========================================================================*
;* Define the color xlate table in the data segment *
;*=========================================================================*
DATASEG
ColorXlat DB 000H,001H,002H,003H,004H,005H,006H,007H
DB 008H,009H,00AH,00BH,00CH,00DH,00EH,00FH
DB 001H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H
DB 002H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H
DB 003H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H
DB 004H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H
DB 005H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H
DB 006H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H
DB 007H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H
DB 008H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H
DB 009H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H
DB 00AH,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H
DB 00BH,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H
DB 00CH,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H
DB 00DH,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H
DB 00EH,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H
DB 00FH
CODESEG
;***************************************************************************
;* MCGA_PRINT -- Assembly MCGA text print routine *
;* *
;* *
;* *
;* INPUT: *
;* *
;* OUTPUT: *
;* *
;* PROTO: *
;* *
;* WARNINGS: *
;* *
;* HISTORY: *
;* 01/17/1995 PWG : Created. *
;*=========================================================================*
PROC Buffer_Print C near
USES ebx,ecx,edx,esi,edi
ARG this:DWORD
ARG string:DWORD
ARG x_pixel:DWORD
ARG y_pixel:DWORD
ARG fcolor:DWORD
ARG bcolor:DWORD
LOCAL infoblock:DWORD ; pointer to info block
LOCAL offsetblock:DWORD ; pointer to offset block (UWORD *)
LOCAL widthblock:DWORD ; pointer to width block (BYTE *)
LOCAL heightblock:DWORD ; pointer to height block (UWORD *)
LOCAL curline:DWORD ; pointer to first column of current row.
LOCAL bufferwidth:DWORD ; width of buffer (vpwidth + Xadd)
LOCAL nextdraw:DWORD ; bufferwidth - width of cur character.
LOCAL startdraw:DWORD ; where next character will start being drawn.
LOCAL char:DWORD ; current character value.
LOCAL maxheight:BYTE ; max height of characters in font.
LOCAL bottomblank:BYTE ; amount of empty space below current character.
LOCAL charheight:BYTE ; true height of current character.
LOCAL vpwidth:DWORD
LOCAL vpheight:DWORD
LOCAL original_x:DWORD ; Starting X position.
;-------------------------------- Where to draw -----------------------------------------------
; Set up memory location to start drawing.
mov ebx,[this] ; get a pointer to dest
mov eax,[(GraphicViewPort ebx).GVPHeight] ; get height of viewport
mov [vpheight],eax ; save off height of viewport
mov eax,[(GraphicViewPort ebx).GVPWidth] ; get width of viewport
mov [vpwidth],eax ; save it off for later
add eax,[(GraphicViewPort ebx).GVPXAdd] ; add in xadd for bytes_per_line
add eax,[(GraphicViewPort ebx).GVPPitch] ; add in pitch of direct draw surface
mov [bufferwidth],eax ; save it off for later use.
mul [y_pixel] ; multiply rowsize * y_pixel start.
mov edi,[(GraphicViewPort ebx).GVPOffset] ; get start of the viewport
add edi,eax ; add y position to start of vp
mov [curline],edi ; save 0,y address for line feed stuff.
add edi,[x_pixel] ; add to get starting column in starting row.
mov [startdraw],edi ; save it off.
mov eax,[x_pixel]
mov [original_x],eax
;-------------------------------- Create block pointers ----------------------------------------
; Get the pointer to the font.
; We could check for NULL but why waste the time.
; It is up to programmer to make sure it is set.
mov esi,[FontPtr] ; Get the font pointer
or esi,esi
jz ??overflow
; Set up some pointers to the different memory blocks.
; esi (FontPtr) is added to each to get the true address of each block.
; Many registers are used for P5 optimizations.
; ebx is used for InfoBlock which is then used in the next section.
movzx eax,[WORD PTR esi+FONTOFFSETBLOCK] ; get offset to offset block
movzx ebx,[WORD PTR esi+FONTINFOBLOCK] ; get offset to info block (must be ebx for height test)
movzx ecx,[WORD PTR esi+FONTWIDTHBLOCK] ; get offset to width block
movzx edx,[WORD PTR esi+FONTHEIGHTBLOCK] ; get offset to height block
add eax,esi ; add offset of FontPtr to offset block
add ebx,esi ; add offset of FontPtr to info block
add ecx,esi ; add offset of FontPtr to width block
add edx,esi ; add offset of FontPtr to height block
mov [offsetblock],eax ; save offset to offset block
mov [infoblock],ebx ; save offset to info block
mov [widthblock],ecx ; save offset to width block
mov [heightblock],edx ; save offset to height block
;------------------------------------------ Test for fit ----------------------------------------------
; Test to make sure the height of the max character will fit on this line
; and and not fall out of the viewport.
; remember we set ebx to FONTINFOBLOCK above.
movzx eax,[BYTE PTR ebx + FONTINFOMAXHEIGHT]; get the max height in font.
mov [maxheight],al ; save it for later use.
add eax,[y_pixel] ; add current y_value.
cmp eax,[vpheight] ; are we over the edge?
jg ??overflow ; if so, we're outa here.
mov [y_pixel],eax ; save for next line feed. y value for next line.
cld ; Make sure we are always forward copying.
;------------------------ Set palette foreground and background ----------------------------------
mov eax,[fcolor] ; foreground color
mov [ColorXlat+1],al
mov [ColorXlat+16],al
mov eax,[bcolor] ; background color
mov [ColorXlat],al
;-------------------------------------------------------------------------------------------------
;----------------------------------------- Main loop ----------------------------------------------
; Now we go into the main loop of reading each character in the string and doing
; something with it.
??next_char:
; while (*string++)
xor eax,eax ; zero out since we will just load al.
mov esi,[string] ; get address on next character.
lodsb ; load the character into al.
test eax,0FFH ; test to see if character is a NULL
jz ??done ; character is NULL, get outa here.
mov edi,[startdraw] ; Load the starting address.
mov [string],esi ; save index into string. (incremented by lodsb)
cmp al,10 ; is the character a line feed?
je ??line_feed ; if so, go to special case.
cmp al,13 ; is the character a line feed?
je ??line_feed ; if so, go to special case.
mov [char],eax ; save the character off for later reference.
mov ebx,eax ; save it in ebx for later use also.
add eax,[widthblock] ; figure address of width of character.
mov ecx,[x_pixel] ; get current x_pixel.
movzx edx,[BYTE PTR eax] ; get the width of the character in dl.
add ecx,edx ; add width of char to current x_pixel.
mov eax,[FontXSpacing]
add ecx,eax
add [startdraw],edx ; save start draw for next character.
add [startdraw],eax ; adjust for the font spacing value
cmp ecx,[vpwidth] ; is the pixel greater then the vp width?
jg ??force_line_feed ; if so, force a line feed.
mov [x_pixel],ecx ; save value of start of next character.
mov ecx,[bufferwidth] ; get amount to next y same x (one row down)
sub ecx,edx ; take the current width off.
mov [nextdraw],ecx ; save it to add to edi when done with a row.
; At this point we got the character. It is now time to find out specifics
; about drawing the darn thing.
; ebx = char so they can be used as an indexes.
; edx = width of character for loop later.
; get offset of data for character into esi.
shl ebx,1 ; mult by 2 to later use as a WORD index.
mov esi,[offsetblock] ; get pointer to begining of offset block.
add esi,ebx ; index into offset block.
movzx esi,[WORD PTR esi] ; get true offset into data block from FontPtr.
add esi,[FontPtr] ; Now add FontPtr address to get true address.
; Get top and bottom blank sizes and the true height of the character.
add ebx,[heightblock] ; point ebx to element in height array.
mov al,[ebx+1] ; load the data height into dl.
mov cl,[ebx] ; load the first data row into cl.
mov bl,[maxheight] ; get the max height of characters.
mov [charheight],al ; get number of rows with data.
add al,cl ; add the two heights.
sub bl,al ; subract topblank + char height from maxheight.
mov [bottomblank],bl ; save off the number of blank rows on the bottom.
; leaving this section:
; dl is still the width of the character.
; cl is the height of the top blank area.
mov ebx,OFFSET ColorXlat ; setup ebx for xlat commands.
mov dh,dl ; save the width of the character to restore each loop.
cmp cl,0 ; is there any blank rows on top?
jz ??draw_char ; if not go and draw the real character.
xor eax,eax ; get color 0 for background.
xlat [ebx] ; get translated color into al
test al,al ; is it transparent black
jnz ??loop_top ; if not go and write the color
;----------------------------------------- skip Top blank area ----------------------------------------
; this case, the top is transparrent, but we need to increase our dest pointer to correct row.
movzx eax,cl ; get number of rows into eax;
mov ecx,edx ; save width since edx will be destroyed by mul.
mul [bufferwidth] ; multiply that by the width of the buffer.
mov edx,ecx ; restore the width
add edi,eax ; update the pointer.
jmp short ??draw_char ; now go draw the character.
;----------------------------------------- fill Top blank area ----------------------------------------
; edi was set a long time ago.
; al is the translated color
??loop_top:
stosb ; store the value
dec dh ; decrement our width.
jnz ??loop_top ; if more width, continue on.
add edi,[nextdraw] ; add amount for entire row.
dec cl ; decrement or row count
mov dh,dl ; restore width in dh for loop.
jz ??draw_char ; we are done here, go draw the character.
jmp short ??loop_top ; go back to top of loop.
;----------------------------------------- Draw character ----------------------------------------------
??draw_char:
movzx ecx,[charheight] ; get the height of character to count down rows.
test ecx,ecx ; is there any data? (blank would not have any)
jz ??next_char ; if no data, go on to next character.
??while_data:
lodsb ; get byte value from font data
mov ah,al ; save hinibble
and eax,0F00FH ; mask of low nibble in al hi nibble in ah.
xlat [ebx] ; get new color
test al,al ; is it a transparent?
jz short ??skiplo ; skip over write
mov [es:edi],al ; write it out
??skiplo:
inc edi
dec dh ; decrement our width.
jz short ??nextrow ; check if done with width of char
mov al,ah ; restore to get
; test the time difference between looking up in a large table when shr al,4 is not done as
; compared to using only a 16 byte table when using the shr al,4
;shr al,4 ; shift the hi nibble down to low nibble
xlat [ebx] ; get new color
test al,al ; is it a transparent?
jz short ??skiphi ; skip over write
mov [es:edi],al ; write it out
??skiphi:
inc edi
dec dh ; decrement our width.
jnz short ??while_data ; check if done with width of char
??nextrow:
add edi,[nextdraw] ; go to next line.
dec ecx ; decrement the number of rows to go
mov dh,dl ; restore our column count for row.
jnz ??while_data ; more data for character.
; Now it is time to setup for clearing out the bottom of the character.
movzx ecx,[bottomblank] ; get amount on bottom that is blank
cmp ecx,0 ; if there is no blank bottom...
jz ??next_char ; then skip to go to next character
xor eax,eax ; get color 0 for background.
xlat [ebx] ; get translated color into al
test al,al ; is it transparent black
jz ??next_char ; skip the top black section to let the background through
mov dh,dl ; restore width in dh for loop.
;----------------------------------------- Blank below character -----------------------------------
??loop_bottom:
stosb ; store the value
dec dh ; decrement our width.
jnz ??loop_bottom ; if more width, continue on.
add edi,[nextdraw] ; add amount for entire row.
mov dh,dl ; restore width in dh for loop.
dec cl ; decrement or row count
jz ??next_char ; we are done here, go to the next character.
jmp short ??loop_bottom ; go back to top of loop.
;----------------------------------- end of next_char (main) loop ------------------------------------
;-------------------------------------------------------------------------------------------------
;----------------------------------- special case line feeds ----------------------------------------
??force_line_feed:
; decrement pointer *string so that it will be back at same character
; when it goes through the loop.
mov eax,[string] ; get string pointer.
dec eax ; decrement it to point to previos char
mov [string],eax ; save it back off.
xor eax,eax
; Now go into the line feed code.....
??line_feed:
mov bl,al
mov edx,[y_pixel] ; get the current y pixel value.
movzx ecx,[maxheight] ; get max height for later use.
add ecx,[FontYSpacing]
add edx,ecx ; add max height to y_pixel
cmp edx,[vpheight] ; are we over the edge?
jg ??overflow ; if so, we are outa here.
mov eax,[bufferwidth] ; get bytes to next line.
mov edi,[curline] ; get start of current line.
mul ecx ; mult max height * next line.
add edi,eax ; add adjustment to current line.
add [y_pixel],ecx ; increment to our next y position.
;;; DRD
mov [curline],edi ; save it off for next line_feed.
; Move the cursor to either the left edge of the screen
; or the left margin of the print position depending
; on whether <CR> or <LF> was specified. <CR> = left margin
; <LF> = left edge of screen
xor eax,eax
cmp bl,10
je ??lfeed
mov eax,[original_x]
??lfeed:
mov [x_pixel],eax ; zero out x_pixel
add edi,eax
;;; DRD mov [curline],edi ; save it off for next line_feed.
mov [startdraw],edi ; save it off so we know where to draw next char.w
jmp ??next_char
??overflow:
mov [startdraw],0 ; Indicate that there is no valid next pos.
??done:
mov eax,[startdraw] ; return this so calling routine
ret ; can figure out where to draw next.
ENDP Buffer_Print
;***************************************************************************
;* GET_FONT_PALETTE_PTR -- Returns a pointer to the 256 byte font palette *
;* *
;* INPUT: none *
;* *
;* OUTPUT: none *
;* *
;* PROTO: void *Get_Font_Palette_Ptr(void); *
;* *
;* HISTORY: *
;* 08/18/1995 PWG : Created. *
;*=========================================================================*
GLOBAL C Get_Font_Palette_Ptr:NEAR
PROC Get_Font_Palette_Ptr C near
mov eax, OFFSET ColorXlat
ret
ENDP Get_Font_Palette_Ptr
END
================================================
FILE: CODE/AADATA.CPP
================================================
/*
** Command & Conquer Red Alert(tm)
** Copyright 2025 Electronic Arts Inc.
**
** 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 3 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, see <http://www.gnu.org/licenses/>.
*/
/* $Header: /CounterStrike/AADATA.CPP 1 3/03/97 10:24a Joe_bostic $ */
/***********************************************************************************************
*** C O N F I D E N T I A L --- W E S T W O O D S T U D I O S ***
***********************************************************************************************
* *
* Project Name : Command & Conquer *
* *
* File Name : AADATA.CPP *
* *
* Programmer : Joe L. Bostic *
* *
* Start Date : July 22, 1994 *
* *
* Last Update : July 9, 1996 [JLB] *
* *
*---------------------------------------------------------------------------------------------*
* Functions: *
* AircraftTypeClass::AircraftTypeClass -- Constructor for aircraft objects. *
* AircraftTypeClass::As_Reference -- Given an aircraft type, find the matching type object. *
* AircraftTypeClass::Create_And_Place -- Creates and places aircraft using normal game syste*
* AircraftTypeClass::Create_One_Of -- Creates an aircraft object of the appropriate type. *
* AircraftTypeClass::Dimensions -- Fetches the graphic dimensions of the aircraft type. *
* AircraftTypeClass::Display -- Displays a generic version of the aircraft type. *
* AircraftTypeClass::From_Name -- Converts an ASCII name into an aircraft type number. *
* AircraftTypeClass::Init_Heap -- Initialize the aircraft type class heap. *
* AircraftTypeClass::Max_Pips -- Fetches the maximum number of pips allowed. *
* AircraftTypeClass::Occupy_List -- Returns with occupation list for landed aircraft. *
* AircraftTypeClass::One_Time -- Performs one time initialization of the aircraft type class*
* AircraftTypeClass::Overlap_List -- Determines the overlap list for a landed aircraft. *
* AircraftTypeClass::Prep_For_Add -- Prepares the scenario editor for adding an aircraft obj*
* AircraftTypeClass::operator delete -- Returns aircraft type to special memory pool. *
* AircraftTypeClass::operator new -- Allocates an aircraft type object from special pool. *
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
#include "function.h"
void const * AircraftTypeClass::LRotorData = NULL;
void const * AircraftTypeClass::RRotorData = NULL;
// Badger bomber
static AircraftTypeClass const BadgerPlane(
AIRCRAFT_BADGER, // What kind of aircraft is this.
TXT_BADGER, // Translated text number for aircraft.
"BADR", // INI name of aircraft.
0x0000, // Vertical offset.
0x0000, // Primary weapon offset along turret centerline.
0x0000, // Primary weapon lateral offset along turret centerline.
true, // Fixed wing aircraft?
false, // Equipped with a rotor?
false, // Custom rotor sets for each facing?
false, // Can this aircraft land on clear terrain?
true, // Is it invisible on radar?
false, // Can the player select it so as to give it orders?
true, // Can it be assigned as a target for attack.
false, // Is it insignificant (won't be announced)?
false, // Is it immune to normal combat damage?
STRUCT_NONE, // Preferred landing building.
0xFF, // Landing speed
16, // Number of rotation stages.
MISSION_HUNT // Default mission for aircraft.
);
// Photo recon plane.
static AircraftTypeClass const U2Plane(
AIRCRAFT_U2, // What kind of aircraft is this.
TXT_U2, // Translated text number for aircraft.
"U2", // INI name of aircraft.
0x0000, // Vertical offset.
0x0000, // Primary weapon offset along turret centerline.
0x0000, // Primary weapon lateral offset along turret centerline.
true, // Fixed wing aircraft?
false, // Equipped with a rotor?
false, // Custom rotor sets for each facing?
false, // Can this aircraft land on clear terrain?
true, // Is it invisible on radar?
false, // Can the player select it so as to give it orders?
true, // Can it be assigned as a target for attack.
false, // Is it insignificant (won't be announced)?
false, // Is it immune to normal combat damage?
STRUCT_NONE, // Preferred landing building.
0xFF, // Landing speed
16, // Number of rotation stages.
MISSION_HUNT // Default mission for aircraft.
);
// Mig attack aircraft.
static AircraftTypeClass const MigPlane(
AIRCRAFT_MIG, // What kind of aircraft is this.
TXT_MIG, // Translated text number for aircraft.
"MIG", // INI name of aircraft.
0x0000, // Vertical offset.
0x0020, // Primary weapon offset along turret centerline.
0x0020, // Primary weapon lateral offset along turret centerline.
true, // Fixed wing aircraft?
false, // Equipped with a rotor?
false, // Custom rotor sets for each facing?
false, // Can this aircraft land on clear terrain?
true, // Is it invisible on radar?
true, // Can the player select it so as to give it orders?
true, // Can it be assigned as a target for attack.
false, // Is it insignificant (won't be announced)?
false, // Is it immune to normal combat damage?
STRUCT_AIRSTRIP, // Preferred landing building.
0xC0, // Landing speed
16, // Number of rotation stages.
MISSION_HUNT // Default mission for aircraft.
);
// Yak attack aircraft.
static AircraftTypeClass const YakPlane(
AIRCRAFT_YAK, // What kind of aircraft is this.
TXT_YAK, // Translated text number for aircraft.
"YAK", // INI name of aircraft.
0x0000, // Vertical offset.
0x0020, // Primary weapon offset along turret centerline.
0x0020, // Primary weapon lateral offset along turret centerline.
true, // Fixed wing aircraft?
false, // Equipped with a rotor?
false, // Custom rotor sets for each facing?
false, // Can this aircraft land on clear terrain?
true, // Is it invisible on radar?
true, // Can the player select it so as to give it orders?
true, // Can it be assigned as a target for attack.
false, // Is it insignificant (won't be announced)?
false, // Is it immune to normal combat damage?
STRUCT_AIRSTRIP, // Preferred landing building.
0xFF, // Landing speed
16, // Number of rotation stages.
MISSION_HUNT // Default mission for aircraft.
);
// Transport helicopter.
static AircraftTypeClass const TransportHeli(
AIRCRAFT_TRANSPORT, // What kind of aircraft is this.
TXT_TRANS, // Translated text number for aircraft.
"TRAN", // INI name of aircraft.
0x0000, // Vertical offset.
0x0000, // Primary weapon offset along turret centerline.
0x0000, // Primary weapon lateral offset along turret centerline.
false, // Fixed wing aircraft?
true, // Equipped with a rotor?
true, // Custom rotor sets for each facing?
true, // Can this aircraft land on clear terrain?
true, // Is it invisible on radar?
true, // Can the player select it so as to give it orders?
true, // Can it be assigned as a target for attack.
false, // Is it insignificant (won't be announced)?
false, // Is it immune to normal combat damage?
STRUCT_NONE, // Preferred landing building.
0xFF, // Landing speed
32, // Number of rotation stages.
MISSION_HUNT // Default mission for aircraft.
);
// Longbow attack helicopter
static AircraftTypeClass const AttackHeli(
AIRCRAFT_LONGBOW, // What kind of aircraft is this.
TXT_HELI, // Translated text number for aircraft.
"HELI", // INI name of aircraft.
0x0000, // Vertical offset.
0x0040, // Primary weapon offset along turret centerline.
0x0000, // Primary weapon lateral offset along turret centerline.
false, // Fixed wing aircraft?
true, // Equipped with a rotor?
false, // Custom rotor sets for each facing?
false, // Can this aircraft land on clear terrain?
true, // Is it invisible on radar?
true, // Can the player select it so as to give it orders?
true, // Can it be assigned as a target for attack.
false, // Is it insignificant (won't be announced)?
false, // Is it immune to normal combat damage?
STRUCT_HELIPAD, // Preferred landing building.
0xFF, // Landing speed
32, // Number of rotation stages.
MISSION_HUNT // Default mission for aircraft.
);
// Hind
static AircraftTypeClass const OrcaHeli(
AIRCRAFT_HIND, // What kind of aircraft is this.
TXT_ORCA, // Translated text number for aircraft.
"HIND", // INI name of aircraft.
0x0000, // Vertical offset.
0x0040, // Primary weapon offset along turret centerline.
0x0000, // Primary weapon lateral offset along turret centerline.
false, // Fixed wing aircraft?
true, // Equipped with a rotor?
false, // Custom rotor sets for each facing?
false, // Can this aircraft land on clear terrain?
true, // Is it invisible on radar?
true, // Can the player select it so as to give it orders?
true, // Can it be assigned as a target for attack.
false, // Is it insignificant (won't be announced)?
false, // Is it immune to normal combat damage?
STRUCT_HELIPAD, // Preferred landing building.
0xFF, // Landing speed
32, // Number of rotation stages.
MISSION_HUNT // Default mission for aircraft.
);
/***********************************************************************************************
* AircraftTypeClass::AircraftTypeClass -- Constructor for aircraft objects. *
* *
* This is the constructor for the aircraft object. *
* *
* INPUT: see below... *
* *
* OUTPUT: none *
* *
* WARNINGS: none *
* *
* HISTORY: *
* 07/26/1994 JLB : Created. *
*=============================================================================================*/
AircraftTypeClass::AircraftTypeClass(
AircraftType airtype,
int name,
char const * ininame,
int verticaloffset,
int primaryoffset,
int primarylateral,
bool is_fixedwing,
bool is_rotorequipped,
bool is_rotorcustom,
bool is_landable,
bool is_stealthy,
bool is_selectable,
bool is_legal_target,
bool is_insignificant,
bool is_immune,
StructType building,
int landingspeed,
int rotation,
MissionType deforder
) :
TechnoTypeClass(RTTI_AIRCRAFTTYPE,
int(airtype),
name,
ininame,
REMAP_NORMAL,
verticaloffset,
primaryoffset,
primarylateral,
primaryoffset,
primarylateral,
false,
is_stealthy,
is_selectable,
is_legal_target,
is_insignificant,
is_immune,
false,
false,
true,
true,
rotation,
SPEED_WINGED),
IsFixedWing(is_fixedwing),
IsLandable(is_landable),
IsRotorEquipped(is_rotorequipped),
IsRotorCustom(is_rotorcustom),
Type(airtype),
Mission(deforder),
Building(building),
LandingSpeed(landingspeed)
{
/*
** Forced aircraft overrides from the default.
*/
Speed = SPEED_WINGED;
}
/***********************************************************************************************
* AircraftTypeClass::operator new -- Allocates an aircraft type object from special pool. *
* *
* This will allocate an aircraft type class object from the memory pool of that purpose. *
* *
* INPUT: none *
* *
* OUTPUT: Returns with a pointer to the newly allocated aircraft type class object. If there *
* was insufficient memory to fulfill the request, then NULL is returned. *
* *
* WARNINGS: none *
* *
* HISTORY: *
* 07/09/1996 JLB : Created. *
*=============================================================================================*/
void * AircraftTypeClass::operator new(size_t)
{
return(AircraftTypes.Alloc());
}
/***********************************************************************************************
* AircraftTypeClass::operator delete -- Returns aircraft type to special memory pool. *
* *
* This will return the aircraft type class object back to the special memory pool that *
* it was allocated from. *
* *
* INPUT: pointer -- Pointer to the aircraft type class object to delete. *
* *
* OUTPUT: none *
* *
* WARNINGS: none *
* *
* HISTORY: *
* 07/09/1996 JLB : Created. *
*=============================================================================================*/
void AircraftTypeClass::operator delete(void * pointer)
{
AircraftTypes.Free((AircraftTypeClass *)pointer);
}
/***********************************************************************************************
* AircraftTypeClass::Init_Heap -- Initialize the aircraft type class heap. *
* *
* This will initialize the aircraft type class heap by pre-allocating all known aircraft *
* types. It should be called once and before the rules.ini file is processed. *
* *
* INPUT: none *
* *
* OUTPUT: none *
* *
* WARNINGS: none *
* *
* HISTORY: *
* 07/09/1996 JLB : Created. *
*=======================
gitextract_rc2spqh1/
├── CODE/
│ ├── 2KEYFBUF.ASM
│ ├── 2KEYFRAM.CPP
│ ├── 2SUPPORT.ASM
│ ├── 2TXTPRNT.ASM
│ ├── AADATA.CPP
│ ├── ABSTRACT.CPP
│ ├── ABSTRACT.H
│ ├── ADAMTEMP.MAK
│ ├── ADATA.CPP
│ ├── ADPCM.CPP
│ ├── AIRCRAFT.CPP
│ ├── AIRCRAFT.H
│ ├── ALLOC.CPP
│ ├── ANIM.CPP
│ ├── ANIM.CPP.BAK
│ ├── ANIM.H
│ ├── AUDIO.CPP
│ ├── AUDIO.CPP.BAK
│ ├── AUDIO.H
│ ├── B64PIPE.CPP
│ ├── B64PIPE.H
│ ├── B64STRAW.CPP
│ ├── B64STRAW.H
│ ├── BAR.CPP
│ ├── BAR.H
│ ├── BASE.CPP
│ ├── BASE.H
│ ├── BASE64.CPP
│ ├── BASE64.H
│ ├── BBDATA.CPP
│ ├── BDATA.CPP
│ ├── BENCH.CPP
│ ├── BENCH.H
│ ├── BFILE.MAK
│ ├── BFILE2.MAK
│ ├── BFIOFILE.CPP
│ ├── BFIOFILE.H
│ ├── BIGCHECK.CPP
│ ├── BIGCHECK.H
│ ├── BLOWFISH.CPP
│ ├── BLOWFISH.H
│ ├── BLOWPIPE.CPP
│ ├── BLOWPIPE.H
│ ├── BLWSTRAW.CPP
│ ├── BLWSTRAW.H
│ ├── BMP8.CPP
│ ├── BMP8.H
│ ├── BUFF.CPP
│ ├── BUFF.H
│ ├── BUFFERX.H
│ ├── BUGS.TXT
│ ├── BUILDING.CPP
│ ├── BUILDING.H
│ ├── BULLET.CPP
│ ├── BULLET.H
│ ├── C&CZERO.PJT
│ ├── CARGO.CPP
│ ├── CARGO.H
│ ├── CARRY.CPP
│ ├── CARRY.H
│ ├── CCDDE.CPP
│ ├── CCDDE.H
│ ├── CCFILE.CPP
│ ├── CCFILE.H
│ ├── CCINI.CPP
│ ├── CCINI.H
│ ├── CCMPATH.CPP
│ ├── CCPTR.CPP
│ ├── CCPTR.H
│ ├── CCTEN.CPP
│ ├── CC_ICON.RC
│ ├── CC_ICON.RH
│ ├── CDATA.CPP
│ ├── CDFILE.CPP
│ ├── CDFILE.H
│ ├── CELL.CPP
│ ├── CELL.H
│ ├── CHECKBOX.CPP
│ ├── CHECKBOX.H
│ ├── CHEKLIST.CPP
│ ├── CHEKLIST.H
│ ├── CLASS.CPP
│ ├── CO-WC32.LNT
│ ├── COLRLIST.CPP
│ ├── COLRLIST.H
│ ├── COMBAT.CPP
│ ├── COMBUF.CPP
│ ├── COMBUF.H
│ ├── COMINIT.CPP
│ ├── COMINIT.H
│ ├── COMPAT.H
│ ├── COMQUEUE.CPP
│ ├── COMQUEUE.H
│ ├── CONFDLG.CPP
│ ├── CONFDLG.H
│ ├── CONNECT.CPP
│ ├── CONNECT.CPP.BAK
│ ├── CONNECT.H
│ ├── CONNMGR.H
│ ├── CONQUER.CPP
│ ├── CONQUER.CPP.BAK
│ ├── CONQUER.H
│ ├── CONQUER.IDE
│ ├── CONQUER.LNT
│ ├── CONST.CPP
│ ├── CONTROL.CPP
│ ├── CONTROL.H
│ ├── COORD.CPP
│ ├── COORDA.ASM
│ ├── CPUID.ASM
│ ├── CRATE.CPP
│ ├── CRATE.H
│ ├── CRC.CPP
│ ├── CRC.H
│ ├── CRCPIPE.CPP
│ ├── CRCPIPE.H
│ ├── CRCSTRAW.CPP
│ ├── CRCSTRAW.H
│ ├── CREDITS.CPP
│ ├── CREDITS.H
│ ├── CREW.CPP
│ ├── CREW.H
│ ├── CSTRAW.CPP
│ ├── CSTRAW.H
│ ├── CWSTUB.C
│ ├── DDE.CPP
│ ├── DDE.H
│ ├── DEBUG.CPP
│ ├── DEBUG.H
│ ├── DEFINES.H
│ ├── DESCDLG.CPP
│ ├── DESCDLG.H
│ ├── DIAL8.CPP
│ ├── DIAL8.H
│ ├── DIALOG.CPP
│ ├── DIBAPI.H
│ ├── DIBFILE.CPP
│ ├── DIBUTIL.CPP
│ ├── DIBUTIL.H
│ ├── DISPLAY.CPP
│ ├── DISPLAY.H
│ ├── DOOR.CPP
│ ├── DOOR.H
│ ├── DPMI.CPP
│ ├── DPMI.H
│ ├── DRIVE.CPP
│ ├── DRIVE.H
│ ├── DROP.CPP
│ ├── DROP.H
│ ├── DTABLE.CPP
│ ├── DYNAVEC.CPP
│ ├── EDIT.CPP
│ ├── EDIT.H
│ ├── EGOS.CPP
│ ├── EGOS.H
│ ├── ENDING.CPP
│ ├── ENDING.H
│ ├── ENG/
│ │ ├── CONQUER.BAK
│ │ ├── CONQUER.TXT
│ │ ├── CREDITS.BAK
│ │ ├── CREDITS.TXT
│ │ ├── DEBUG.BAK
│ │ ├── DEBUG.TXT
│ │ ├── ENG/
│ │ │ ├── CONQUER.TXT
│ │ │ └── CREDITS.TXT
│ │ ├── FRE/
│ │ │ ├── CONQUER.TXT
│ │ │ └── CREDITS.TXT
│ │ ├── GER/
│ │ │ ├── CONQUER.TXT
│ │ │ └── CREDITS.TXT
│ │ └── MESSAGE.TXT
│ ├── EVENT.CPP
│ ├── EVENT.H
│ ├── EXPAND.CPP
│ ├── EXTERNS.H
│ ├── FACE.CPP
│ ├── FACE.H
│ ├── FACING.CPP
│ ├── FACING.H
│ ├── FACTORY.CPP
│ ├── FACTORY.H
│ ├── FAKESOCK.H
│ ├── FIELD.CPP
│ ├── FIELD.H
│ ├── FILE.CPP
│ ├── FILEPCX.H
│ ├── FINDPATH.CPP
│ ├── FIXED.CPP
│ ├── FIXED.H
│ ├── FLASHER.CPP
│ ├── FLASHER.H
│ ├── FLY.CPP
│ ├── FLY.H
│ ├── FOOT.CPP
│ ├── FOOT.H
│ ├── FOREIGN.TXT
│ ├── FTIMER.H
│ ├── FUNCTION.H
│ ├── FUNCTION.I
│ ├── FUSE.CPP
│ ├── FUSE.H
│ ├── GADGET.CPP
│ ├── GADGET.H
│ ├── GAMEDLG.CPP
│ ├── GAMEDLG.H
│ ├── GAUGE.CPP
│ ├── GAUGE.H
│ ├── GETCPU.CPP
│ ├── GLOBALS.CPP
│ ├── GOPTIONS.CPP
│ ├── GOPTIONS.H
│ ├── GSCREEN.CPP
│ ├── GSCREEN.H
│ ├── HDATA.CPP
│ ├── HEADER.MAC
│ ├── HEAP.CPP
│ ├── HEAP.H
│ ├── HELP.CPP
│ ├── HELP.H
│ ├── HOUSE.CPP
│ ├── HOUSE.H
│ ├── HSV.CPP
│ ├── HSV.H
│ ├── ICONLIST.CPP
│ ├── ICONLIST.H
│ ├── IDATA.CPP
│ ├── INFANTRY.CPP
│ ├── INFANTRY.H
│ ├── INI.CPP
│ ├── INI.H
│ ├── INIBIN.CPP
│ ├── INICODE.CPP
│ ├── INIT.CPP
│ ├── INIT.CPP.BAK
│ ├── INLINE.H
│ ├── INT.CPP
│ ├── INT.H
│ ├── INTERNET.CPP
│ ├── INTERNET.H
│ ├── INTERPAL.CPP
│ ├── INTRO.CPP
│ ├── INTRO.H
│ ├── IOMAP.CPP
│ ├── IOOBJ.CPP
│ ├── IPX.CPP
│ ├── IPX.H
│ ├── IPX95.CPP
│ ├── IPX95.H
│ ├── IPXADDR.CPP
│ ├── IPXADDR.H
│ ├── IPXCONN.CPP
│ ├── IPXCONN.H
│ ├── IPXGCONN.CPP
│ ├── IPXGCONN.H
│ ├── IPXMGR.CPP
│ ├── IPXMGR.H
│ ├── IPXPROT.ASM
│ ├── IPXREAL.ASM
│ ├── ITABLE.CPP
│ ├── JOEMAKE.BAT
│ ├── JSHELL.CPP
│ ├── JSHELL.H
│ ├── KEY.CPP
│ ├── KEY.H
│ ├── KEYBOARD.CPP
│ ├── KEYBOARD.H
│ ├── KEYFBUFF.ASM
│ ├── KEYFBUFF.ASM.BAK
│ ├── KEYFRAME.CPP
│ ├── LANGUAGE.H
│ ├── LAYER.CPP
│ ├── LAYER.H
│ ├── LCW.CPP
│ ├── LCW.H
│ ├── LCWCOMP.ASM
│ ├── LCWPIPE.CPP
│ ├── LCWPIPE.H
│ ├── LCWSTRAW.CPP
│ ├── LCWSTRAW.H
│ ├── LCWUNCMP.CPP
│ ├── LED.H
│ ├── LIBRARY.TXT
│ ├── LINK.CPP
│ ├── LINK.H
│ ├── LINT.H
│ ├── LIST.CPP
│ ├── LIST.H
│ ├── LISTNODE.H
│ ├── LOADDLG.CPP
│ ├── LOADDLG.H
│ ├── LOGIC.CPP
│ ├── LOGIC.H
│ ├── LZO.H
│ ├── LZO1X.H
│ ├── LZO1X_C.CPP
│ ├── LZO1X_D.CPP
│ ├── LZOCONF.H
│ ├── LZOPIPE.CPP
│ ├── LZOPIPE.H
│ ├── LZOSTRAW.CPP
│ ├── LZOSTRAW.H
│ ├── LZO_CONF.H
│ ├── LZW.CPP
│ ├── LZW.H
│ ├── LZWOTRAW.CPP
│ ├── LZWPIPE.CPP
│ ├── LZWPIPE.H
│ ├── LZWSTRAW.CPP
│ ├── LZWSTRAW.H
│ ├── MAKEFILE
│ ├── MAKE_ALL.BAT
│ ├── MAP.CPP
│ ├── MAP.H
│ ├── MAPEDDLG.CPP
│ ├── MAPEDIT.CPP
│ ├── MAPEDIT.H
│ ├── MAPEDPLC.CPP
│ ├── MAPEDSEL.CPP
│ ├── MAPEDTM.CPP
│ ├── MAPSEL.CPP
│ ├── MCI.CPP
│ ├── MCI.H
│ ├── MCIMOVIE.CPP
│ ├── MCIMOVIE.H
│ ├── MEMCHECK.H
│ ├── MENUS.CPP
│ ├── MESSAGE.H
│ ├── MISSION.CPP
│ ├── MISSION.H
│ ├── MIXFILE.CPP
│ ├── MIXFILE.H
│ ├── MONOC.CPP
│ ├── MONOC.H
│ ├── MOUSE.CPP
│ ├── MOUSE.H
│ ├── MOVIE.H
│ ├── MP.CPP
│ ├── MP.H
│ ├── MPGSET.CPP
│ ├── MPGSET.H
│ ├── MPLAYER.CPP
│ ├── MPLIB.CPP
│ ├── MPLPC.CPP
│ ├── MPMGRD.CPP
│ ├── MPMGRD.H
│ ├── MPMGRW.CPP
│ ├── MPMGRW.H
│ ├── MPU.CPP
│ ├── MPU.H
│ ├── MSGBOX.CPP
│ ├── MSGBOX.CPP.BAK
│ ├── MSGBOX.H
│ ├── MSGLIST.CPP
│ ├── MSGLIST.H
│ ├── NETDLG.CPP
│ ├── NOSEQCON.CPP
│ ├── NOSEQCON.H
│ ├── NULLCONN.CPP
│ ├── NULLCONN.H
│ ├── NULLDLG.CPP
│ ├── NULLMGR.CPP
│ ├── NULLMGR.H
│ ├── NUMBER.CPP
│ ├── OBJECT.CPP
│ ├── OBJECT.H
│ ├── ODATA.CPP
│ ├── OPTIONS.CPP
│ ├── OPTIONS.H
│ ├── OPTIONS.LNT
│ ├── OVERLAY.CPP
│ ├── OVERLAY.H
│ ├── PACKET.CPP
│ ├── PACKET.H
│ ├── PIPE.CPP
│ ├── PIPE.H
│ ├── PK.CPP
│ ├── PK.H
│ ├── PKPIPE.CPP
│ ├── PKPIPE.H
│ ├── PKSTRAW.CPP
│ ├── PKSTRAW.H
│ ├── POWER.CPP
│ ├── POWER.H
│ ├── PROFILE.CPP
│ ├── PROFILE.DEF
│ ├── QUEUE.CPP
│ ├── QUEUE.H
│ ├── RA-HDOS.PJT
│ ├── RA-HOME.PJT
│ ├── RA95.PJT
│ ├── RADAR.CPP
│ ├── RADAR.H
│ ├── RADIO.CPP
│ ├── RADIO.H
│ ├── RADOS.PJT
│ ├── RAMFILE.CPP
│ ├── RAMFILE.H
│ ├── RAND.CPP
│ ├── RANDOM.CPP
│ ├── RANDOM.H
│ ├── RAWFILE.CPP
│ ├── RAWFILE.H
│ ├── RAWOLAPI.CPP
│ ├── RAWOLAPI.H
│ ├── READLINE.CPP
│ ├── READLINE.H
│ ├── RECT.CPP
│ ├── RECT.H
│ ├── REDALERT.IDE
│ ├── REGION.H
│ ├── REINF.CPP
│ ├── RGB.CPP
│ ├── RGB.H
│ ├── RNDSTRAW.CPP
│ ├── RNDSTRAW.H
│ ├── RNG.H
│ ├── ROTBMP.CPP
│ ├── ROTBMP.H
│ ├── RULES.CPP
│ ├── RULES.H
│ ├── RULES.MAK
│ ├── SAVEDLG.H
│ ├── SAVELOAD.CPP
│ ├── SCENARIO.CPP
│ ├── SCENARIO.H
│ ├── SCORE.CPP
│ ├── SCORE.H
│ ├── SCREEN.H
│ ├── SCROLL.CPP
│ ├── SCROLL.H
│ ├── SDATA.CPP
│ ├── SEARCH.H
│ ├── SEDITDLG.CPP
│ ├── SEDITDLG.H
│ ├── SENDFILE.CPP
│ ├── SEQCONN.CPP
│ ├── SEQCONN.H
│ ├── SESSION.CPP
│ ├── SESSION.H
│ ├── SHA.CPP
│ ├── SHA.H
│ ├── SHAPEBTN.CPP
│ ├── SHAPEBTN.H
│ ├── SHAPIPE.CPP
│ ├── SHAPIPE.H
│ ├── SHASTRAW.CPP
│ ├── SHASTRAW.H
│ ├── SIDEBAR.CPP
│ ├── SIDEBAR.H
│ ├── SLIDER.CPP
│ ├── SLIDER.H
│ ├── SMUDGE.CPP
│ ├── SMUDGE.H
│ ├── SOUNDDLG.CPP
│ ├── SOUNDDLG.H
│ ├── SPECIAL.CPP
│ ├── SPECIAL.H
│ ├── SPRITE.CPP
│ ├── STAGE.H
│ ├── STARTUP.CPP
│ ├── STATBTN.CPP
│ ├── STATBTN.H
│ ├── STATS.CPP
│ ├── STD.LNT
│ ├── STRAW.CPP
│ ├── STRAW.H
│ ├── STUB.CPP
│ ├── STUFF.TXT
│ ├── STYLE.H
│ ├── SUPER.CPP
│ ├── SUPER.H
│ ├── SUPPORT.ASM
│ ├── SURFACE.CPP
│ ├── SURFACE.H
│ ├── TAB.CPP
│ ├── TAB.H
│ ├── TACTION.CPP
│ ├── TACTION.H
│ ├── TARCOM.CPP
│ ├── TARCOM.H
│ ├── TARGET.CPP
│ ├── TARGET.H
│ ├── TASM.CFG
│ ├── TCPIP.CPP
│ ├── TCPIP.H
│ ├── TDATA.CPP
│ ├── TEAM.CPP
│ ├── TEAM.H
│ ├── TEAMTYPE.CPP
│ ├── TEAMTYPE.H
│ ├── TECHNO.CPP
│ ├── TECHNO.H
│ ├── TEMP.CPP
│ ├── TEMPLATE.CPP
│ ├── TEMPLATE.H
│ ├── TENMGR.CPP
│ ├── TENMGR.H
│ ├── TERRAIN.CPP
│ ├── TERRAIN.H
│ ├── TEVENT.CPP
│ ├── TEVENT.H
│ ├── TEXTBTN.CPP
│ ├── TEXTBTN.H
│ ├── THEME.CPP
│ ├── THEME.H
│ ├── TLINK.CFG
│ ├── TODO.TXT
│ ├── TOGGLE.CPP
│ ├── TOGGLE.H
│ ├── TOOLTIP.CPP
│ ├── TOOLTIP.H
│ ├── TRACKER.CPP
│ ├── TRIGGER.CPP
│ ├── TRIGGER.H
│ ├── TRIGTYPE.CPP
│ ├── TRIGTYPE.H
│ ├── TURBOC.CFG
│ ├── TURRET.CPP
│ ├── TURRET.H
│ ├── TXTLABEL.CPP
│ ├── TXTLABEL.H
│ ├── TXTPRNT.ASM
│ ├── TYPE.H
│ ├── UDATA.CPP
│ ├── UDPADDR.CPP
│ ├── UNIT.CPP
│ ├── UNIT.H
│ ├── UTRACKER.CPP
│ ├── UTRACKER.H
│ ├── VDATA.CPP
│ ├── VECTOR.CPP
│ ├── VECTOR.H
│ ├── VERSION.CPP
│ ├── VERSION.H
│ ├── VER_FUNC.TXT
│ ├── VESSEL.CPP
│ ├── VESSEL.H
│ ├── VISUDLG.CPP
│ ├── VISUDLG.H
│ ├── VORTEX.CPP
│ ├── VORTEX.H
│ ├── W95TRACE.CPP
│ ├── W95TRACE.H
│ ├── WARHEAD.CPP
│ ├── WARHEAD.H
│ ├── WATCOM.H
│ ├── WEAPON.CPP
│ ├── WEAPON.H
│ ├── WIDEFUNC.MAC
│ ├── WIDEHDR.MAC
│ ├── WINASM.ASM
│ ├── WINSTUB.CPP
│ ├── WOLAPI/
│ │ ├── CHATDEFS.H
│ │ ├── DOWNLOADDEFS.H
│ │ ├── FTPDEFS.H
│ │ ├── NETUTILDEFS.H
│ │ ├── WOLAPI.H
│ │ └── WOLAPI_I.C
│ ├── WOLAPIOB.CPP
│ ├── WOLAPIOB.H
│ ├── WOLDEBUG.H
│ ├── WOLEDIT.CPP
│ ├── WOLEDIT.H
│ ├── WOLSTRNG.CPP
│ ├── WOLSTRNG.H
│ ├── WOL_CGAM.CPP
│ ├── WOL_CHAT.CPP
│ ├── WOL_DNLD.CPP
│ ├── WOL_GSUP.CPP
│ ├── WOL_GSUP.H
│ ├── WOL_LOGN.CPP
│ ├── WOL_MAIN.CPP
│ ├── WOL_OPT.CPP
│ ├── WRITEPCX.CPP
│ ├── WSPIPX.CPP
│ ├── WSPIPX.H
│ ├── WSPROTO.CPP
│ ├── WSPROTO.H
│ ├── WSPUDP.CPP
│ ├── WSPUDP.H
│ ├── WWALLOC.H
│ ├── WWFILE.H
│ ├── XPIPE.CPP
│ ├── XPIPE.H
│ ├── XSTRAW.CPP
│ ├── XSTRAW.H
│ ├── _WSPROTO.CPP
│ └── _WSPROTO.H
├── IPX/
│ ├── FIXTHUNK.CPP
│ ├── IPX.RC
│ ├── IPX16.ASM
│ ├── IPX16.BAK
│ ├── IPX16.H
│ ├── IPX16A.ASM
│ ├── IPX16C.CPP
│ ├── IPXTEST.CPP
│ ├── MAKE.BAK
│ ├── MAKE.BAT
│ ├── MAKEFILE
│ ├── MAKETH16.BAK
│ ├── MAKETH16.BAT
│ ├── MAKETH32.BAK
│ ├── MAKETH32.BAT
│ ├── OK/
│ │ ├── FIXTHUNK.CPP
│ │ ├── IPX.RC
│ │ ├── IPX16.ASM
│ │ ├── IPX16.BAK
│ │ ├── IPX16.H
│ │ ├── IPX16A.ASM
│ │ ├── IPX16C.CPP
│ │ ├── IPXTEST.CPP
│ │ ├── MAKE.BAK
│ │ ├── MAKE.BAT
│ │ ├── MAKETH16.BAK
│ │ ├── MAKETH16.BAT
│ │ ├── MAKETH32.BAK
│ │ ├── MAKETH32.BAT
│ │ ├── OLTHIPX.ASM
│ │ ├── PCMACRO.16
│ │ ├── THIPX.ASM
│ │ ├── THIPX.BAK
│ │ ├── THIPX.THK
│ │ ├── THIPX16C.CPP
│ │ ├── THIPX32C.CPP
│ │ ├── THMAP16.ASM
│ │ ├── THMAP32.ASM
│ │ ├── WWIPX.ASM
│ │ └── WWIPX16.ASM
│ ├── OLD/
│ │ └── IPX16A.ASM
│ ├── OLTHIPX.ASM
│ ├── PCMACRO.16
│ ├── THIPX.ASM
│ ├── THIPX.BAK
│ ├── THIPX.THK
│ ├── THIPX16C.CPP
│ ├── THIPX32C.CPP
│ ├── THMAP16.ASM
│ ├── THMAP32.ASM
│ ├── WWIPX.ASM
│ └── WWIPX16.ASM
├── LAUNCH/
│ ├── LAUNCH.ASM
│ └── PCMACRO.16
├── LAUNCHER/
│ ├── 256BMP.C
│ ├── BITMAP.CPP
│ ├── CONFIGFILE.CPP
│ ├── CONFIGFILE.H
│ ├── DIALOG.CPP
│ ├── DIALOG.H
│ ├── DICTIONARY.H
│ ├── FILED.H
│ ├── FINDPATCH.CPP
│ ├── FINDPATCH.H
│ ├── LAUNCHER.DSP
│ ├── LAUNCHER.DSW
│ ├── LAUNCHER1.RC
│ ├── LOADBMP.CPP
│ ├── LOADBMP.H
│ ├── MAIN.CPP
│ ├── MONOD.CPP
│ ├── MONOD.H
│ ├── ODEVICE.H
│ ├── PATCH.CPP
│ ├── PATCH.H
│ ├── PROCESS.CPP
│ ├── PROCESS.H
│ ├── RESOURCE.H
│ ├── STREAMER.CPP
│ ├── STREAMER.H
│ ├── UTIL/
│ │ ├── FILED.H
│ │ ├── MBOXD.H
│ │ ├── MONOD.CPP
│ │ ├── MONOD.H
│ │ ├── ODEVICE.H
│ │ ├── STDERRD.H
│ │ ├── STDOUTD.H
│ │ ├── STREAMER.CPP
│ │ ├── STREAMER.H
│ │ ├── SYSLOGD.CPP
│ │ ├── SYSLOGD.H
│ │ ├── WDEBUG.CPP
│ │ └── WDEBUG.H
│ ├── WDEBUG.CPP
│ ├── WDEBUG.H
│ ├── WINBLOWS.CPP
│ ├── WINBLOWS.H
│ ├── WSTRING.CPP
│ ├── WSTRING.H
│ └── WSTYPES.H
├── LICENSE.md
├── README.md
├── TOOLS/
│ ├── ANIMATE.EXE.OLD
│ ├── AUDIOMAK/
│ │ ├── AUDIOMAK.CPP
│ │ ├── AUDIOMAK.PJT
│ │ ├── MAKEFILE
│ │ ├── SCODE.ASM
│ │ ├── TASM.CFG
│ │ ├── TLINK.CFG
│ │ └── TURBOC.CFG
│ └── MIX/
│ ├── MIXFILE.CPP
│ ├── MIXFILE.IDE
│ └── MIXFILE.IDE.BAK
├── VQ/
│ ├── INCLUDE/
│ │ ├── HMI32/
│ │ │ ├── SOS.H
│ │ │ ├── SOSDATA.H
│ │ │ ├── SOSDEFS.H
│ │ │ ├── SOSFNCT.H
│ │ │ └── SOSRES.H
│ │ ├── VOCFILE.H
│ │ ├── VQ.H
│ │ ├── VQA32/
│ │ │ ├── VQAFILE.H
│ │ │ ├── VQAPLAY.BAK
│ │ │ └── VQAPLAY.H
│ │ ├── VQM32/
│ │ │ ├── ALL.H
│ │ │ ├── CAPTOKEN.H
│ │ │ ├── COMPRESS.H
│ │ │ ├── CRC.H
│ │ │ ├── FONT.H
│ │ │ ├── GRAPHICS.H
│ │ │ ├── HUFFMAN.H
│ │ │ ├── IFF.H
│ │ │ ├── MEM.H
│ │ │ ├── MIXFILE.H
│ │ │ ├── MONO.H
│ │ │ ├── PALETTE.H
│ │ │ ├── PORTIO.H
│ │ │ ├── PROFILE.H
│ │ │ ├── REALMODE.H
│ │ │ ├── SOSCOMP.H
│ │ │ ├── TARGA.H
│ │ │ ├── TEXT.H
│ │ │ ├── VESABLIT.H
│ │ │ ├── VESAVID.H
│ │ │ ├── VESAVID.I
│ │ │ ├── VGA.I
│ │ │ ├── VIDEO.H
│ │ │ └── VIDEO.I
│ │ ├── WAVEFILE.H
│ │ ├── WWLIB32/
│ │ │ ├── AUDIO.H
│ │ │ ├── BUFFER.H
│ │ │ ├── DESCMGMT.H
│ │ │ ├── DIPTHONG.H
│ │ │ ├── FILE.H
│ │ │ ├── FILETEMP.H
│ │ │ ├── FONT.H
│ │ │ ├── FUNCTION.H
│ │ │ ├── GBUFFER.H
│ │ │ ├── GBUFFER.INC
│ │ │ ├── IFF.H
│ │ │ ├── KEYBOARD.H
│ │ │ ├── KEYBOARD.INC
│ │ │ ├── KEYSTRUC.INC
│ │ │ ├── MCGAPRIM.H
│ │ │ ├── MCGAPRIM.INC
│ │ │ ├── MEMFLAG.H
│ │ │ ├── MISC.H
│ │ │ ├── MONO.H
│ │ │ ├── PALETTE.H
│ │ │ ├── PLAYCD.H
│ │ │ ├── SHAPE.H
│ │ │ ├── SHAPE.INC
│ │ │ ├── SOS.H
│ │ │ ├── SOSCOMP.H
│ │ │ ├── SOSDATA.H
│ │ │ ├── SOSDEFS.H
│ │ │ ├── SOSFNCT.H
│ │ │ ├── SOSRES.H
│ │ │ ├── SOUND.H
│ │ │ ├── STAMP.INC
│ │ │ ├── SVGAPRIM.INC
│ │ │ ├── TILE.H
│ │ │ ├── TIMER.H
│ │ │ ├── VBUFFER.H
│ │ │ ├── VIDEO.H
│ │ │ ├── WINDOWS.H
│ │ │ ├── WSA.H
│ │ │ ├── WWLIB32.H
│ │ │ ├── WWMEM.H
│ │ │ ├── WWMEM.INC
│ │ │ ├── WWSTD.H
│ │ │ └── _FILE.H
│ │ └── WWTYPES.H
│ ├── LIB/
│ │ └── README.TXT
│ ├── VQA32/
│ │ ├── AUDIO.BAK1
│ │ ├── AUDIO.BAK2
│ │ ├── AUDIO.CPP
│ │ ├── BCC32.CFG
│ │ ├── CAPTION.CPP
│ │ ├── CAPTION.H
│ │ ├── CONFIG.CPP
│ │ ├── DRAWER.BAK
│ │ ├── DRAWER.CPP
│ │ ├── DSTREAM.CPP
│ │ ├── LOADER.BAK
│ │ ├── LOADER.CPP
│ │ ├── MAKEFILE
│ │ ├── MAKEFILE.BAK
│ │ ├── MAKEFILE.BOR
│ │ ├── MAKEFILE.WAT
│ │ ├── MONODISP.BAK
│ │ ├── MONODISP.CPP
│ │ ├── SOS.H
│ │ ├── SOSDATA.H
│ │ ├── SOSDEFS.H
│ │ ├── SOSFNCT.H
│ │ ├── SOSRES.H
│ │ ├── TASK.CPP
│ │ ├── TASM32.CFG
│ │ ├── TLIB.CFG
│ │ ├── TLINK32.CFG
│ │ ├── UNVQ.H
│ │ ├── UNVQBUFF.ASM
│ │ ├── UNVQVESA.ASM
│ │ ├── UNVQXMDE.ASM
│ │ ├── UNVQXMDE.ASM.BAK
│ │ ├── VERTAG.CPP
│ │ ├── VQAFILE.H
│ │ ├── VQAPLAY.BAK
│ │ ├── VQAPLAY.H
│ │ ├── VQAPLAY.I
│ │ └── VQAPLAYP.H
│ └── VQM32/
│ ├── ALL.H
│ ├── AUDUNZAP.ASM
│ ├── AUDZAP.CPP
│ ├── BCC32.CFG
│ ├── CAPTOKEN.CPP
│ ├── CAPTOKEN.H
│ ├── CHRWIDTH.CPP
│ ├── COMPRESS.H
│ ├── CRC.ASM
│ ├── CRC.H
│ ├── DRAWCHAR.ASM
│ ├── FILLRECT.ASM
│ ├── FONT.CPP
│ ├── FONT.H
│ ├── GRAPHICS.H
│ ├── HUFFCMP.CPP
│ ├── HUFFDCMP.ASM
│ ├── HUFFMAN.H
│ ├── IFF.CPP
│ ├── IFF.H
│ ├── LCWCOMP.ASM
│ ├── LCWUNCMP.ASM
│ ├── MAKEFILE
│ ├── MAKEFILE.BAK
│ ├── MAKEFILE.BOR
│ ├── MAKEFILE.WAT
│ ├── MCGABUF.ASM
│ ├── MEM.CPP
│ ├── MEM.H
│ ├── MIXFILE.CPP
│ ├── MIXFILE.H
│ ├── MONO.ASM
│ ├── MONO.H
│ ├── PALETTE.ASM
│ ├── PALETTE.H
│ ├── PORTIO.ASM
│ ├── PORTIO.H
│ ├── PROFILE.CPP
│ ├── PROFILE.H
│ ├── REALMODE.H
│ ├── SORTPAL.CPP
│ ├── SOSCODEC.ASM
│ ├── SOSCOMP.H
│ ├── TARGA.CPP
│ ├── TARGA.H
│ ├── TASM32.CFG
│ ├── TESTVB.CPP
│ ├── TEXT.H
│ ├── TEXTPRNT.ASM
│ ├── TLIB.CFG
│ ├── TLINK32.CFG
│ ├── VB.ASM
│ ├── VERTAG.CPP
│ ├── VESABLIT.CPP
│ ├── VESABLIT.H
│ ├── VESABUF.ASM
│ ├── VESAVID.CPP
│ ├── VESAVID.H
│ ├── VESAVID.I
│ ├── VGA.I
│ ├── VIDEO.CPP
│ ├── VIDEO.H
│ ├── VIDEO.I
│ ├── XMODE.ASM
│ └── XMODEPG.CPP
├── WIN32LIB/
│ ├── AUDIO/
│ │ ├── AUDIO.H
│ │ ├── AUDIO.IDE
│ │ ├── AUDUNCMP.ASM
│ │ ├── DIFFTB.INC
│ │ ├── FUNCTION.H
│ │ ├── INDEXTB.INC
│ │ ├── MAKEFILE
│ │ ├── MAKEFILE.BOR
│ │ ├── NYBBTB.INC
│ │ ├── OLD/
│ │ │ ├── AUDIO.H
│ │ │ ├── AUDIO.IDE
│ │ │ ├── AUDUNCMP.ASM
│ │ │ ├── DIFFTB.INC
│ │ │ ├── FUNCTION.H
│ │ │ ├── INDEXTB.INC
│ │ │ ├── MAKEFILE
│ │ │ ├── MAKEFILE.BOR
│ │ │ ├── MAKEFILE.WAT
│ │ │ ├── NYBBTB.INC
│ │ │ ├── OLSOSDEC.ASM
│ │ │ ├── SOS.H
│ │ │ ├── SOSCODEC.ASM
│ │ │ ├── SOSCOMP.H
│ │ │ ├── SOSDATA.H
│ │ │ ├── SOSDEFS.H
│ │ │ ├── SOSFNCT.H
│ │ │ ├── SOSRES.H
│ │ │ ├── SOUND.H
│ │ │ ├── SOUNDINT.CPP
│ │ │ ├── SOUNDINT.H
│ │ │ ├── SOUNDIO.CPP
│ │ │ ├── SOUNDLCK.CPP
│ │ │ ├── TEST.CPP
│ │ │ └── TST.CPP
│ │ ├── OLSOSDEC.ASM
│ │ ├── SOS.H
│ │ ├── SOSCODEC.ASM
│ │ ├── SOSCOMP.H
│ │ ├── SOSDATA.H
│ │ ├── SOSDEFS.H
│ │ ├── SOSFNCT.H
│ │ ├── SOSRES.H
│ │ ├── SOUND.H
│ │ ├── SOUNDINT.CPP
│ │ ├── SOUNDINT.H
│ │ ├── SOUNDIO.CPP
│ │ ├── SOUNDLCK.CPP
│ │ ├── TEST.CPP
│ │ └── TST.CPP
│ ├── DIPTHONG/
│ │ ├── DIPTHONG.CPP
│ │ ├── DIPTHONG.H
│ │ ├── MAKEFILE
│ │ ├── MAKEFILE.BOR
│ │ ├── MAKEFILE.WAT
│ │ └── _DIPTABL.CPP
│ ├── DRAWBUFF/
│ │ ├── BITBLIT.ASM
│ │ ├── BUFFER.CPP
│ │ ├── BUFFER.H
│ │ ├── BUFFGLBL.CPP
│ │ ├── CLEAR.ASM
│ │ ├── DRAWBUFF.H
│ │ ├── DRAWBUFF.INC
│ │ ├── DRAWLINE.ASM
│ │ ├── DRAWRECT.CPP
│ │ ├── FILLQUAD.ASM
│ │ ├── FILLRECT.ASM
│ │ ├── FTPUTPIX.ASM
│ │ ├── GBUFFER.CPP
│ │ ├── GBUFFER.H
│ │ ├── GBUFFER.INC
│ │ ├── GETCLIP.ASM
│ │ ├── GETPIX.ASM
│ │ ├── ICONCACH.CPP
│ │ ├── ICONCACH.H
│ │ ├── MAKEFILE
│ │ ├── MAKEFILE.BOR
│ │ ├── PUTPIX.ASM
│ │ ├── REGIONSZ.CPP
│ │ ├── REMAP.ASM
│ │ ├── SCALE.ASM
│ │ ├── SHADOW.ASM
│ │ ├── STAMP.ASM
│ │ ├── STAMP.INC
│ │ ├── STMPCACH.ASM
│ │ ├── SZREGION.ASM
│ │ ├── TEST/
│ │ │ ├── HOLD.DEF
│ │ │ ├── MAKEFILE
│ │ │ ├── MAKEFILE.BOR
│ │ │ ├── MAKEFILE.WAT
│ │ │ ├── TEST/
│ │ │ │ └── TEST.CPP
│ │ │ ├── TEST.BAK
│ │ │ ├── TEST.CPP
│ │ │ ├── TEST.DEF
│ │ │ └── TESTASM.ASM
│ │ ├── TOBUFF.ASM
│ │ ├── TOPAGE.ASM
│ │ └── TXTPRNT.ASM
│ ├── EXAMPLE/
│ │ ├── DEFINES.H
│ │ ├── EXTERNS.H
│ │ ├── FUNCTION.H
│ │ ├── GLOBALS.CPP
│ │ ├── MAIN.CPP
│ │ ├── MAKEFILE
│ │ ├── MAKEFILE.BOR
│ │ ├── MAKEFILE.WAT
│ │ ├── STARTUP.CPP
│ │ ├── STRUCTS.H
│ │ └── WWLIB32.H
│ ├── FONT/
│ │ ├── FONT.CPP
│ │ ├── FONT.H
│ │ ├── LOADFONT.CPP
│ │ ├── MAKEFILE
│ │ ├── MAKEFILE.BOR
│ │ ├── SETFPAL.ASM
│ │ ├── SET_FONT.CPP
│ │ └── TEXTPRNT.ASM
│ ├── IFF/
│ │ ├── FILEPCX.H
│ │ ├── IFF.CPP
│ │ ├── IFF.H
│ │ ├── LCWCOMP.ASM
│ │ ├── LCWUNCMP.ASM
│ │ ├── LOAD.CPP
│ │ ├── LOADPCX.CPP
│ │ ├── LOADPICT.CPP
│ │ ├── MAKEFILE
│ │ ├── MAKEFILE.BOR
│ │ ├── MAKEFILE.WAT
│ │ ├── PACK2PLN.ASM
│ │ ├── WRITELBM.CPP
│ │ └── WRITEPCX.CPP
│ ├── INCLUDE/
│ │ ├── AUDIO.H
│ │ ├── BUFFER.H
│ │ ├── DEFINES.H
│ │ ├── DESCMGMT.H
│ │ ├── DIFFTB.INC
│ │ ├── DIPTHONG.H
│ │ ├── DRAWBUFF.H
│ │ ├── DRAWBUFF.INC
│ │ ├── EXTERNS.H
│ │ ├── FILE.H
│ │ ├── FILEPCX.H
│ │ ├── FILETEMP.H
│ │ ├── FONT.H
│ │ ├── FUNCTION.H
│ │ ├── GBUFFER.H
│ │ ├── GBUFFER.INC
│ │ ├── ICONCACH.H
│ │ ├── IFF.H
│ │ ├── INDEXTB.INC
│ │ ├── KEYBOARD.H
│ │ ├── KEYBOARD.INC
│ │ ├── KEYSTRUC.INC
│ │ ├── MCGAPRIM.INC
│ │ ├── MEMFLAG.H
│ │ ├── MISC.H
│ │ ├── MODEMREG.H
│ │ ├── MONO.H
│ │ ├── MOUSE.H
│ │ ├── MOUSE.INC
│ │ ├── NYBBTB.INC
│ │ ├── PALETTE.H
│ │ ├── PLAYCD.H
│ │ ├── PROFILE.H
│ │ ├── PROFILE.INC
│ │ ├── RAWFILE.H
│ │ ├── SHAPE.H
│ │ ├── SHAPE.INC
│ │ ├── SOS.H
│ │ ├── SOSCOMP.H
│ │ ├── SOSDATA.H
│ │ ├── SOSDEFS.H
│ │ ├── SOSFNCT.H
│ │ ├── SOSRES.H
│ │ ├── SOUND.H
│ │ ├── SOUNDINT.H
│ │ ├── STAMP.INC
│ │ ├── STRUCTS.H
│ │ ├── SVGAPRIM.INC
│ │ ├── TILE.H
│ │ ├── TIMER.H
│ │ ├── VIDEO.H
│ │ ├── WINCOMM.H
│ │ ├── WSA.H
│ │ ├── WWFILE.H
│ │ ├── WWLIB32.H
│ │ ├── WWMEM.H
│ │ ├── WWMEM.INC
│ │ ├── WWSTD.H
│ │ ├── WW_WIN.H
│ │ └── _FILE.H
│ ├── KEYBOARD/
│ │ ├── KEYBOARD.CPP
│ │ ├── KEYBOARD.H
│ │ ├── MAKEFILE
│ │ ├── MAKEFILE.BOR
│ │ ├── MAKEFILE.WAT
│ │ ├── MOUSE.CPP
│ │ ├── MOUSE.H
│ │ ├── MOUSE.INC
│ │ ├── OLD/
│ │ │ ├── KEYBOARD.ASM
│ │ │ ├── KEYBOARD.BAK
│ │ │ ├── KEYBOARD.CPP
│ │ │ ├── KEYBOARD.H
│ │ │ ├── KEYBOARD.INC
│ │ │ ├── KEYIPROT.ASM
│ │ │ ├── KEYIREAL.ASM
│ │ │ ├── KEYIREAL.IBN
│ │ │ ├── KEYSTRUC.INC
│ │ │ ├── MAKEFILE
│ │ │ ├── MAKEFILE.BAK
│ │ │ ├── MAKEFILE.BOR
│ │ │ ├── MAKEFILE.WAT
│ │ │ ├── MOUSE.ASM
│ │ │ ├── MOUSE.CPP
│ │ │ ├── MOUSE.CPP.BAK
│ │ │ ├── MOUSE.H
│ │ │ ├── MOUSE.INC
│ │ │ ├── PAGFAULT.ASM
│ │ │ ├── WWMOUSE.ASM
│ │ │ └── WWMOUSE.ASM.BAK
│ │ ├── OLDTEST/
│ │ │ ├── KEYBOARD.CPP
│ │ │ ├── KEYBOARD.H
│ │ │ ├── MAKEFILE
│ │ │ ├── MAKEFILE.BOR
│ │ │ ├── MAKEFILE.WAT
│ │ │ ├── TEST.CPP
│ │ │ └── TEST.DEF
│ │ ├── TEST/
│ │ │ ├── HOLD.DEF
│ │ │ ├── KEYBOARD.CPP
│ │ │ ├── KEYBOARD.H
│ │ │ ├── MAKEFILE
│ │ │ ├── MAKEFILE.BOR
│ │ │ ├── MAKEFILE.WAT
│ │ │ ├── TEST.CPP
│ │ │ ├── TEST.DEF
│ │ │ └── TESTASM.ASM
│ │ └── WWMOUSE.ASM
│ ├── MAKE.BAT
│ ├── MAKEFILE
│ ├── MAKEFILE.BOR
│ ├── MAKE_EXE.MAK
│ ├── MAKE_LIB.MAK
│ ├── MEM/
│ │ ├── ALLOC.CPP
│ │ ├── MAKEFILE
│ │ ├── MAKEFILE.BOR
│ │ ├── MAKEFILE.WAT
│ │ ├── MEM.CPP
│ │ ├── MEMFLAG.H
│ │ ├── MEM_COPY.ASM
│ │ ├── MSVC/
│ │ │ ├── ALLOC.CPP
│ │ │ ├── MAKEFILE
│ │ │ ├── MAKEFILE.BOR
│ │ │ ├── MAKEFILE.WAT
│ │ │ ├── MEM.CPP
│ │ │ ├── MEM.MAK
│ │ │ ├── MEMFLAG.H
│ │ │ ├── MEM_COPY.ASM
│ │ │ ├── NEWDEL.CPP
│ │ │ ├── WWMEM.H
│ │ │ └── WWMEM.INC
│ │ ├── NEWDEL.CPP
│ │ ├── OLDMEM/
│ │ │ ├── ALLOC.CPP
│ │ │ ├── MAKEFILE
│ │ │ ├── MAKEFILE.BOR
│ │ │ ├── MAKEFILE.WAT
│ │ │ ├── MEM.CPP
│ │ │ ├── MEMFLAG.H
│ │ │ ├── MEM_COPY.ASM
│ │ │ ├── NEWDEL.CPP
│ │ │ ├── WWMEM.H
│ │ │ └── WWMEM.INC
│ │ ├── VMPAGEIN.ASM
│ │ ├── WWMEM.H
│ │ └── WWMEM.INC
│ ├── MISC/
│ │ ├── CLIPRECT.ASM
│ │ ├── CRC.ASM
│ │ ├── DDRAW.CPP
│ │ ├── DELAY.CPP
│ │ ├── DETPROC.ASM
│ │ ├── EXIT.CPP
│ │ ├── FACING16.ASM
│ │ ├── FACING8.ASM
│ │ ├── FACINGFF.ASM
│ │ ├── FADING.ASM
│ │ ├── FINDARGV.CPP
│ │ ├── IRANDOM.CPP
│ │ ├── LIB.CPP
│ │ ├── MAKEFILE
│ │ ├── MAKEFILE.BOR
│ │ ├── MAKEFILE.WAT
│ │ ├── MISC.H
│ │ ├── OPSYS.ASM
│ │ ├── RANDOM.ASM
│ │ ├── REVERSE.ASM
│ │ ├── SHAKESCR.ASM
│ │ ├── VERSION.CPP
│ │ ├── WWLIB32.H
│ │ └── WWSTD.H
│ ├── MONO/
│ │ ├── MAKEFILE
│ │ ├── MAKEFILE.BOR
│ │ ├── MAKEFILE.WAT
│ │ ├── MONO.CPP
│ │ └── MONO.H
│ ├── MOVIE/
│ │ ├── MAKE.BAT
│ │ ├── MAKEFILE
│ │ ├── MOVIE.CPP
│ │ └── MOVIE.H
│ ├── PALETTE/
│ │ ├── LOADPAL.CPP
│ │ ├── MAKEFILE
│ │ ├── MAKEFILE.BOR
│ │ ├── MORPHPAL.CPP
│ │ ├── PAL.ASM
│ │ ├── PALETTE.CPP
│ │ └── PALETTE.H
│ ├── PLAYCD/
│ │ ├── GETCD.CPP
│ │ ├── MAKEFILE
│ │ ├── MAKEFILE.BOR
│ │ ├── MAKEFILE.WAT
│ │ ├── PLAYCD.ASM
│ │ ├── PLAYCD.H
│ │ └── REDBOOK.CPP
│ ├── PROFILE/
│ │ ├── APROFILE.ASM
│ │ ├── MAKEFILE
│ │ ├── PROFILE.CPP
│ │ ├── PROFILE.H
│ │ ├── PROFILE.INC
│ │ ├── UTIL/
│ │ │ └── PROFILE.CPP
│ │ └── WPROFILE.CPP
│ ├── PROJECT.CFG
│ ├── RAWFILE/
│ │ ├── CCFILE.CPP
│ │ ├── FILE.H
│ │ ├── FILETEMP.H
│ │ ├── MAKEFILE
│ │ ├── MAKEFILE.BOR
│ │ ├── MAKEFILE.WAT
│ │ ├── RAWFILE.CPP
│ │ ├── RAWFILE.H
│ │ └── WWFILE.H
│ ├── REBUILD.BAT
│ ├── SHAPE/
│ │ ├── DRAWSHP.ASM
│ │ ├── DS_DN.ASM
│ │ ├── DS_DR.ASM
│ │ ├── DS_DS.ASM
│ │ ├── DS_DSR.ASM
│ │ ├── DS_LRS.ASM
│ │ ├── DS_LS.ASM
│ │ ├── DS_LSRS.ASM
│ │ ├── DS_LSS.ASM
│ │ ├── DS_RRS.ASM
│ │ ├── DS_RS.ASM
│ │ ├── DS_RSRS.ASM
│ │ ├── DS_RSS.ASM
│ │ ├── DS_TABLE.ASM
│ │ ├── GETSHAPE.CPP
│ │ ├── MAKEFILE
│ │ ├── MAKEFILE.BOR
│ │ ├── MAKEFILE.WAT
│ │ ├── PRIOINIT.CPP
│ │ ├── SETSHAPE.ASM
│ │ ├── SHAPE.ASM
│ │ ├── SHAPE.H
│ │ └── SHAPE.INC
│ ├── SRCDEBUG/
│ │ ├── ALLOC.CPP
│ │ ├── APROFILE.ASM
│ │ ├── AUDUNCMP.ASM
│ │ ├── BITBLIT.ASM
│ │ ├── BUFFER.CPP
│ │ ├── BUFFGLBL.CPP
│ │ ├── CCFILE.CPP
│ │ ├── CLEAR.ASM
│ │ ├── CLIPRECT.ASM
│ │ ├── CRC.ASM
│ │ ├── DDRAW.CPP
│ │ ├── DELAY.CPP
│ │ ├── DESCMGMT.CPP
│ │ ├── DETPROC.ASM
│ │ ├── DEVICES.ASM
│ │ ├── DEVTABLE.ASM
│ │ ├── DIPTHONG.CPP
│ │ ├── DRAWLINE.ASM
│ │ ├── DRAWRECT.CPP
│ │ ├── DRAWSHP.ASM
│ │ ├── DS_DN.ASM
│ │ ├── DS_DR.ASM
│ │ ├── DS_DS.ASM
│ │ ├── DS_DSR.ASM
│ │ ├── DS_LRS.ASM
│ │ ├── DS_LS.ASM
│ │ ├── DS_LSRS.ASM
│ │ ├── DS_LSS.ASM
│ │ ├── DS_RRS.ASM
│ │ ├── DS_RS.ASM
│ │ ├── DS_RSRS.ASM
│ │ ├── DS_RSS.ASM
│ │ ├── DS_TABLE.ASM
│ │ ├── EXIT.CPP
│ │ ├── FACING16.ASM
│ │ ├── FACING8.ASM
│ │ ├── FACINGFF.ASM
│ │ ├── FADING.ASM
│ │ ├── FFIRST.ASM
│ │ ├── FFIXSEL.ASM
│ │ ├── FGETCS.ASM
│ │ ├── FGETDS.ASM
│ │ ├── FGETSEL.ASM
│ │ ├── FGLOB2.CPP
│ │ ├── FILE.CPP
│ │ ├── FILECACH.CPP
│ │ ├── FILECHNG.CPP
│ │ ├── FILEDATA.CPP
│ │ ├── FILEGLOB.CPP
│ │ ├── FILEINFO.CPP
│ │ ├── FILEINIT.CPP
│ │ ├── FILEIO.CPP
│ │ ├── FILELIB.CPP
│ │ ├── FILESTUB.CPP
│ │ ├── FILLQUAD.ASM
│ │ ├── FILLRECT.ASM
│ │ ├── FINDARGV.CPP
│ │ ├── FINDFILE.CPP
│ │ ├── FONT.CPP
│ │ ├── FTPUTPIX.ASM
│ │ ├── GBUFFER.CPP
│ │ ├── GETCD.CPP
│ │ ├── GETCLIP.ASM
│ │ ├── GETPIX.ASM
│ │ ├── GETSHAPE.CPP
│ │ ├── HARDERR.ASM
│ │ ├── ICONCACH.CPP
│ │ ├── ICONSET.CPP
│ │ ├── IFF.CPP
│ │ ├── INITDLAY.CPP
│ │ ├── INITMONO.CPP
│ │ ├── IRANDOM.CPP
│ │ ├── KEYBOARD.ASM
│ │ ├── KEYBOARD.CPP
│ │ ├── KEYIPROT.ASM
│ │ ├── KEYIREAL.ASM
│ │ ├── LCWCOMP.ASM
│ │ ├── LCWUNCMP.ASM
│ │ ├── LIB.CPP
│ │ ├── LOAD.CPP
│ │ ├── LOADFONT.CPP
│ │ ├── LOADPAL.CPP
│ │ ├── LOADPCX.CPP
│ │ ├── LOADPICT.CPP
│ │ ├── MEM.CPP
│ │ ├── MEM_COPY.ASM
│ │ ├── MODEMREG.CPP
│ │ ├── MONO.ASM
│ │ ├── MONO.CPP
│ │ ├── MONOPRNT.CPP
│ │ ├── MORPHPAL.CPP
│ │ ├── MOUSE.ASM
│ │ ├── MOUSE.CPP
│ │ ├── NEWDEL.CPP
│ │ ├── OLSOSDEC.ASM
│ │ ├── OPSYS.ASM
│ │ ├── PACK2PLN.ASM
│ │ ├── PAGFAULT.ASM
│ │ ├── PAL.ASM
│ │ ├── PALETTE.CPP
│ │ ├── PLAYCD.ASM
│ │ ├── PRIOINIT.CPP
│ │ ├── PROFILE.CPP
│ │ ├── PUTPIX.ASM
│ │ ├── RANDOM.ASM
│ │ ├── RAWFILE.CPP
│ │ ├── REDBOOK.CPP
│ │ ├── REGIONSZ.CPP
│ │ ├── REMAP.ASM
│ │ ├── REVERSE.ASM
│ │ ├── SCALE.ASM
│ │ ├── SETFPAL.ASM
│ │ ├── SETSHAPE.ASM
│ │ ├── SET_FONT.CPP
│ │ ├── SHADOW.ASM
│ │ ├── SHAKESCR.ASM
│ │ ├── SHAPE.ASM
│ │ ├── SOSCODEC.ASM
│ │ ├── SOUNDINT.CPP
│ │ ├── SOUNDIO.CPP
│ │ ├── SOUNDLCK.CPP
│ │ ├── STAMP.ASM
│ │ ├── STMPCACH.ASM
│ │ ├── SZREGION.ASM
│ │ ├── TEST.CPP
│ │ ├── TEXTPRNT.ASM
│ │ ├── TIMER.CPP
│ │ ├── TIMERA.ASM
│ │ ├── TIMERDWN.CPP
│ │ ├── TIMEREAL.ASM
│ │ ├── TIMERINI.CPP
│ │ ├── TOBUFF.ASM
│ │ ├── TOPAGE.ASM
│ │ ├── TST.CPP
│ │ ├── TXTPRNT.ASM
│ │ ├── VBITBLIT.ASM
│ │ ├── VBUFFER.CPP
│ │ ├── VCLEAR.ASM
│ │ ├── VERSION.CPP
│ │ ├── VERTBLNK.ASM
│ │ ├── VESA.ASM
│ │ ├── VESAHOOK.ASM
│ │ ├── VESAINFO.CPP
│ │ ├── VESAREAL.ASM
│ │ ├── VGETPIX.ASM
│ │ ├── VIDEO.CPP
│ │ ├── VLBTOVE.ASM
│ │ ├── VMPAGEIN.ASM
│ │ ├── VPUTPIX.ASM
│ │ ├── VSCALE.ASM
│ │ ├── VSCALE.CPP
│ │ ├── VSCLTOVE.ASM
│ │ ├── VTOBUFF.ASM
│ │ ├── VTOPAGE.ASM
│ │ ├── VTXTPRNT.ASM
│ │ ├── VVBLIT.ASM
│ │ ├── VVETOLB.ASM
│ │ ├── VVETOSCL.ASM
│ │ ├── VVETOSCL.CPP
│ │ ├── WINCOMM.CPP
│ │ ├── WINDOWS.CPP
│ │ ├── WINHIDE.CPP
│ │ ├── WPROFILE.CPP
│ │ ├── WRITELBM.CPP
│ │ ├── WRITEPCX.CPP
│ │ ├── WSA.CPP
│ │ ├── WWMOUSE.ASM
│ │ ├── XORDELTA.ASM
│ │ └── _DIPTABL.CPP
│ ├── TILE/
│ │ ├── ICONSET.CPP
│ │ ├── MAKEFILE
│ │ ├── MAKEFILE.BOR
│ │ ├── MAKEFILE.WAT
│ │ └── TILE.H
│ ├── TIMER/
│ │ ├── MAKEFILE
│ │ ├── MAKEFILE.BOR
│ │ ├── MAKEFILE.WAT
│ │ ├── TIMER.CPP
│ │ ├── TIMER.H
│ │ ├── TIMER.IDE
│ │ ├── TIMERDWN.CPP
│ │ └── TIMERINI.CPP
│ ├── WINCOMM/
│ │ ├── MAKEFILE
│ │ ├── MODEMREG.CPP
│ │ ├── MODEMREG.H
│ │ ├── WINCOMM.CPP
│ │ └── WINCOMM.H
│ ├── WSA/
│ │ ├── MAKEFILE
│ │ ├── MAKEFILE.BOR
│ │ ├── MAKEFILE.WAT
│ │ ├── WSA.CPP
│ │ ├── WSA.H
│ │ └── XORDELTA.ASM
│ └── WW_WIN/
│ ├── MAKEFILE
│ ├── MAKEFILE.BOR
│ ├── MAKEFILE.WAT
│ ├── OLD/
│ │ ├── MAKEFILE
│ │ ├── MAKEFILE.BOR
│ │ ├── MAKEFILE.WAT
│ │ ├── WINDOWS.CPP
│ │ ├── WINHIDE.CPP
│ │ └── WW_WIN.H
│ ├── WINDOWS.CPP
│ ├── WINHIDE.CPP
│ ├── WW_WIN.H
│ ├── WW_WIN.IDE
│ └── WW_WIN.IDE.BAK
├── WINVQ/
│ ├── INCLUDE/
│ │ ├── VOCFILE.H
│ │ ├── VQ.H
│ │ ├── VQA32/
│ │ │ ├── CAPTION.H
│ │ │ ├── SOS.H
│ │ │ ├── SOSDATA.H
│ │ │ ├── SOSDEFS.H
│ │ │ ├── SOSFNCT.H
│ │ │ ├── SOSRES.H
│ │ │ ├── UNVQ.H
│ │ │ ├── VQAFILE.H
│ │ │ ├── VQAPLAY.H
│ │ │ ├── VQAPLAY.H.BAK
│ │ │ └── VQAPLAYP.H
│ │ ├── VQFILE.H
│ │ ├── VQM32/
│ │ │ ├── ALL.H
│ │ │ ├── CAPTOKEN.H
│ │ │ ├── COMPRESS.H
│ │ │ ├── CRC.H
│ │ │ ├── FONT.H
│ │ │ ├── GRAPHICS.H
│ │ │ ├── HUFFMAN.H
│ │ │ ├── IFF.H
│ │ │ ├── MEM.H
│ │ │ ├── MIXFILE.H
│ │ │ ├── MONO.H
│ │ │ ├── PALETTE.H
│ │ │ ├── PORTIO.H
│ │ │ ├── PROFILE.H
│ │ │ ├── REALMODE.H
│ │ │ ├── SOSCOMP.H
│ │ │ ├── TARGA.H
│ │ │ ├── TEXT.H
│ │ │ ├── VESABLIT.H
│ │ │ ├── VESAVID.H
│ │ │ ├── VESAVID.I
│ │ │ ├── VGA.I
│ │ │ ├── VIDEO.H
│ │ │ └── VIDEO.I
│ │ ├── WAVEFILE.H
│ │ └── WWTYPES.H
│ ├── LIB/
│ │ ├── README.TXT
│ │ ├── SOSDBLC.LIB
│ │ ├── SOSDW1CR.LIB
│ │ ├── SOSDW1CS.LIB
│ │ ├── SOSDW1PR.LIB
│ │ ├── SOSDW1PS.LIB
│ │ └── SOSMBLC.LIB
│ ├── VPLAY32/
│ │ ├── BCC32.CFG
│ │ ├── CAPTION.FNT
│ │ ├── EVA.FNT
│ │ ├── MAKEFILE
│ │ ├── MAKEFILE.BOR
│ │ ├── MAKEFILE.WAT
│ │ ├── PLYVQA32.CPP
│ │ ├── TASM32.CFG
│ │ ├── TLIB.CFG
│ │ ├── TLINK32.CFG
│ │ └── VPLAYTNT.DEF
│ ├── VQA32/
│ │ ├── AUDIO.CPP
│ │ ├── BCC32.CFG
│ │ ├── CAPTION.CPP
│ │ ├── CAPTION.H
│ │ ├── CONFIG.CPP
│ │ ├── DRAWER.CPP
│ │ ├── DSTREAM.CPP
│ │ ├── LOADER.CPP
│ │ ├── MAKEFILE
│ │ ├── MAKEFILE.BAK
│ │ ├── MAKEFILE.BOR
│ │ ├── MAKEFILE.WAT
│ │ ├── MONODISP.CPP
│ │ ├── OLD/
│ │ │ ├── AUDIO.CPP
│ │ │ ├── BCC32.CFG
│ │ │ ├── CAPTION.CPP
│ │ │ ├── CAPTION.H
│ │ │ ├── CONFIG.CPP
│ │ │ ├── DRAWER.CPP
│ │ │ ├── DSTREAM.CPP
│ │ │ ├── LOADER.CPP
│ │ │ ├── MAKEFILE
│ │ │ ├── MAKEFILE.BOR
│ │ │ ├── MAKEFILE.WAT
│ │ │ ├── MONODISP.CPP
│ │ │ ├── SOS.H
│ │ │ ├── SOSDATA.H
│ │ │ ├── SOSDEFS.H
│ │ │ ├── SOSFNCT.H
│ │ │ ├── SOSRES.H
│ │ │ ├── TASK.CPP
│ │ │ ├── TASM32.CFG
│ │ │ ├── TLIB.CFG
│ │ │ ├── TLINK32.CFG
│ │ │ ├── UNVQ.H
│ │ │ ├── UNVQBUFF.ASM
│ │ │ ├── UNVQVESA.ASM
│ │ │ ├── UNVQXMDE.ASM
│ │ │ ├── VERTAG.CPP
│ │ │ ├── VQAFILE.H
│ │ │ ├── VQAPLAY.H
│ │ │ ├── VQAPLAY.I
│ │ │ └── VQAPLAYP.H
│ │ ├── SOS.H
│ │ ├── SOSDATA.H
│ │ ├── SOSDEFS.H
│ │ ├── SOSFNCT.H
│ │ ├── SOSRES.H
│ │ ├── TASK.CPP
│ │ ├── TASM32.CFG
│ │ ├── TLIB.CFG
│ │ ├── TLINK32.CFG
│ │ ├── UNVQ.H
│ │ ├── UNVQBUFF.ASM
│ │ ├── UNVQVESA.ASM
│ │ ├── UNVQXMDE.ASM
│ │ ├── VERTAG.CPP
│ │ ├── VQAFILE.H
│ │ ├── VQAPLAY.BAK
│ │ ├── VQAPLAY.H
│ │ ├── VQAPLAY.I
│ │ └── VQAPLAYP.H
│ ├── VQAVIEW/
│ │ ├── DEBUG.CPP
│ │ ├── DEBUG.RC
│ │ ├── DIALOGS.RC
│ │ ├── DIALOGS.RH
│ │ ├── GAMETIME.CPP
│ │ ├── GAMETIME.H
│ │ ├── INTERPAL.ASM
│ │ ├── MAIN.CPP
│ │ ├── MAIN.H
│ │ ├── MAINWIND.CPP
│ │ ├── MAINWIND.H
│ │ ├── MAKEFILE
│ │ ├── MENUS.RC
│ │ ├── MENUS.RH
│ │ ├── MONOCHRM.CPP
│ │ ├── MONOCHRM.H
│ │ ├── MOVIES.CPP
│ │ ├── MOVIES.H
│ │ ├── PAL.CPP
│ │ ├── PAL.H
│ │ ├── TEST.MAK
│ │ ├── VIDMODE.H
│ │ ├── VQ.CPP
│ │ ├── VQ.H
│ │ ├── VQAVIEW.IDE
│ │ ├── VQAVIEW.IDE.BAK
│ │ ├── WESTWOOD.H
│ │ ├── WM.CPP
│ │ ├── WM.H
│ │ └── WWLIB.H
│ └── VQM32/
│ ├── ALL.H
│ ├── AUDUNZAP.ASM
│ ├── AUDZAP.CPP
│ ├── BCC32.CFG
│ ├── CAPTOKEN.CPP
│ ├── CAPTOKEN.H
│ ├── CHRWIDTH.CPP
│ ├── COMPRESS.H
│ ├── CRC.ASM
│ ├── CRC.H
│ ├── DRAWCHAR.ASM
│ ├── DRAWCHAR.BAK
│ ├── FILLRECT.ASM
│ ├── FONT.CPP
│ ├── FONT.H
│ ├── GRAPHICS.H
│ ├── HUFFCMP.CPP
│ ├── HUFFDCMP.ASM
│ ├── HUFFMAN.H
│ ├── IFF.CPP
│ ├── IFF.H
│ ├── LCWCOMP.ASM
│ ├── LCWUNCMP.ASM
│ ├── MAKEFILE
│ ├── MAKEFILE.BOR
│ ├── MAKEFILE.WAT
│ ├── MCGABUF.ASM
│ ├── MEM.CPP
│ ├── MEM.H
│ ├── MIXFILE.CPP
│ ├── MIXFILE.H
│ ├── MONO.ASM
│ ├── MONO.H
│ ├── PALETTE.ASM
│ ├── PALETTE.H
│ ├── PORTIO.ASM
│ ├── PORTIO.H
│ ├── PROFILE.CPP
│ ├── PROFILE.H
│ ├── REALMODE.H
│ ├── SORTPAL.CPP
│ ├── SOSCODEC.ASM
│ ├── SOSCOMP.H
│ ├── TARGA.CPP
│ ├── TARGA.H
│ ├── TASM32.CFG
│ ├── TESTVB.CPP
│ ├── TEXT.H
│ ├── TEXTPRNT.ASM
│ ├── TLIB.CFG
│ ├── TLINK32.CFG
│ ├── VB.ASM
│ ├── VERTAG.CPP
│ ├── VESABLIT.CPP
│ ├── VESABLIT.H
│ ├── VESABUF.ASM
│ ├── VESAVID.CPP
│ ├── VESAVID.H
│ ├── VESAVID.I
│ ├── VGA.I
│ ├── VIDEO.CPP
│ ├── VIDEO.H
│ ├── VIDEO.I
│ ├── XMODE.ASM
│ └── XMODEPG.CPP
└── WWFLAT32/
├── AUDIO/
│ ├── AUDIO.BAK
│ ├── AUDIO.H
│ ├── AUDUNCMP.ASM
│ ├── DIFFTB.INC
│ ├── FUNCTION.H
│ ├── INDEXTB.INC
│ ├── MAKEFILE
│ ├── NEW/
│ │ ├── AUDIO.H
│ │ ├── AUDUNCMP.ASM
│ │ ├── DIFFTB.INC
│ │ ├── FUNCTION.H
│ │ ├── INDEXTB.INC
│ │ ├── MAKEFILE
│ │ ├── NYBBTB.INC
│ │ ├── SOS.H
│ │ ├── SOSCODEC.ASM
│ │ ├── SOSCOMP.H
│ │ ├── SOSDATA.H
│ │ ├── SOSDEFS.H
│ │ ├── SOSDW1PS.LIB
│ │ ├── SOSFNCT.H
│ │ ├── SOSRES.H
│ │ ├── SOUND.BAK
│ │ ├── SOUND.H
│ │ ├── SOUNDINT.BAK
│ │ ├── SOUNDINT.CPP
│ │ ├── SOUNDINT.H
│ │ ├── SOUNDIO.BAK
│ │ ├── SOUNDIO.CPP
│ │ └── SOUNDLCK.CPP
│ ├── NYBBTB.INC
│ ├── SOS.H
│ ├── SOSCODEC.ASM
│ ├── SOSCOMP.H
│ ├── SOSDATA.H
│ ├── SOSDEFS.H
│ ├── SOSDW1PS.LIB
│ ├── SOSFNCT.H
│ ├── SOSRES.H
│ ├── SOUND.BAK
│ ├── SOUND.H
│ ├── SOUNDINT.BAK
│ ├── SOUNDINT.CPP
│ ├── SOUNDINT.H
│ ├── SOUNDIO.BAK
│ ├── SOUNDIO.CPP
│ └── SOUNDLCK.CPP
├── DESCMGMT/
│ ├── DESCMGMT.CPP
│ ├── DESCMGMT.H
│ ├── FFIXSEL.ASM
│ ├── FGETCS.ASM
│ ├── FGETDS.ASM
│ ├── FGETSEL.ASM
│ └── MAKEFILE
├── DIPTHONG/
│ ├── DIPTHONG.CPP
│ ├── DIPTHONG.H
│ ├── MAKEFILE
│ └── _DIPTABL.CPP
├── EXAMPLE/
│ ├── DEFINES.H
│ ├── EXTERNS.H
│ ├── FUNCTION.H
│ ├── GLOBALS.CPP
│ ├── MAIN.CPP
│ ├── MAKEFILE
│ ├── STARTUP.CPP
│ ├── STRUCTS.H
│ └── WWLIB32.H
├── FILE/
│ ├── DEVICES.ASM
│ ├── DEVTABLE.ASM
│ ├── FFIRST.ASM
│ ├── FGLOB2.CPP
│ ├── FILE.BAK
│ ├── FILE.CPP
│ ├── FILE.H
│ ├── FILECACH.CPP
│ ├── FILECHNG.CPP
│ ├── FILEDATA.CPP
│ ├── FILEGLOB.CPP
│ ├── FILEINFO.CPP
│ ├── FILEINIT.CPP
│ ├── FILEIO.CPP
│ ├── FILELIB.CPP
│ ├── FILESTUB.CPP
│ ├── FILETEMP.H
│ ├── FINDFILE.BAK
│ ├── FINDFILE.CPP
│ ├── HARDERR.ASM
│ ├── MAKEFILE
│ ├── _FILE.BAK
│ └── _FILE.H
├── FONT/
│ ├── FONT.BAK
│ ├── FONT.CPP
│ ├── FONT.H
│ ├── LOADFONT.BAK
│ ├── LOADFONT.CPP
│ ├── MAKEFILE
│ ├── SETFPAL.ASM
│ ├── SET_FONT.CPP
│ ├── TEXTPRNT.ASM
│ └── TEXTPRNT.BAK
├── IFF/
│ ├── FILEPCX.H
│ ├── IFF.BAK
│ ├── IFF.CPP
│ ├── IFF.H
│ ├── LCWCOMP.ASM
│ ├── LCWUNCMP.ASM
│ ├── LOAD.BAK
│ ├── LOAD.CPP
│ ├── LOADPCX.CPP
│ ├── LOADPICT.BAK
│ ├── LOADPICT.CPP
│ ├── MAKEFILE
│ ├── PACK2PLN.ASM
│ ├── WRITELBM.CPP
│ └── WRITEPCX.CPP
├── INCLUDE/
│ ├── AUDIO.H
│ ├── BUFFER.H
│ ├── DESCMGMT.H
│ ├── DIFFTB.INC
│ ├── DIPTHONG.H
│ ├── FILE.H
│ ├── FILEPCX.H
│ ├── FILETEMP.H
│ ├── FONT.BAK
│ ├── FONT.H
│ ├── FUNCTION.H
│ ├── GBUFFER.BAK
│ ├── GBUFFER.H
│ ├── GBUFFER.INC
│ ├── IFF.H
│ ├── INDEXTB.INC
│ ├── KEYBOARD.H
│ ├── KEYBOARD.INC
│ ├── KEYSTRUC.INC
│ ├── MCGAPRIM.H
│ ├── MCGAPRIM.INC
│ ├── MEMFLAG.H
│ ├── MISC.BAK
│ ├── MISC.H
│ ├── MONO.BAK
│ ├── MONO.H
│ ├── NYBBTB.INC
│ ├── PALETTE.BAK
│ ├── PALETTE.H
│ ├── PLAYCD.H
│ ├── SHAPE.H
│ ├── SHAPE.INC
│ ├── SOS.H
│ ├── SOSCOMP.H
│ ├── SOSDATA.H
│ ├── SOSDEFS.H
│ ├── SOSFNCT.H
│ ├── SOSRES.H
│ ├── SOUND.H
│ ├── SOUNDINT.H
│ ├── STAMP.INC
│ ├── SVGAPRIM.INC
│ ├── TILE.H
│ ├── TIMER.BAK
│ ├── TIMER.H
│ ├── VBUFFER.H
│ ├── VIDEO.H
│ ├── WINDOW.H
│ ├── WSA.H
│ ├── WWLIB32.H
│ ├── WWMEM.H
│ ├── WWMEM.INC
│ ├── WWSTD.H
│ ├── WWSTD.H.BAK
│ └── _FILE.H
├── KEYBOARD/
│ ├── KEYBOARD.ASM
│ ├── KEYBOARD.BAK
│ ├── KEYBOARD.H
│ ├── KEYBOARD.INC
│ ├── KEYIPROT.ASM
│ ├── KEYIREAL.ASM
│ ├── KEYIREAL.BAK
│ ├── KEYIREAL.IBN
│ ├── KEYSTRUC.INC
│ ├── MAKEFILE
│ ├── MOUSE.ASM
│ ├── NEW/
│ │ ├── KEYBOARD.ASM
│ │ ├── KEYBOARD.BAK
│ │ ├── KEYBOARD.H
│ │ ├── KEYBOARD.INC
│ │ ├── KEYIPROT.ASM
│ │ ├── KEYIREAL.ASM
│ │ ├── KEYIREAL.BAK
│ │ ├── KEYIREAL.IBN
│ │ ├── KEYSTRUC.INC
│ │ ├── MAKEFILE
│ │ ├── MOUSE.ASM
│ │ └── PAGFAULT.ASM
│ ├── PAGFAULT.ASM
│ └── X/
│ ├── KEYBOARD.ASM
│ ├── KEYBOARD.BAK
│ ├── KEYBOARD.H
│ ├── KEYBOARD.INC
│ ├── KEYIPROT.ASM
│ ├── KEYIREAL.ASM
│ ├── KEYIREAL.BAK
│ ├── KEYIREAL.IBN
│ ├── KEYSTRUC.INC
│ ├── MAKEFILE
│ ├── MOUSE.ASM
│ └── PAGFAULT.ASM
├── LIB/
│ └── SOSDW1PS.LIB
├── MAKEFILE
├── MAKE_EXE.MAK
├── MAKE_LIB.MAK
├── MCGAPRIM/
│ ├── BITBLIT.ASM
│ ├── BUFFER.CPP
│ ├── BUFFER.H
│ ├── BUFFGLBL.CPP
│ ├── CLEAR.ASM
│ ├── DRAWLINE.ASM
│ ├── DRAWRECT.CPP
│ ├── DRAWRECT.CPP.BAK
│ ├── FILLQUAD.ASM
│ ├── FILLRECT.ASM
│ ├── GBUFFER.CPP
│ ├── GBUFFER.CPP.BAK
│ ├── GBUFFER.H
│ ├── GBUFFER.INC
│ ├── GETCLIP.ASM
│ ├── GETPIX.ASM
│ ├── MAKEFILE
│ ├── MCGAPRIM.H
│ ├── MCGAPRIM.INC
│ ├── MCGAPRIM.PJT
│ ├── PUTPIX.ASM
│ ├── REGIONSZ.CPP
│ ├── REMAP.ASM
│ ├── SCALE.ASM
│ ├── SHADOW.ASM
│ ├── STAMP.ASM
│ ├── STAMP.BAK
│ ├── STAMP.INC
│ ├── SZREGION.ASM
│ ├── TOBUFF.ASM
│ ├── TOPAGE.ASM
│ ├── TXTPRNT.ASM
│ ├── VBITBLIT.ASM
│ ├── VBUFFER.CPP
│ ├── VBUFFER.H
│ ├── VCLEAR.ASM
│ ├── VESA.ASM
│ ├── VGETPIX.ASM
│ ├── VLBTOVE.ASM
│ ├── VPUTPIX.ASM
│ ├── VSCALE.ASM
│ ├── VSCLTOVE.ASM
│ ├── VTOBUFF.ASM
│ ├── VTOPAGE.ASM
│ ├── VTXTPRNT.ASM
│ ├── VVBLIT.ASM
│ ├── VVETOLB.ASM
│ └── VVETOSCL.ASM
├── MEM/
│ ├── ALLOC.CPP
│ ├── ALLOC.CPP.BAK
│ ├── MAKEFILE
│ ├── MEM.CPP
│ ├── MEM.CPP.BAK
│ ├── MEMFLAG.H
│ ├── MEM_COPY.ASM
│ ├── NEWDEL.CPP
│ ├── OLD/
│ │ ├── ALLOC.CPP
│ │ ├── MAKEFILE
│ │ ├── MEM.CPP
│ │ ├── MEMFLAG.H
│ │ ├── MEM_COPY.ASM
│ │ ├── NEWDEL.CPP
│ │ ├── WWMEM.H
│ │ └── WWMEM.INC
│ ├── WWMEM.H
│ └── WWMEM.INC
├── MISC/
│ ├── ASM.ASM
│ ├── ASM.ASM.BAK
│ ├── CLIPRECT.ASM
│ ├── CRC.ASM
│ ├── CRC.IDE
│ ├── DELAY.CPP
│ ├── DETPROC.ASM
│ ├── EXIT.CPP
│ ├── FACING16.ASM
│ ├── FACING8.ASM
│ ├── FACINGFF.ASM
│ ├── FADING.ASM
│ ├── FINDARGV.CPP
│ ├── IRANDOM.CPP
│ ├── KEYCODE.CPP
│ ├── KEYCODE.CPP.BAK
│ ├── LIB.CPP
│ ├── MAKEFILE
│ ├── MISC.H
│ ├── OPSYS.ASM
│ ├── PROC.ASM
│ ├── RANDOM.ASM
│ ├── REVERSE.ASM
│ ├── SHAKESCR.ASM
│ ├── VERSION.CPP
│ ├── WWLIB32.H
│ └── WWSTD.H
├── MONO/
│ ├── INITMONO.CPP
│ ├── MAKEFILE
│ ├── MONO.ASM
│ ├── MONO.H
│ └── MONOPRNT.CPP
├── PALETTE/
│ ├── LOADPAL.CPP
│ ├── MAKEFILE
│ ├── MORPHPAL.CPP
│ ├── PAL.ASM
│ ├── PALETTE.CPP
│ └── PALETTE.H
├── PLAYCD/
│ ├── GETCD.CPP
│ ├── GETCD.CPP.BAK
│ ├── MAKEFILE
│ ├── PLAYCD.ASM
│ ├── PLAYCD.H
│ ├── PLAYCD.H.BAK
│ └── REDBOOK.CPP
├── PROJECT.CFG
├── SHAPE/
│ ├── DRAWSHP.ASM
│ ├── DS_DN.ASM
│ ├── DS_DR.ASM
│ ├── DS_DS.ASM
│ ├── DS_DSR.ASM
│ ├── DS_LRS.ASM
│ ├── DS_LS.ASM
│ ├── DS_LSRS.ASM
│ ├── DS_LSS.ASM
│ ├── DS_RRS.ASM
│ ├── DS_RS.ASM
│ ├── DS_RSRS.ASM
│ ├── DS_RSS.ASM
│ ├── DS_TABLE.ASM
│ ├── GETSHAPE.CPP
│ ├── MAKEFILE
│ ├── PRIOINIT.CPP
│ ├── SETSHAPE.ASM
│ ├── SHAPE.H
│ └── SHAPE.INC
├── SRCDEBUG/
│ ├── ALLOC.CPP
│ ├── KEYBOARD.ASM
│ ├── KEYIPROT.ASM
│ ├── KEYIREAL.ASM
│ ├── MEM.CPP
│ ├── MEM_COPY.ASM
│ ├── MOUSE.ASM
│ ├── NEWDEL.CPP
│ └── PAGFAULT.ASM
├── SVGAPRIM/
│ ├── MAKEFILE
│ ├── SVGAPRIM.INC
│ ├── VCLEAR.ASM
│ ├── VESA.ASM
│ ├── VGETPIX.ASM
│ ├── VLBTOVE.ASM
│ ├── VPUTPIX.ASM
│ ├── VSCALE.CPP
│ ├── VSCLTOVE.ASM
│ ├── VTOBUFF.ASM
│ ├── VTOPAGE.ASM
│ ├── VTXTPRNT.ASM
│ ├── VVBLIT.ASM
│ ├── VVETOLB.ASM
│ └── VVETOSCL.CPP
├── TILE/
│ ├── ICONSET.BAK
│ ├── ICONSET.CPP
│ ├── MAKEFILE
│ ├── TILE.H
│ └── TILE.H.BAK
├── TIMER/
│ ├── MAKEFILE
│ ├── TIMER.CPP
│ ├── TIMER.H
│ ├── TIMERA.ASM
│ ├── TIMERA.BAK
│ ├── TIMERDWN.CPP
│ ├── TIMEREAL.ASM
│ ├── TIMEREAL.IBN
│ └── TIMERINI.CPP
├── VIDEO/
│ ├── INITDLAY.CPP
│ ├── MAKEFILE
│ ├── VERTBLNK.ASM
│ ├── VESAHOOK.ASM
│ ├── VESAINFO.CPP
│ ├── VESAREAL.ASM
│ ├── VESAREAL.IBN
│ ├── VIDEO.CPP
│ └── VIDEO.H
├── WINDOWS/
│ ├── MAKEFILE
│ ├── WINDOW.H
│ ├── WINDOWS.CPP
│ ├── WINDOWS.CPP.BAK
│ ├── WINDOWS.H
│ ├── WINHIDE.CPP
│ └── WINHIDE.CPP.BAK
└── WSA/
├── MAKEFILE
├── WSA.CPP
├── WSA.H
└── XORDELTA.ASM
Showing preview only (410K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (4939 symbols across 896 files)
FILE: CODE/2KEYFRAM.CPP
type tShapeHeaderType (line 94) | struct tShapeHeaderType{
function Get_Last_Frame_Length (line 114) | int Get_Last_Frame_Length(void)
function Reset_Theater_Shapes (line 120) | void Reset_Theater_Shapes (void)
function Reallocate_Big_Shape_Buffer (line 135) | void Reallocate_Big_Shape_Buffer(void)
function Disable_Uncompressed_Shapes (line 172) | void Disable_Uncompressed_Shapes (void)
function Enable_Uncompressed_Shapes (line 193) | void Enable_Uncompressed_Shapes (void)
function Check_Use_Compressed_Shapes (line 199) | void Check_Use_Compressed_Shapes (void)
function Build_Frame (line 220) | unsigned long Build_Frame(void const *dataptr, unsigned short framenumbe...
function Get_Build_Frame_Count (line 496) | unsigned short Get_Build_Frame_Count(void const *dataptr)
function Get_Build_Frame_X (line 505) | unsigned short Get_Build_Frame_X(void const *dataptr)
function Get_Build_Frame_Y (line 514) | unsigned short Get_Build_Frame_Y(void const *dataptr)
function Get_Build_Frame_Width (line 538) | unsigned short Get_Build_Frame_Width(void const *dataptr)
function Get_Build_Frame_Height (line 562) | unsigned short Get_Build_Frame_Height(void const *dataptr)
function Get_Build_Frame_Palette (line 571) | bool Get_Build_Frame_Palette(void const * dataptr, void * palette)
FILE: CODE/AADATA.CPP
function AircraftType (line 385) | AircraftType AircraftTypeClass::From_Name(char const * name)
function ObjectClass (line 455) | ObjectClass * AircraftTypeClass::Create_One_Of(HouseClass * house) const
function AircraftTypeClass (line 652) | AircraftTypeClass & AircraftTypeClass::As_Reference(AircraftType aircraft)
FILE: CODE/ABSTRACT.CPP
function COORDINATE (line 160) | COORDINATE AbstractTypeClass::Coord_Fixup(COORDINATE coord) const
FILE: CODE/ABSTRACT.H
function class (line 52) | class AbstractClass
function virtual (line 87) | virtual ~AbstractClass(void) {}
function virtual (line 92) | virtual char const * Name(void) const {return("");}
function virtual (line 93) | virtual HousesType Owner(void) const {return HOUSE_NONE;}
function TARGET (line 94) | TARGET As_Target(void) const {return(Build_Target(RTTI, ID));}
function RTTIType (line 95) | RTTIType What_Am_I(void) const {return(RTTI);}
function virtual (line 107) | virtual COORDINATE Center_Coord(void) const {return Coord;}
function virtual (line 108) | virtual COORDINATE Target_Coord(void) const {return Coord;}
function DirType (line 114) | DirType Direction(AbstractClass const * object) const {return ::Directio...
function DirType (line 115) | DirType Direction(COORDINATE coord) const {return ::Direction(Center_Coo...
function DirType (line 116) | DirType Direction(TARGET target) const {return ::Direction(Center_Coord(...
function DirType (line 117) | DirType Direction(CELL cell) const {return ::Direction(Coord_Cell(Center...
function Distance (line 119) | int Distance(COORDINATE coord) const {return ::Distance(Center_Coord(), ...
function Distance (line 120) | int Distance(AbstractClass const * object) const {return ::Distance(Cent...
function virtual (line 130) | virtual void AI(void) {}
FILE: CODE/ADATA.CPP
function AnimTypeClass (line 2357) | AnimTypeClass & AnimTypeClass::As_Reference(AnimType type)
FILE: CODE/ADPCM.CPP
function sosCODECInitStream (line 27) | void sosCODECInitStream(_SOS_COMPRESS_INFO* info)
function sosCODECDecompressData (line 34) | unsigned long sosCODECDecompressData(_SOS_COMPRESS_INFO* info, unsigned ...
FILE: CODE/AIRCRAFT.CPP
function _Counts_As_Civ_Evac (line 116) | static bool _Counts_As_Civ_Evac(ObjectClass const * candidate)
function COORDINATE (line 1283) | COORDINATE AircraftClass::Sort_Y(void) const
function BulletClass (line 1488) | BulletClass * AircraftClass::Fire_At(TARGET target, int which)
function ResultType (line 1555) | ResultType AircraftClass::Take_Damage(int & damage, int distance, Warhea...
function ActionType (line 2250) | ActionType AircraftClass::What_Action(ObjectClass const * target) const
function ActionType (line 2313) | ActionType AircraftClass::What_Action(CELL cell) const
function DirType (line 2351) | DirType AircraftClass::Pose_Dir(void) const
function TARGET (line 2615) | TARGET AircraftClass::New_LZ(TARGET oldlz) const
function RadioMessageType (line 2673) | RadioMessageType AircraftClass::Receive_Message(RadioClass * from, Radio...
function DirType (line 2842) | DirType AircraftClass::Desired_Load_Dir(ObjectClass * object, CELL & mov...
function MoveType (line 3007) | MoveType AircraftClass::Can_Enter_Cell(CELL cell, FacingType ) const
function TARGET (line 3053) | TARGET AircraftClass::Good_Fire_Location(TARGET target) const
function TARGET (line 3475) | TARGET AircraftClass::Good_LZ(void) const
function DirType (line 3558) | DirType AircraftClass::Fire_Direction(void) const
function FireErrorType (line 3943) | FireErrorType AircraftClass::Can_Fire(TARGET target, int which) const
function LayerType (line 4337) | LayerType AircraftClass::In_Which_Layer(void) const
FILE: CODE/AIRCRAFT.H
function operator (line 63) | operator AircraftType(void) const {return Class->Type;}
function virtual (line 91) | virtual DirType Turret_Facing(void) const {return(SecondaryFacing.Curren...
function virtual (line 94) | virtual ObjectTypeClass const & Class_Of(void) const {return *Class;}
FILE: CODE/ALLOC.CPP
function DPMI_Lock (line 100) | void DPMI_Lock(VOID const *ptr, long const size)
function DPMI_Unlock (line 145) | void DPMI_Unlock(void const *ptr, long const size)
type SREGS (line 197) | struct SREGS
function Free (line 385) | void Free(void const *pointer)
function Ram_Free (line 540) | long Ram_Free(MemoryFlagType)
function Heap_Size (line 561) | long Heap_Size(MemoryFlagType )
function Total_Ram_Free (line 585) | long Total_Ram_Free(MemoryFlagType )
FILE: CODE/ANIM.CPP
function AnimType (line 76) | AnimType Anim_From_Name(char const * name)
function Shorten_Attached_Anims (line 110) | void Shorten_Attached_Anims(ObjectClass * obj)
function COORDINATE (line 140) | COORDINATE AnimClass::Sort_Y(void) const
function COORDINATE (line 178) | COORDINATE AnimClass::Center_Coord(void) const
function LayerType (line 860) | LayerType AnimClass::In_Which_Layer(void) const
FILE: CODE/ANIM.H
function operator (line 61) | operator AnimType(void) const {return Class->Type;}
function Make_Invisible (line 73) | void Make_Invisible(void) {IsInvisible = true;}
function virtual (line 76) | virtual bool Can_Place_Here(COORDINATE ) const {return true;}
function virtual (line 82) | virtual ObjectTypeClass const & Class_Of(void) const {return *Class;}
FILE: CODE/AUDIO.CPP
function VocType (line 266) | VocType Voc_From_Name(char const * name)
function Sound_Effect (line 330) | void Sound_Effect(VocType voc, COORDINATE coord, int variation, HousesTy...
function Sound_Effect (line 393) | int Sound_Effect(VocType voc, fixed volume, int variation, signed short ...
function Speak (line 643) | void Speak(VoxType voice)
function Speak_AI (line 669) | void Speak_AI(void)
function Stop_Speaking (line 733) | void Stop_Speaking(void)
function Is_Speaking (line 756) | bool Is_Speaking(void)
FILE: CODE/AUDIO.H
function class (line 43) | class AudioClass {
function AudioClass (line 67) | inline AudioClass::AudioClass(void)
function AudioClass (line 75) | inline AudioClass::AudioClass(char const *name, MemoryClass &mem)
function AudioClass (line 87) | inline AudioClass::~AudioClass(void)
FILE: CODE/B64PIPE.H
function class (line 48) | class Base64Pipe : public Pipe
FILE: CODE/B64STRAW.H
function class (line 48) | class Base64Straw : public Straw
FILE: CODE/BAR.H
function class (line 62) | class ProgressBarClass
FILE: CODE/BASE.CPP
function BuildingClass (line 264) | BuildingClass * BaseClass::Get_Building(int index) const
function BaseNodeClass (line 338) | BaseNodeClass * BaseClass::Get_Node(BuildingClass const * obj)
function BaseNodeClass (line 364) | BaseNodeClass * BaseClass::Get_Node(CELL cell)
function BaseNodeClass (line 393) | BaseNodeClass * BaseClass::Next_Buildable(StructType type)
FILE: CODE/BASE.H
function class (line 44) | class BaseNodeClass
function class (line 62) | class BaseClass
FILE: CODE/BASE64.CPP
function Base64_Encode (line 143) | int Base64_Encode(void const * source, int slen, void * dest, int dlen)
function Base64_Decode (line 244) | int Base64_Decode(void const * source, int slen, void * dest, int dlen)
FILE: CODE/BBDATA.CPP
function BulletTypeClass (line 251) | BulletTypeClass & BulletTypeClass::As_Reference(BulletType type)
FILE: CODE/BDATA.CPP
function StructType (line 3175) | StructType BuildingTypeClass::From_Name(char const * name)
function ObjectClass (line 3294) | ObjectClass * BuildingTypeClass::Create_One_Of(HouseClass * house) const
function BuildingTypeClass (line 3424) | BuildingTypeClass & BuildingTypeClass::As_Reference(StructType type)
function COORDINATE (line 3806) | COORDINATE BuildingTypeClass::Coord_Fixup(COORDINATE coord) const
FILE: CODE/BENCH.H
function class (line 62) | class PentiumTimerClass
function class (line 76) | class Benchmark
FILE: CODE/BFIOFILE.H
function class (line 48) | class BufferIOFileClass : public RawFileClass
FILE: CODE/BIGCHECK.H
function class (line 33) | class BigCheckBoxClass : public ToggleClass
function virtual (line 47) | virtual ~BigCheckBoxClass()
function Toggle (line 55) | bool Toggle()
FILE: CODE/BLOWFISH.H
function class (line 68) | class BlowfishEngine {
FILE: CODE/BLOWPIPE.H
function class (line 49) | class BlowPipe : public Pipe
FILE: CODE/BLWSTRAW.H
function class (line 52) | class BlowStraw : public Straw
FILE: CODE/BMP8.CPP
function bit8 (line 145) | bit8 BMP8::drawBmp(void)
FILE: CODE/BMP8.H
function class (line 27) | class BMP8
FILE: CODE/BUFF.CPP
function Buffer (line 161) | Buffer & Buffer::operator = (Buffer const & buffer)
FILE: CODE/BUFF.H
function class (line 61) | class Buffer {
FILE: CODE/BUFFERX.H
function class (line 49) | class Transmuter {
function class (line 73) | class FileTransmuter {
function class (line 86) | class BufferTransmuter {
FILE: CODE/BUILDING.CPP
type SAMState (line 113) | enum SAMState {
function RadioMessageType (line 161) | RadioMessageType BuildingClass::Receive_Message(RadioClass * from, Radio...
function ResultType (line 1194) | ResultType BuildingClass::Take_Damage(int & damage, int distance, Warhea...
function DirType (line 2312) | DirType BuildingClass::Turret_Facing(void) const
function TARGET (line 2338) | TARGET BuildingClass::Greatest_Threat(ThreatType threat) const
function ActionType (line 2605) | ActionType BuildingClass::What_Action(ObjectClass const * object) const
function ActionType (line 2684) | ActionType BuildingClass::What_Action(CELL cell) const
function COORDINATE (line 2760) | COORDINATE BuildingClass::Center_Coord(void) const
function COORDINATE (line 2786) | COORDINATE BuildingClass::Docking_Coord(void) const
function FireErrorType (line 2820) | FireErrorType BuildingClass::Can_Fire(TARGET target, int which) const
function COORDINATE (line 3118) | COORDINATE BuildingClass::Sort_Y(void) const
function MoveType (line 3162) | MoveType BuildingClass::Can_Enter_Cell(CELL cell, FacingType) const
function DirType (line 4416) | DirType BuildingClass::Fire_Direction(void) const
function InfantryType (line 4667) | InfantryType BuildingClass::Crew_Type(void) const
function CELL (line 4809) | CELL BuildingClass::Find_Exit_Cell(TechnoClass const * techno) const
function COORDINATE (line 4899) | COORDINATE BuildingClass::Exit_Coord(void) const
function CELL (line 4928) | CELL BuildingClass::Check_Point(CheckPointType cp) const
function COORDINATE (line 5173) | COORDINATE BuildingClass::Target_Coord(void) const
FILE: CODE/BUILDING.H
function class (line 58) | class BuildingClass : public TechnoClass
FILE: CODE/BULLET.CPP
function COORDINATE (line 825) | COORDINATE BulletClass::Target_Coord(void) const
function COORDINATE (line 851) | COORDINATE BulletClass::Sort_Y(void) const
function LayerType (line 876) | LayerType BulletClass::In_Which_Layer(void) const
FILE: CODE/BULLET.H
function operator (line 85) | operator BulletType(void) const {return Class->Type;}
function virtual (line 97) | virtual void Assign_Target(TARGET target) {TarCom = target;}
function virtual (line 99) | virtual ObjectTypeClass const & Class_Of(void) const {return *Class;}
FILE: CODE/CARGO.CPP
function FootClass (line 144) | FootClass * CargoClass::Detach_Object(void)
function FootClass (line 175) | FootClass * CargoClass::Attached_Object(void) const
FILE: CODE/CARGO.H
function class (line 46) | class CargoClass {
FILE: CODE/CARRY.H
function class (line 42) | class CarryoverClass : public LinkClass {
FILE: CODE/CCDDE.CPP
function BOOL (line 93) | BOOL CALLBACK DDE_Callback (unsigned char *data, long length)
function BOOL (line 222) | BOOL DDEServerClass::Callback(unsigned char *data, long length)
function BOOL (line 399) | BOOL Send_Data_To_DDE_Server (char *data, int length, int packet_type)
FILE: CODE/CCDDE.H
function class (line 47) | class DDEServerClass {
FILE: CODE/CCFILE.CPP
function Open_File (line 563) | int __cdecl Open_File(char const * file_name, int mode)
function Close_File (line 576) | void __cdecl Close_File(int handle)
function Read_File (line 583) | long __cdecl Read_File(int handle, void * buf, unsigned long bytes)
function Write_File (line 591) | long __cdecl Write_File(int handle, void const * buf, unsigned long bytes)
function Find_File (line 599) | int __cdecl Find_File(char const * file_name)
function Delete_File (line 606) | int __cdecl Delete_File(char const * file_name)
function Create_File (line 611) | int __cdecl Create_File(char const * file_name)
function Load_Data (line 616) | unsigned long __cdecl Load_Data(char const * name, void * ptr, unsigned ...
function File_Size (line 629) | unsigned long __cdecl File_Size(int handle)
function Write_Data (line 638) | unsigned long __cdecl Write_Data(char const * name, void const * ptr, un...
function Seek_File (line 644) | unsigned long __cdecl Seek_File(int handle, long offset, int starting)
function Multi_Drive_Search (line 653) | bool __cdecl Multi_Drive_Search(bool on)
function WWDOS_Init (line 659) | void __cdecl WWDOS_Init(void)
function WWDOS_Shutdown (line 663) | void __cdecl WWDOS_Shutdown(void)
function Find_Disk_Number (line 667) | int __cdecl Find_Disk_Number(char const *)
function Unfragment_File_Cache (line 689) | void Unfragment_File_Cache(void)
FILE: CODE/CCFILE.H
function class (line 53) | class CCFileClass : public CDFileClass
FILE: CODE/CCINI.CPP
function _Scale_To_256 (line 251) | static inline int _Scale_To_256(int val)
function LEPTON (line 282) | LEPTON CCINIClass::Get_Lepton(char const * section, char const * entry, ...
function MPHType (line 334) | MPHType CCINIClass::Get_MPHType(char const * section, char const * entry...
function ArmorType (line 481) | ArmorType CCINIClass::Get_ArmorType(char const * section, char const * e...
function VocType (line 534) | VocType CCINIClass::Get_VocType(char const * section, char const * entry...
function AnimType (line 591) | AnimType CCINIClass::Get_AnimType(char const * section, char const * ent...
function UnitType (line 628) | UnitType CCINIClass::Get_UnitType(char const * section, char const * ent...
function WeaponType (line 671) | WeaponType CCINIClass::Get_WeaponType(char const * section, char const *...
function WarheadType (line 728) | WarheadType CCINIClass::Get_WarheadType(char const * section, char const...
function OverlayType (line 789) | OverlayType CCINIClass::Get_OverlayType(char const * section, char const...
function BulletType (line 845) | BulletType CCINIClass::Get_BulletType(char const * section, char const *...
function HousesType (line 909) | HousesType CCINIClass::Get_HousesType(char const * section, char const *...
function VQType (line 963) | VQType CCINIClass::Get_VQType(char const * section, char const * entry, ...
function TheaterType (line 1024) | TheaterType CCINIClass::Get_TheaterType(char const * section, char const...
function TriggerTypeClass (line 1076) | TriggerTypeClass * CCINIClass::Get_TriggerType(char const * section, cha...
function ThemeType (line 1130) | ThemeType CCINIClass::Get_ThemeType(char const * section, char const * e...
function SourceType (line 1185) | SourceType CCINIClass::Get_SourceType(char const * section, char const *...
function CrateType (line 1239) | CrateType CCINIClass::Get_CrateType(char const * section, char const * e...
function TerrainType (line 1293) | TerrainType CCINIClass::Get_TerrainType(char const * section, char const...
FILE: CODE/CCINI.H
function class (line 52) | class CCINIClass : public INIClass
FILE: CODE/CCMPATH.CPP
function Init_MPATH (line 56) | int Init_MPATH(void)
function Shutdown_MPATH (line 114) | void Shutdown_MPATH(void)
function Connect_MPATH (line 159) | void Connect_MPATH(void)
function Destroy_MPATH_Connection (line 348) | void Destroy_MPATH_Connection(int id, int error)
FILE: CODE/CCPTR.H
function operator (line 55) | operator T * (void) const {
function Is_Valid (line 70) | bool Is_Valid(void) const {return(ID != -1);}
function operator (line 72) | bool operator == (CCPtr<T> const & rvalue) const {return(ID == rvalue.ID);}
function operator (line 73) | bool operator != (CCPtr<T> const & rvalue) const {return(ID != rvalue.ID);}
function operator (line 75) | bool operator <= (CCPtr<T> const & rvalue) const {return (rvalue > *this);}
function operator (line 76) | bool operator < (CCPtr<T> const & rvalue) const {return (*this != rvalue...
function operator (line 77) | bool operator >= (CCPtr<T> const & rvalue) const {return (*this == rvalu...
function Raw (line 79) | long Raw(void) const {return(ID);}
function Set_Raw (line 80) | void Set_Raw(long value) {ID = value;}
FILE: CODE/CCTEN.CPP
function Init_TEN (line 70) | int Init_TEN(void)
function Shutdown_TEN (line 128) | void Shutdown_TEN(void)
function Connect_TEN (line 173) | void Connect_TEN(void)
function Destroy_TEN_Connection (line 361) | void Destroy_TEN_Connection(int id, int error)
function Debug_Mono (line 449) | void Debug_Mono(void)
function Send_TEN_Win_Packet (line 484) | void Send_TEN_Win_Packet(void)
function Send_TEN_Alliance (line 534) | void Send_TEN_Alliance(char *whom, int ally)
function Send_TEN_Out_Of_Sync (line 570) | void Send_TEN_Out_Of_Sync(void)
function Send_TEN_Packet_Too_Late (line 594) | void Send_TEN_Packet_Too_Late(void)
FILE: CODE/CDATA.CPP
function _Watcom_Ugh_Hack (line 2554) | static void _Watcom_Ugh_Hack(void)
function LandType (line 3002) | LandType TemplateTypeClass::Land_Type(int icon) const
function TemplateType (line 3052) | TemplateType TemplateTypeClass::From_Name(char const * name)
function ObjectClass (line 3277) | ObjectClass * TemplateTypeClass::Create_One_Of(HouseClass *) const
function TemplateTypeClass (line 3315) | TemplateTypeClass & TemplateTypeClass::As_Reference(TemplateType type)
function COORDINATE (line 3321) | COORDINATE TemplateTypeClass::Coord_Fixup(COORDINATE coord) const
FILE: CODE/CDFILE.CPP
function harderr_handler (line 98) | int harderr_handler(unsigned int , unsigned int , unsigned int __far *)
function Is_Disk_Inserted (line 120) | int cdecl Is_Disk_Inserted(int disk)
function Get_CD_Drive (line 694) | int Get_CD_Drive(void)
FILE: CODE/CDFILE.H
function class (line 54) | class CDFileClass : public BufferIOFileClass
FILE: CODE/CELL.CPP
function TechnoClass (line 192) | TechnoClass * CellClass::Cell_Techno(int x, int y) const
function ObjectClass (line 238) | ObjectClass * CellClass::Cell_Find_Object(RTTIType rtti) const
function BuildingClass (line 273) | BuildingClass * CellClass::Cell_Building(void) const
function TerrainClass (line 298) | TerrainClass * CellClass::Cell_Terrain(void) const
function ObjectClass (line 327) | ObjectClass * CellClass::Cell_Object(int x, int y) const
function UnitClass (line 823) | UnitClass * CellClass::Cell_Unit(void) const
function VesselClass (line 846) | VesselClass * CellClass::Cell_Vessel(void) const
function InfantryClass (line 870) | InfantryClass * CellClass::Cell_Infantry(void) const
function _Calc_Partial_Window (line 879) | static bool _Calc_Partial_Window(int cellx, int celly, int & drawx, int ...
function _ocompare (line 923) | static int _ocompare(const void * left, const void * right)
function COORDINATE (line 1606) | COORDINATE CellClass::Cell_Coord(void) const
function COORDINATE (line 1794) | COORDINATE CellClass::Closest_Free_Spot(COORDINATE coord, bool any) const
function CellClass (line 1952) | CellClass const & CellClass::Adjacent_Cell(FacingType face) const
FILE: CODE/CELL.H
function class (line 49) | class CellClass
FILE: CODE/CHECKBOX.H
function class (line 43) | class CheckBoxClass : public ToggleClass
FILE: CODE/CHEKLIST.H
function class (line 47) | class CheckObject
function class (line 60) | class CheckListClass : public ListClass
FILE: CODE/COLRLIST.H
function class (line 47) | class ColorListClass : public ListClass
FILE: CODE/COMBAT.CPP
function Modify_Damage (line 72) | int Modify_Damage(int damage, WarheadType warhead, ArmorType armor, int ...
function Explosion_Damage (line 162) | void Explosion_Damage(COORDINATE coord, int strength, TechnoClass * sour...
function AnimType (line 295) | AnimType Combat_Anim(int damage, WarheadType warhead, LandType land)
function Wide_Area_Damage (line 393) | void Wide_Area_Damage(COORDINATE coord, LEPTON radius, int rawdamage, Te...
FILE: CODE/COMBUF.CPP
function SendQueueType (line 469) | SendQueueType * CommBufferClass::Get_Send(int index)
function ReceiveQueueType (line 660) | ReceiveQueueType * CommBufferClass::Get_Receive(int index)
type CommHdr (line 852) | struct CommHdr { // this mirrors the CommHeaderType
type CommHdr (line 990) | struct CommHdr { // this mirrors the CommHeaderType
FILE: CODE/COMBUF.H
type SendQueueType (line 61) | typedef struct {
type ReceiveQueueType (line 76) | typedef struct {
function class (line 89) | class CommBufferClass
FILE: CODE/COMINIT.H
function class (line 27) | class ComInit
FILE: CODE/COMPAT.H
type MenuIndexType (line 81) | typedef enum MenuIndexType {
type IControl_Type (line 139) | typedef struct {
function Get_IconSet_MapWidth (line 158) | inline int Get_IconSet_MapWidth(void const * data)
function Get_IconSet_MapHeight (line 166) | inline int Get_IconSet_MapHeight(void const * data)
function class (line 182) | class IconsetClass : protected IControl_Type
FILE: CODE/COMQUEUE.CPP
function SendQueueType (line 331) | SendQueueType * CommQueueClass::Next_Send(void)
function SendQueueType (line 360) | SendQueueType * CommQueueClass::Get_Send(int index)
function ReceiveQueueType (line 496) | ReceiveQueueType * CommQueueClass::Next_Receive(void)
function ReceiveQueueType (line 525) | ReceiveQueueType * CommQueueClass::Get_Receive(int index)
type CommHdr (line 716) | struct CommHdr { // this mirrors the CommHeaderType
type CommHdr (line 850) | struct CommHdr { // this mirrors the CommHeaderType
FILE: CODE/COMQUEUE.H
type SendQueueType (line 70) | typedef struct {
type ReceiveQueueType (line 83) | typedef struct {
function class (line 94) | class CommQueueClass
FILE: CODE/CONFDLG.H
function class (line 42) | class ConfirmationClass
FILE: CODE/CONNECT.CPP
type timeb (line 776) | struct timeb
FILE: CODE/CONNECT.H
type CommHeaderType (line 121) | typedef struct {
function class (line 131) | class ConnectionClass
FILE: CODE/CONNMGR.H
function class (line 74) | class ConnManClass
FILE: CODE/CONQUER.CPP
class A (line 72) | class A {
class B (line 78) | class B {
function Main_Game (line 215) | void Main_Game(int argc, char * argv[])
function Toggle_Formation (line 953) | void Toggle_Formation(void) {
function Color_Cycle (line 1524) | void Color_Cycle(void)
function Call_Back (line 1616) | void Call_Back(void)
function IPX_Call_Back (line 1692) | void IPX_Call_Back(void)
function TEN_Call_Back (line 1785) | void TEN_Call_Back(void)
function MPATH_Call_Back (line 1845) | void MPATH_Call_Back(void)
function SourceType (line 1950) | SourceType Source_From_Name(char const * name)
function TheaterType (line 2002) | TheaterType Theater_From_Name(char const * name)
function FacingType (line 2034) | FacingType KN_To_Facing(int input)
function Sync_Delay (line 2086) | static void Sync_Delay(void)
function Map_Edit_Loop (line 2469) | bool Map_Edit_Loop(void)
function Go_Editor (line 2518) | void Go_Editor(bool flag)
function MixFileHandler (line 2604) | long MixFileHandler(VQAHandle * vqa, long action, void * buffer, long nb...
function Rebuild_Interpolated_Palette (line 2706) | void Rebuild_Interpolated_Palette(unsigned char * interpal)
function Load_Interpolated_Palettes (line 2735) | int Load_Interpolated_Palettes(char const * filename, BOOL add)
function Free_Interpolated_Palettes (line 2786) | void Free_Interpolated_Palettes(void)
function Play_Movie (line 2825) | void Play_Movie(char const * name, ThemeType theme, bool clrscrn)
function Play_Movie (line 2997) | void Play_Movie(VQType name, ThemeType theme, bool clrscrn)
function PlayMpegMovie (line 3013) | bool PlayMpegMovie(const char* name)
function MPG_RESPONSE (line 3113) | MPG_RESPONSE far __stdcall MpegCallback(MPG_CMD cmd, LPVOID data, LPVOID...
function Unselect_All (line 3202) | void Unselect_All(void)
function Rect (line 3573) | Rect const Shape_Dimensions(void const * shapedata, int shapenum)
function TechnoTypeClass (line 3685) | TechnoTypeClass const * Fetch_Techno_Type(RTTIType type, int id)
function VQ_Call_Back (line 3738) | long VQ_Call_Back(unsigned char *, long )
function VQ_Call_Back (line 3774) | long VQ_Call_Back(unsigned char *, long )
function Handle_Team (line 3811) | void Handle_Team(int team, int action)
function Handle_View (line 4096) | void Handle_View(int view, int action)
function Get_CD_Index (line 4156) | int Get_CD_Index (int cd_drive, int timeout)
function Get_CD_Index (line 4228) | int Get_CD_Index(int cd_drive, int)
function Force_CD_Available (line 4341) | bool Force_CD_Available( int cd_desired ) // ajw
function Disk_Space_Available (line 5067) | unsigned long Disk_Space_Available(void)
function Do_Record_Playback (line 5094) | static void Do_Record_Playback(void)
function CrateType (line 5287) | CrateType Crate_From_Name(char const * name)
function Owner_From_Name (line 5315) | int Owner_From_Name(char const * text)
function Shake_The_Screen (line 5348) | void Shake_The_Screen(int shakes)
function List_Copy (line 5404) | void List_Copy(short const * source, int len, short * dest)
function Crummy (line 5425) | void Crummy(int crumb1, int crumb2)
function Is_Counterstrike_Installed (line 5470) | bool Is_Counterstrike_Installed (void)
function Is_Aftermath_Installed (line 5500) | bool Is_Aftermath_Installed (void)
function Enable_Secret_Units (line 5529) | void Enable_Secret_Units(void)
function Force_Scenario_Available (line 5543) | bool Force_Scenario_Available( const char* szName )
FILE: CODE/CONTROL.H
function class (line 58) | class ControlClass : public GadgetClass
FILE: CODE/COORD.CPP
function CELL (line 72) | CELL Coord_Cell(COORDINATE coord)
function Distance (line 101) | int Distance(TARGET target1, TARGET target2)
function Distance (line 124) | int Distance(COORDINATE coord1, COORDINATE coord2)
function COORDINATE (line 351) | COORDINATE Coord_Move(COORDINATE start, register DirType dir, unsigned s...
function COORDINATE (line 390) | COORDINATE Coord_Scatter(COORDINATE coord, unsigned distance, bool lock)
function Move_Point (line 430) | void Move_Point(short &x, short &y, register DirType dir, unsigned short...
function Normal_Move_Point (line 570) | void Normal_Move_Point(short &x, short &y, register DirType dir, unsigne...
FILE: CODE/CRATE.H
function class (line 58) | class CrateClass {
FILE: CODE/CRC.H
function class (line 64) | class CRCEngine {
FILE: CODE/CRCPIPE.H
function class (line 49) | class CRCPipe : public Pipe
FILE: CODE/CRCSTRAW.H
function class (line 49) | class CRCStraw : public Straw
FILE: CODE/CREDITS.H
function class (line 44) | class CreditClass {
FILE: CODE/CREW.H
function class (line 46) | class CrewClass
FILE: CODE/CSTRAW.H
function class (line 51) | class CacheStraw : public Straw
FILE: CODE/DDE.CPP
function BOOL (line 166) | BOOL Instance_Class::Enable_Callback( BOOL flag ) // enable or disable ...
function BOOL (line 189) | BOOL Instance_Class::Register_Server( BOOL CALLBACK ( *callback_fnc) (LP...
function BOOL (line 219) | BOOL Instance_Class::Test_Server_Running( HSZ name )
function BOOL (line 248) | BOOL Instance_Class::Open_Poke_Connection( HSZ name )
function BOOL (line 280) | BOOL Instance_Class::Close_Poke_Connection( void )
function BOOL (line 311) | BOOL Instance_Class::Poke_Server( LPBYTE poke_data, DWORD poke_length )
function HDDEDATA (line 355) | HDDEDATA CALLBACK Instance_Class::dde_callback(
FILE: CODE/DDE.H
function class (line 61) | class Instance_Class {
FILE: CODE/DEBUG.CPP
function Debug_Key (line 69) | void Debug_Key(unsigned input)
function Benchmarks (line 405) | static void Benchmarks(MonoClass * mono)
function Self_Regulate (line 474) | void Self_Regulate(void)
FILE: CODE/DEFINES.H
type VQType (line 284) | typedef enum VQType {
type RTTIType (line 398) | typedef enum RTTIType {
type DiffType (line 439) | typedef enum DiffType {
type LEPTON (line 506) | typedef unsigned short LEPTON;
type LEPTON_COMPOSITE (line 507) | typedef union {
type COORDINATE (line 520) | typedef unsigned long COORDINATE;
type COORD_COMPOSITE (line 521) | typedef union {
type CELL (line 534) | typedef signed short CELL;
type CELL_COMPOSITE (line 536) | typedef union {
type WAYPOINT (line 556) | typedef int WAYPOINT;
type TARGET (line 564) | typedef long TARGET;
type TARGET_COMPOSITE (line 568) | typedef union {
function TARGET (line 582) | inline TARGET Build_Target(RTTIType kind, int value)
type FearType (line 610) | typedef enum FearType {
type PCPType (line 626) | typedef enum PCPType {
type ZoneType (line 637) | typedef enum ZoneType {
type MZoneType (line 655) | typedef enum MZoneType {
type StateType (line 677) | typedef enum StateType {
type UrgencyType (line 692) | typedef enum UrgencyType {
type StrategyType (line 709) | typedef enum StrategyType {
type ProdFailType (line 730) | typedef enum ProdFailType {
type CheckPointType (line 742) | typedef enum CheckPointType {
type CrateType (line 752) | typedef enum CrateType {
type SpecialWeaponType (line 782) | typedef enum SpecialWeaponType {
type MoveType (line 821) | typedef enum MoveType {
type ThemeType (line 838) | typedef enum ThemeType {
type ThreatType (line 899) | typedef enum ThreatType {
type FireErrorType (line 928) | typedef enum FireErrorType {
type CloakType (line 949) | typedef enum CloakType {
type VisualType (line 961) | typedef enum VisualType {
type MissionType (line 976) | typedef enum MissionType {
type BStateType (line 1013) | typedef enum BStateType {
type ActionType (line 1033) | typedef enum ActionType {
type ResultType (line 1075) | typedef enum ResultType {
type ConcreteEnum (line 1091) | enum ConcreteEnum {
type MPHType (line 1115) | typedef enum MPHType{
type HousesType (line 1136) | typedef enum HousesType {
type PlayerColorType (line 1190) | typedef enum PlayerColorType {
type RemapType (line 1214) | typedef enum RemapType {
type ScenarioPlayerType (line 1226) | typedef enum ScenarioPlayerEnum
type ScenarioDirType (line 1245) | typedef enum ScenarioDirEnum
type ScenarioVarType (line 1260) | typedef enum ScenarioVarEnum
type LayerType (line 1280) | typedef enum LayerType {
type BulletType (line 1298) | typedef enum BulletType {
type StructType (line 1331) | typedef enum StructType {
type OverlayType (line 1482) | typedef enum OverlayType {
type InfantryType (line 1521) | typedef enum InfantryType{
type UnitType (line 1572) | typedef enum UnitType{
type VesselType (line 1632) | typedef enum VesselType{
type AircraftType (line 1669) | typedef enum AircraftType {
type TemplateType (line 1700) | typedef enum TemplateType {
type TerrainType (line 2123) | typedef enum TerrainType {
type SmudgeType (line 2176) | typedef enum SmudgeType {
type AnimType (line 2205) | typedef enum AnimType {
type DoType (line 2304) | typedef enum DoType {
type DoStruct (line 2338) | typedef struct {
type DoInfoStruct (line 2345) | typedef struct {
type RadioMessageType (line 2357) | typedef enum RadioMessageType {
type NeedType (line 2402) | typedef enum NeedType {
type QuarryType (line 2433) | typedef enum QuarryType {
type FormationType (line 2457) | typedef enum FormationType {
type SelectEnum (line 2479) | typedef enum SelectEnum {
type PipEnum (line 2496) | typedef enum PipEnum
type MouseType (line 2529) | typedef enum MouseType
type BoxStyleType (line 2582) | typedef struct {
type BoxStyleEnum (line 2589) | typedef enum BoxStyleEnum {
type WarheadType (line 2606) | typedef enum WarheadType{
type WeaponType (line 2630) | typedef enum WeaponType {
type ArmorType (line 2697) | typedef enum ArmorType {
type DMonoType (line 2712) | typedef enum DMonoType {
type BenchType (line 2725) | typedef enum BenchType {
type TextPrintType (line 2792) | typedef enum TextPrintType {
type LandType (line 2855) | typedef enum LandType {
type TheaterType (line 2875) | typedef enum TheaterType {
type TheaterDataType (line 2891) | typedef struct {
type BSizeType (line 2903) | typedef enum BSizeType {
type MarkType (line 2927) | typedef enum MarkType {
type WindowNumberType (line 2942) | typedef enum WindowNumberType {
type FacingType (line 2958) | typedef enum FacingType {
function FacingType (line 2974) | inline FacingType operator + (FacingType f1, FacingType f2)
function FacingType (line 2978) | inline FacingType operator + (FacingType f1, int f2)
function FacingType (line 2983) | inline FacingType operator - (FacingType f1, FacingType f2)
function FacingType (line 2987) | inline FacingType operator - (FacingType f1, int f2)
function FacingType (line 2992) | inline FacingType operator += (FacingType & f1, FacingType f2)
function FacingType (line 2997) | inline FacingType operator += (FacingType & f1, int f2)
function operator (line 3003) | inline int operator * (FacingType f1, FacingType f2)
type DirType (line 3010) | typedef enum DirType {
function DirType (line 3024) | inline DirType operator + (DirType f1, DirType f2)
function DirType (line 3028) | inline DirType operator + (DirType f1, int f2)
type SpeedType (line 3060) | typedef enum SpeedType {
type VocType (line 3077) | typedef enum VocType{
type VoxType (line 3271) | typedef enum VoxType{
type SourceType (line 3404) | typedef enum SourceType {
type RemapControlType (line 3421) | typedef struct RemapControlType
type GroundType (line 3443) | typedef struct {
type PathType (line 3452) | typedef struct {
type WaypointType (line 3467) | typedef enum WaypointEnum
type KeyFrameType (line 3481) | typedef enum {
type NewConfigType (line 3494) | typedef struct {
type SpecialDialogType (line 3511) | typedef enum {
type CCPaletteType (line 3518) | typedef enum {
type OptionControlType (line 3529) | typedef enum OptionControlType {
FILE: CODE/DESCDLG.H
function class (line 42) | class DescriptionClass
FILE: CODE/DIAL8.CPP
function DirType (line 292) | DirType Dial8Class::Get_Direction(void) const
FILE: CODE/DIAL8.H
function class (line 39) | class Dial8Class : public ControlClass
FILE: CODE/DIALOG.CPP
function Dialog_Box (line 74) | void Dialog_Box(int x, int y, int w, int h)
function Draw_Box (line 193) | void Draw_Box(int x, int y, int w, int h, BoxStyleEnum up, bool filled)
function Format_Window_String (line 258) | int Format_Window_String(char * string, int maxlinelen, int & width, int...
function Window_Box (line 337) | void Window_Box(WindowNumberType window, BoxStyleEnum style)
function Simple_Text_Print (line 395) | void Simple_Text_Print(char const * text, unsigned x, unsigned y, RemapC...
function Fancy_Text_Print (line 665) | void Fancy_Text_Print(int text, unsigned x, unsigned y, RemapControlType...
function Fancy_Text_Print (line 722) | void Fancy_Text_Print(char const * text, unsigned x, unsigned y, RemapCo...
function Conquer_Clip_Text_Print (line 782) | void Conquer_Clip_Text_Print(char const * text, unsigned x, unsigned y, ...
function Plain_Text_Print (line 881) | void Plain_Text_Print(int text, unsigned x, unsigned y, unsigned fore, u...
function Plain_Text_Print (line 925) | void Plain_Text_Print(char const * text, unsigned x, unsigned y, unsigne...
function Draw_Caption (line 977) | void Draw_Caption(int text, int x, int y, int w)
function Draw_Caption (line 983) | void Draw_Caption(char const * text, int x, int y, int w)
FILE: CODE/DIBFILE.CPP
function HDIB (line 102) | HDIB FAR LoadDIB(LPSTR lpFileName)
function WORD (line 164) | WORD FAR SaveDIB(HDIB hDib, LPSTR lpFileName)
function WORD (line 291) | WORD FAR DestroyDIB(HDIB hDib)
function HANDLE (line 332) | HANDLE ReadDIBFile(int hFile)
function BOOL (line 466) | BOOL MyRead(int hFile, LPSTR lpBuffer, DWORD dwSize)
function DWORD (line 505) | DWORD PASCAL MyWrite(int iFileHandle, VOID FAR *lpBuffer, DWORD dwBytes)
function HDIB (line 532) | HDIB LoadDIB_FromMemory( const unsigned char* pData, DWORD dwBitsSize )
FILE: CODE/DIBUTIL.CPP
function HDIB (line 101) | HDIB FAR CreateDIB(DWORD dwWidth, DWORD dwHeight, WORD wBitCount)
function LPSTR (line 193) | LPSTR FAR FindDIBBits(LPCSTR lpDIB)
function DWORD (line 224) | DWORD FAR DIBWidth(LPCSTR lpDIB)
function DWORD (line 267) | DWORD FAR DIBHeight(LPCSTR lpDIB)
function WORD (line 311) | WORD FAR PaletteSize(LPCSTR lpDIB)
function WORD (line 347) | WORD FAR DIBNumColors(LPCSTR lpDIB)
function HPALETTE (line 420) | HPALETTE FAR CreateDIBPalette(HDIB hDIB)
function HBITMAP (line 562) | HBITMAP FAR DIBToBitmap(HDIB hDIB, HPALETTE hPal)
function HDIB (line 638) | HDIB FAR BitmapToDIB(HBITMAP hBitmap, HPALETTE hPal)
function PalEntriesOnDevice (line 800) | int FAR PalEntriesOnDevice(HDC hDC)
function HPALETTE (line 848) | HPALETTE FAR GetSystemPalette(void)
function HANDLE (line 926) | HANDLE AllocRoomForDIB(BITMAPINFOHEADER bi, HBITMAP hBitmap)
function HDIB (line 1025) | HDIB FAR ChangeDIBFormat(HDIB hDIB, WORD wBitCount, DWORD dwCompression)
function HDIB (line 1198) | HDIB FAR ChangeBitmapFormat(HBITMAP hBitmap,
FILE: CODE/DISPLAY.CPP
function CELL (line 834) | CELL DisplayClass::Set_Cursor_Pos(CELL pos)
function CELL (line 1134) | CELL DisplayClass::Click_Cell_Calc(int x, int y) const
function ObjectClass (line 1617) | ObjectClass * DisplayClass::Cell_Object(CELL cell, int x, int y) const
function ObjectClass (line 2261) | ObjectClass * DisplayClass::Next_Object(ObjectClass * object) const
function ObjectClass (line 2301) | ObjectClass * DisplayClass::Prev_Object(ObjectClass * object) const
function COORDINATE (line 2343) | COORDINATE DisplayClass::Pixel_To_Coord(int x, int y) const
function CELL (line 2397) | CELL DisplayClass::Calculated_Cell(SourceType dir, WAYPOINT waypoint, CE...
function COORDINATE (line 3999) | COORDINATE DisplayClass::Closest_Free_Spot(COORDINATE coord, bool any) c...
FILE: CODE/DISPLAY.H
function class (line 63) | class DisplayClass: public MapClass
FILE: CODE/DOOR.H
function class (line 41) | class DoorClass
FILE: CODE/DPMI.H
function class (line 49) | class DOSSegmentClass {
function DOSSegmentClass (line 106) | inline DOSSegmentClass::DOSSegmentClass(void)
function DOSSegmentClass (line 111) | inline DOSSegmentClass::~DOSSegmentClass(void)
function Copy_Word_To (line 115) | inline void DOSSegmentClass::Copy_Word_To(short data, int dest)
function Copy_Byte_To (line 120) | inline void DOSSegmentClass::Copy_Byte_To(char data, int dest)
function Copy_DWord_To (line 125) | inline void DOSSegmentClass::Copy_DWord_To(long data, int dest)
function Assign (line 130) | inline void DOSSegmentClass::Assign(unsigned short segment, long)
function DOSSegmentClass (line 135) | inline DOSSegmentClass::DOSSegmentClass(unsigned short segment, long)
function Copy_To (line 140) | inline void DOSSegmentClass::Copy_To(void *source, int dest, int size)
function Copy_From (line 145) | inline void DOSSegmentClass::Copy_From(void *dest, int source, int size)
function Copy (line 150) | inline void DOSSegmentClass::Copy(DOSSegmentClass &src, int soffset, DOS...
function Copy_Word_From (line 154) | inline short DOSSegmentClass::Copy_Word_From(int source)
function Copy_Byte_From (line 159) | inline char DOSSegmentClass::Copy_Byte_From(int source)
function Copy_DWord_From (line 164) | inline long DOSSegmentClass::Copy_DWord_From(int source)
function Get_Selector (line 169) | inline unsigned int DOSSegmentClass::Get_Selector(void)
FILE: CODE/DRIVE.CPP
function test (line 65) | void test(void)
function COORDINATE (line 525) | COORDINATE DriveClass::Smooth_Turn(COORDINATE adj, DirType & dir)
FILE: CODE/DRIVE.H
function class (line 47) | class DriveClass : public FootClass
FILE: CODE/DROP.CPP
function DropListClass (line 64) | DropListClass & DropListClass::Add(LinkClass & object)
function DropListClass (line 70) | DropListClass & DropListClass::Add_Tail(LinkClass & object)
function DropListClass (line 76) | DropListClass & DropListClass::Add_Head(LinkClass & object)
function DropListClass (line 82) | DropListClass * DropListClass::Remove(void)
function DropListClass (line 166) | DropListClass & DropListClass::operator = (DropListClass const & list)
FILE: CODE/DROP.H
function class (line 44) | class DropListClass : public EditClass {
function virtual (line 106) | virtual ~TDropListClass(void) {}
function T (line 108) | T operator [] (int index) const {return(List[index]);}
function virtual (line 124) | virtual int Count(void) const {return(List.Count());}
function virtual (line 125) | virtual T Get_Item(int index) const {return(List.Get_Item(index));}
FILE: CODE/EDIT.H
function class (line 41) | class EditClass : public ControlClass
function virtual (line 58) | virtual char * Get_Text(void) {return(String);}
function Set_Color (line 59) | void Set_Color (RemapControlType * color) { Color = color; }
function Set_Read_Only (line 61) | void Set_Read_Only(int rdonly) {IsReadOnly = rdonly;}
FILE: CODE/EGOS.CPP
function Set_Pal (line 316) | void Set_Pal(char *palette)
function Slide_Show (line 349) | void Slide_Show (int slide, int frame)
function Show_Who_Was_Responsible (line 455) | void Show_Who_Was_Responsible (void)
FILE: CODE/EGOS.H
function class (line 45) | class EgoClass {
FILE: CODE/ENDING.CPP
function GDI_Ending (line 40) | void GDI_Ending(void)
function Nod_Ending (line 73) | void Nod_Ending(void)
FILE: CODE/EVENT.H
function class (line 49) | class EventClass
FILE: CODE/EXPAND.CPP
function Expansion_CS_Present (line 64) | bool Expansion_CS_Present(void)
function Expansion_AM_Present (line 86) | bool Expansion_AM_Present(void)
type EObjectClass (line 275) | struct EObjectClass
class EListClass (line 289) | class EListClass : public ListClass
method EListClass (line 292) | EListClass(int id, int x, int y, int w, int h, TextPrintType flags, vo...
method Add_Object (line 295) | virtual int Add_Object(EObjectClass * obj) {
method EObjectClass (line 298) | virtual EObjectClass * Get_Object(int index) const {
method EObjectClass (line 301) | virtual EObjectClass * Current_Object(void) {
method Add_Item (line 309) | virtual int Add_Item(char const * text) {return(ListClass::Add_Item(te...
method Add_Item (line 310) | virtual int Add_Item(int text) {return(ListClass::Add_Item(text));}
FILE: CODE/EXTERNS.H
type MixFileClass (line 65) | typedef MixFileClass<CCFileClass> MFCD;
FILE: CODE/FACE.CPP
function DirType (line 65) | DirType Desired_Facing8(int x1, int y1, int x2, int y2)
function DirType (line 150) | DirType Desired_Facing256(int srcx, int srcy, int dstx, int dsty)
FILE: CODE/FACE.H
type DirType (line 42) | typedef enum DirType {
function DirType (line 56) | inline DirType operator + (DirType f1, DirType f2)
function DirType (line 60) | inline DirType operator + (DirType f1, int f2)
function DirType (line 64) | inline DirType operator - (DirType f1, DirType f2)
function DirType (line 68) | inline DirType operator - (DirType f1, int f2)
FILE: CODE/FACING.H
function class (line 47) | class FacingClass
function DirType (line 56) | DirType Current(void) const {return(CurrentFacing);}
function DirType (line 57) | DirType Desired(void) const {return(DesiredFacing);}
function Set (line 62) | void Set(DirType facing) {
function DirType (line 67) | DirType Get(void) const { return CurrentFacing; }
function Is_Rotating (line 69) | int Is_Rotating(void) const {return (DesiredFacing != CurrentFacing);}
function Difference (line 70) | int Difference(void) const {return (int)(signed char)((int)DesiredFacing...
function Difference (line 71) | int Difference(DirType facing) const {return (int)(signed char)((int)fac...
FILE: CODE/FACTORY.CPP
function TechnoClass (line 575) | TechnoClass * FactoryClass::Get_Object(void) const
FILE: CODE/FACTORY.H
function class (line 43) | class FactoryClass : private StageClass
FILE: CODE/FAKESOCK.H
function class (line 45) | class TcpipManagerClass {
FILE: CODE/FIELD.H
function class (line 56) | class FieldClass {
FILE: CODE/FILEPCX.H
type RGB (line 48) | typedef struct {
type PCX_HEADER (line 54) | typedef struct {
FILE: CODE/FINDPATH.CPP
function FacingType (line 131) | inline FacingType Opposite(FacingType face)
function FacingType (line 137) | inline static FacingType Next_Direction(FacingType facing, FacingType dir)
function Point_Relative_To_Line (line 191) | int Point_Relative_To_Line(int x, int z, int x1, int z1, int x2, int z2)
function PathType (line 435) | PathType * FootClass::Find_Path(CELL dest, FacingType * final_moves, int...
function CELL (line 1206) | CELL FootClass::Safety_Point(CELL src, CELL dst, int start, int max)
FILE: CODE/FIXED.H
function class (line 84) | class fixed
function fixed (line 117) | const fixed operator * (fixed const & rvalue) const {fixed temp = *this;...
function operator (line 118) | const int operator * (int rvalue) const {return ((((unsigned)Data.Raw * ...
function fixed (line 120) | const fixed operator / (fixed const & rvalue) const {fixed temp = *this;...
function operator (line 121) | const int operator / (int rvalue) const {if (rvalue) return(((unsigned)D...
function fixed (line 123) | const fixed operator + (fixed const & rvalue) const {fixed temp = *this;...
function operator (line 124) | const int operator + (int rvalue) const {return((((unsigned)Data.Raw+(25...
function fixed (line 126) | const fixed operator - (fixed const & rvalue) const {fixed temp = *this;...
function operator (line 127) | const int operator - (int rvalue) const {return((((unsigned)Data.Raw+(25...
function fixed (line 134) | const fixed operator >> (unsigned rvalue) const {fixed temp = *this;temp...
function fixed (line 135) | const fixed operator << (unsigned rvalue) const {fixed temp = *this;temp...
function operator (line 140) | bool operator == (fixed const & rvalue) const {return(Data.Raw == rvalue...
function operator (line 141) | bool operator != (fixed const & rvalue) const {return(Data.Raw != rvalue...
function operator (line 142) | bool operator < (fixed const & rvalue) const {return(Data.Raw < rvalue.D...
function operator (line 143) | bool operator > (fixed const & rvalue) const {return(Data.Raw > rvalue.D...
function operator (line 144) | bool operator <= (fixed const & rvalue) const {return(Data.Raw <= rvalue...
function operator (line 145) | bool operator >= (fixed const & rvalue) const {return(Data.Raw >= rvalue...
function operator (line 146) | bool operator ! (void) const {return(Data.Raw == 0);}
function operator (line 151) | bool operator < (int rvalue) const {return(Data.Raw < (rvalue*256));}
function operator (line 152) | bool operator > (int rvalue) const {return(Data.Raw > (rvalue*256));}
function operator (line 153) | bool operator <= (int rvalue) const {return(Data.Raw <= (rvalue*256));}
function operator (line 154) | bool operator >= (int rvalue) const {return(Data.Raw >= (rvalue*256));}
function operator (line 155) | bool operator == (int rvalue) const {return(Data.Raw == (rvalue*256));}
function operator (line 156) | bool operator != (int rvalue) const {return(Data.Raw != (rvalue*256));}
function operator (line 166) | bool operator > (unsigned lvalue, fixed const & rvalue) {return((lvalue*...
function operator (line 168) | bool operator >= (unsigned lvalue, fixed const & rvalue) {return((lvalue...
function operator (line 170) | bool operator != (unsigned lvalue, fixed const & rvalue) {return((lvalue...
function Round_Up (line 179) | void Round_Up(void) {Data.Raw += (unsigned short)(256-1);Data.Composite....
function Round_Down (line 180) | void Round_Down(void) {Data.Composite.Fraction = 0;}
function Round (line 181) | void Round(void) {if (Data.Composite.Fraction >= 256/2) Round_Up();Round...
function Saturate (line 182) | void Saturate(unsigned capvalue) {if (Data.Raw > (capvalue*256)) Data.Ra...
function Saturate (line 183) | void Saturate(fixed const & capvalue) {if (*this > capvalue) *this = cap...
function Sub_Saturate (line 184) | void Sub_Saturate(unsigned capvalue) {if (Data.Raw >= (capvalue*256)) Da...
function Sub_Saturate (line 185) | void Sub_Saturate(fixed const & capvalue) {if (*this >= capvalue) Data.R...
function Inverse (line 186) | void Inverse(void) {*this = fixed(1) / *this;}
function friend (line 192) | friend const fixed Round_Up(fixed const & value) {fixed temp = value; te...
function friend (line 193) | friend const fixed Round_Down(fixed const & value) {fixed temp = value; ...
function friend (line 194) | friend const fixed Round(fixed const & value) {fixed temp = value; temp....
function friend (line 195) | friend const fixed Saturate(fixed const & value, unsigned capvalue) {fix...
function friend (line 196) | friend const fixed Saturate(fixed const & value, fixed const & capvalue)...
function friend (line 197) | friend const fixed Sub_Saturate(fixed const & value, unsigned capvalue) ...
function friend (line 198) | friend const fixed Sub_Saturate(fixed const & value, fixed const & capva...
function friend (line 199) | friend const fixed Inverse(fixed const & value) {fixed temp = value;temp...
FILE: CODE/FLASHER.H
function class (line 41) | class FlasherClass {
FILE: CODE/FLY.CPP
function ImpactType (line 62) | ImpactType FlyClass::Physics(COORDINATE & coord, DirType facing)
FILE: CODE/FLY.H
type ImpactType (line 41) | typedef enum ImpactType {
function class (line 51) | class FlyClass {
FILE: CODE/FOOT.CPP
function COORDINATE (line 795) | COORDINATE FootClass::Sort_Y(void) const
function ResultType (line 1089) | ResultType FootClass::Take_Damage(int & damage, int distance, WarheadTyp...
function RadioMessageType (line 1558) | RadioMessageType FootClass::Receive_Message(RadioClass * from, RadioMess...
function TARGET (line 1897) | TARGET FootClass::Greatest_Threat(ThreatType method) const
function MoveType (line 2060) | MoveType FootClass::Can_Enter_Cell(CELL , FacingType) const
function COORDINATE (line 2156) | COORDINATE FootClass::Likely_Coord(void) const
function CELL (line 2185) | CELL FootClass::Adjust_Dest(CELL cell) const
FILE: CODE/FOOT.H
function class (line 54) | class FootClass : public TechnoClass
FILE: CODE/FTIMER.H
type NoInitClass (line 87) | struct NoInitClass {
function const (line 225) | unsigned long BasicTimerClass<T>::operator () (void) const
function Value (line 317) | unsigned long TTimerClass<T>::Value(void) const
function const (line 373) | unsigned long TTimerClass<T>::operator () (void) const
function Value (line 562) | unsigned long CDTimerClass<T>::Value(void) const
function const (line 626) | unsigned long CDTimerClass<T>::operator () (void) const
FILE: CODE/FUNCTION.H
function class (line 156) | class BitmapClass
function class (line 167) | class TPoint2D
type NoInitClass (line 190) | struct NoInitClass {
type TLucentType (line 242) | typedef struct {
function Target_Legal (line 937) | inline bool Target_Legal(TARGET target) {return(target != TARGET_NONE);}
FILE: CODE/FUSE.H
function class (line 46) | class FuseClass {
function COORDINATE (line 87) | inline COORDINATE FuseClass::Fuse_Target(void)
FILE: CODE/GADGET.CPP
function GadgetClass (line 284) | GadgetClass * GadgetClass::Remove(void)
function GadgetClass (line 306) | GadgetClass * GadgetClass::Get_Next(void) const
function GadgetClass (line 327) | GadgetClass * GadgetClass::Get_Prev(void) const
function KeyNumType (line 473) | KeyNumType GadgetClass::Input(void)
function ControlClass (line 684) | ControlClass * GadgetClass::Extract_Gadget(unsigned id)
FILE: CODE/GADGET.H
function class (line 99) | class GadgetClass : public LinkClass
function LinkClass (line 115) | GadgetClass(NoInitClass const & x) : LinkClass(x) {}
function GadgetClass (line 116) | GadgetClass(void) {}
function virtual (line 127) | virtual void Flag_List_To_Redraw(void) {LastList = 0;}
function Get_ID (line 137) | virtual unsigned Get_ID(void) const {return 0;}
function virtual (line 144) | virtual bool Is_To_Redraw(void) {return (IsToRepaint);}
function Set_Color_Scheme (line 155) | static void Set_Color_Scheme(RemapControlType *scheme)
function RemapControlType (line 158) | static RemapControlType * Get_Color_Scheme(void)
FILE: CODE/GAMEDLG.H
function class (line 43) | class GameControlsClass
FILE: CODE/GAUGE.H
function class (line 41) | class GaugeClass : public ControlClass
function class (line 93) | class TriColorGaugeClass : public GaugeClass
FILE: CODE/GETCPU.CPP
function Get_CPU_Type (line 81) | void Get_CPU_Type(int & cpu_type, bool & mmx, char * vendor_id, int vend...
FILE: CODE/GOPTIONS.H
function class (line 45) | class GameOptionsClass : public OptionsClass {
FILE: CODE/GSCREEN.H
function class (line 44) | class GScreenClass
FILE: CODE/HDATA.CPP
function HousesType (line 424) | HousesType HouseTypeClass::From_Name(char const * name)
function HouseTypeClass (line 471) | HouseTypeClass & HouseTypeClass::As_Reference(HousesType house)
FILE: CODE/HEAP.H
function class (line 50) | class FixedHeapClass
function virtual (line 122) | virtual ~TFixedHeapClass(void) {}
function virtual (line 125) | virtual int ID(T const * pointer) const {return FixedHeapClass::ID(point...
function virtual (line 126) | virtual T * Alloc(void) {return (T*)FixedHeapClass::Allocate();}
function virtual (line 127) | virtual int Free(T * pointer) {return(FixedHeapClass::Free(pointer));}
function T (line 130) | T const & operator[](int index) const {return *(T*)(((char *)Buffer) + (...
function class (line 140) | class FixedIHeapClass : public FixedHeapClass
function virtual (line 178) | virtual ~TFixedIHeapClass(void) {}
function virtual (line 180) | virtual int ID(T const * pointer) const {return FixedIHeapClass::ID(poin...
function virtual (line 181) | virtual int Logical_ID(T const * pointer) const {return(FixedIHeapClass:...
function virtual (line 182) | virtual int Logical_ID(int id) const {return(FixedIHeapClass::Logical_ID...
function virtual (line 183) | virtual T * Alloc(void) {return (T*)FixedIHeapClass::Allocate();}
function virtual (line 184) | virtual int Free(T * pointer) {return FixedIHeapClass::Free(pointer);}
function virtual (line 185) | virtual int Free(void * pointer) {return FixedIHeapClass::Free(pointer);}
function virtual (line 191) | virtual T * Ptr(int index) const {return (T*)FixedIHeapClass::ActivePoin...
function virtual (line 192) | virtual T * Raw_Ptr(int index) {return (T*)((*this)[index]);}
FILE: CODE/HELP.H
function class (line 45) | class HelpClass: public TabClass
FILE: CODE/HOUSE.CPP
function fixed (line 201) | fixed HouseClass::Tiberium_Fraction(void) const
function HouseClass (line 227) | HouseClass * HouseClass::As_Pointer(HousesType house)
function DiffType (line 278) | DiffType HouseClass::Assign_Handicap(DiffType handicap)
function TeamTypeClass (line 2317) | TeamTypeClass const * HouseClass::Suggested_New_Team(bool alertcheck)
function ProdFailType (line 2394) | ProdFailType HouseClass::Begin_Production(RTTIType type, int id)
function ProdFailType (line 2454) | ProdFailType HouseClass::Suspend_Production(RTTIType type)
function ProdFailType (line 2499) | ProdFailType HouseClass::Abandon_Production(RTTIType type)
function TechnoTypeClass (line 3253) | TechnoTypeClass const * HouseClass::Suggest_New_Object(RTTIType objectty...
function fixed (line 4148) | fixed HouseClass::Power_Fraction(void) const
function BuildingTypeClass (line 4261) | BuildingTypeClass const * HouseClass::Suggest_New_Building(void) const
function BuildingClass (line 4293) | BuildingClass * HouseClass::Find_Building(StructType type, ZoneType zone...
function COORDINATE (line 4335) | COORDINATE HouseClass::Find_Build_Location(BuildingClass * building) const
function UrgencyType (line 4877) | UrgencyType HouseClass::Check_Build_Power(void) const
function UrgencyType (line 4907) | UrgencyType HouseClass::Check_Build_Defense(void) const
function UrgencyType (line 4920) | UrgencyType HouseClass::Check_Build_Offense(void) const
function UrgencyType (line 4936) | UrgencyType HouseClass::Check_Attack(void) const
function UrgencyType (line 4950) | UrgencyType HouseClass::Check_Build_Income(void) const
function UrgencyType (line 4964) | UrgencyType HouseClass::Check_Fire_Sale(void) const
function UrgencyType (line 4979) | UrgencyType HouseClass::Check_Build_Engineer(void) const
function UrgencyType (line 4996) | UrgencyType HouseClass::Check_Raise_Money(void) const
function UrgencyType (line 5015) | UrgencyType HouseClass::Check_Lower_Power(void) const
function UrgencyType (line 5032) | UrgencyType HouseClass::Check_Raise_Power(void) const
function ZoneType (line 6618) | ZoneType HouseClass::Which_Zone(COORDINATE coord) const
function ZoneType (line 6651) | ZoneType HouseClass::Which_Zone(ObjectClass const * object) const
function ZoneType (line 6675) | ZoneType HouseClass::Which_Zone(CELL cell) const
function CELL (line 6797) | CELL HouseClass::Zone_Cell(ZoneType zone) const
function CELL (line 6841) | CELL HouseClass::Where_To_Go(FootClass const * object) const
function TARGET (line 6876) | TARGET HouseClass::Find_Juicy_Target(COORDINATE coord) const
function FactoryClass (line 6945) | FactoryClass * HouseClass::Fetch_Factory(RTTIType rtti) const
function CELL (line 7625) | CELL HouseClass::Find_Cell_In_Zone(TechnoClass const * techno, ZoneType ...
function CELL (line 7692) | CELL HouseClass::Random_Cell_In_Zone(ZoneType zone) const
FILE: CODE/HOUSE.H
function class (line 59) | class HouseStaticClass {
function class (line 111) | class HouseClass {
function QuantityB (line 890) | int QuantityB(int index) {return(BQuantity[index]);}
function QuantityU (line 892) | int QuantityU(int index) {
function QuantityI (line 896) | int QuantityI(int index) {
function QuantityA (line 900) | int QuantityA(int index) {return(AQuantity[index]);}
function QuantityV (line 901) | int QuantityV(int index) {
function QuantityU (line 906) | int QuantityU(int index) {return(UQuantity[index]);}
function QuantityI (line 907) | int QuantityI(int index) {return(IQuantity[index]);}
function QuantityA (line 908) | int QuantityA(int index) {return(AQuantity[index]);}
function QuantityV (line 909) | int QuantityV(int index) {return(VQuantity[index]);}
FILE: CODE/HSV.H
function class (line 50) | class HSVClass
FILE: CODE/ICONLIST.CPP
function IconList_ItemExtras (line 617) | const IconList_ItemExtras* IconListClass::Get_ItemExtras( int index ) const
function RemapControlType (line 658) | RemapControlType* IconListClass::Get_Item_Color( int index )
function Format_Window_String_New (line 789) | int Format_Window_String_New( const char* string, int maxlinelen, int& w...
function CC_Draw_DIB (line 863) | void CC_Draw_DIB( const char* pDIB, int xDest, int yDest, int iWidth, Wi...
FILE: CODE/ICONLIST.H
type ICONKIND (line 38) | enum ICONKIND
type FIXEDICON (line 44) | struct FIXEDICON // For putting icons in list entries at a specific fix...
type IconList_ItemExtras (line 53) | struct IconList_ItemExtras
function class (line 77) | class IconListClass : public ListClass
FILE: CODE/IDATA.CPP
function ObjectClass (line 1072) | ObjectClass * InfantryTypeClass::Create_One_Of(HouseClass * house) const
function InfantryType (line 1215) | InfantryType InfantryTypeClass::From_Name(char const * name)
function InfantryTypeClass (line 1329) | InfantryTypeClass & InfantryTypeClass::As_Reference(InfantryType type)
FILE: CODE/INFANTRY.CPP
function ResultType (line 319) | ResultType InfantryClass::Take_Damage(int & damage, int distance, Warhea...
function MoveType (line 1266) | MoveType InfantryClass::Can_Enter_Cell(CELL cell, FacingType ) const
function FireErrorType (line 1611) | FireErrorType InfantryClass::Can_Fire(TARGET target, int which) const
function BulletClass (line 2164) | BulletClass * InfantryClass::Fire_At(TARGET target, int which)
function TARGET (line 2267) | TARGET InfantryClass::Greatest_Threat(ThreatType threat) const
function ActionType (line 3158) | ActionType InfantryClass::What_Action(CELL cell) const
function ObjectTypeClass (line 3268) | ObjectTypeClass const & InfantryClass::Class_Of(void) const
FILE: CODE/INFANTRY.H
function class (line 42) | class InfantryClass : public FootClass
FILE: CODE/INI.CPP
function PKey (line 1175) | PKey INIClass::Get_PKey(bool fast) const
function fixed (line 1222) | fixed INIClass::Get_Fixed(char const * section, char const * entry, fixe...
FILE: CODE/INI.H
function class (line 55) | class INIClass {
function Section_Present (line 83) | bool Section_Present(char const * section) const {return(Find_Section(se...
function INIEntry (line 122) | struct INIEntry : Node<INIEntry> {
function INISection (line 135) | struct INISection : Node<INISection> {
FILE: CODE/INICODE.CPP
function Get_Scenario_Digest (line 43) | void Get_Scenario_Digest(char * digest, char * buffer)
function Read_Scenario_INI_Write_INB (line 104) | bool Read_Scenario_INI_Write_INB( char *root, bool fresh)
FILE: CODE/INIT.CPP
function Load_Prolog_Page (line 164) | static void Load_Prolog_Page(void)
function Init_Game (line 197) | bool Init_Game(int , char * [])
function Play_Intro (line 1603) | static void Play_Intro(bool sequenced)
function Anim_Init (line 1652) | void Anim_Init(void)
function Parse_Command_Line (line 1741) | bool Parse_Command_Line(int argc, char * argv[])
function Obfuscate (line 2198) | long Obfuscate(char const * string)
function Calculate_CRC (line 2376) | long Calculate_CRC(void * buffer, long len)
function Init_Random (line 2398) | void Init_Random(void)
function Load_Title_Page (line 2511) | void Load_Title_Page(bool visible)
function Init_Color_Remaps (line 2543) | static void Init_Color_Remaps(void)
function Init_Heaps (line 2667) | static void Init_Heaps(void)
function Init_Expansion_Files (line 2724) | static void Init_Expansion_Files(void)
function Init_One_Time_Systems (line 2766) | static void Init_One_Time_Systems(void)
function Init_Fonts (line 2807) | static void Init_Fonts(void)
function Init_CDROM_Access (line 2842) | static void Init_CDROM_Access(void)
function Init_Bootstrap_Mixfiles (line 2936) | static void Init_Bootstrap_Mixfiles(void)
function Init_Secondary_Mixfiles (line 3027) | static void Init_Secondary_Mixfiles(void)
function Bootstrap (line 3112) | static void Bootstrap(void)
function Init_Mouse (line 3243) | static void Init_Mouse(void)
function Init_Authorization (line 3292) | static void Init_Authorization(void)
function Init_Bulk_Data (line 3395) | static void Init_Bulk_Data(void)
function Init_Keys (line 3446) | static void Init_Keys(void)
function Save_Recording_Values (line 3482) | bool Save_Recording_Values(CCFileClass & file)
function Load_Recording_Values (line 3513) | bool Load_Recording_Values(CCFileClass & file)
function __PRO (line 3528) | void __PRO(void) {
function Extract (line 3534) | void Extract(char* filename, char* outname)
function Is_DVD_Installed (line 3569) | bool Is_DVD_Installed()
function Determine_If_Using_DVD (line 3588) | bool Determine_If_Using_DVD()
function Using_DVD (line 3612) | bool Using_DVD()
FILE: CODE/INLINE.H
function Lepton_To_Pixel (line 99) | inline int Lepton_To_Pixel(LEPTON lepton)
function LEPTON (line 119) | inline LEPTON Pixel_To_Lepton(int pixel)
function COORDINATE (line 140) | inline COORDINATE XY_Coord(LEPTON x, LEPTON y)
function COORDINATE (line 165) | inline COORDINATE XYP_COORD(int x, int y)
function CELL (line 186) | inline CELL Coord_XCell(COORDINATE coord)
function CELL (line 206) | inline CELL Coord_YCell(COORDINATE coord)
function CELL (line 227) | inline CELL XY_Cell(int x, int y)
function LEPTON (line 251) | inline LEPTON Cell_To_Lepton(int cell_distance)
function Lepton_To_Cell (line 276) | inline int Lepton_To_Cell(LEPTON lepton_distance)
function LEPTON (line 299) | inline LEPTON Coord_X(COORDINATE coord)
function LEPTON (line 319) | inline LEPTON Coord_Y(COORDINATE coord)
function Cell_X (line 339) | inline int Cell_X(CELL cell)
function Cell_Y (line 359) | inline int Cell_Y(CELL cell)
function Coord_XLepton (line 382) | inline int Coord_XLepton(COORDINATE coord)
function Coord_YLepton (line 403) | inline int Coord_YLepton(COORDINATE coord)
function COORDINATE (line 427) | inline COORDINATE XYP_Coord(int x, int y)
function COORDINATE (line 452) | inline COORDINATE Cell_Coord(CELL cell)
function COORDINATE (line 480) | inline COORDINATE Coord_Snap(COORDINATE coord)
function COORDINATE (line 503) | inline COORDINATE Coord_Fraction(COORDINATE coord)
function COORDINATE (line 526) | inline COORDINATE Coord_Whole(COORDINATE coord)
function FacingType (line 630) | inline FacingType Dir_Facing(DirType facing)
function DirType (line 651) | inline DirType Facing_Dir(FacingType facing)
function Dir_To_16 (line 672) | inline int Dir_To_16(DirType facing)
function Dir_To_32 (line 694) | inline int Dir_To_32(DirType facing)
function DirType (line 716) | inline DirType Direction256(COORDINATE coord1, COORDINATE coord2)
function DirType (line 739) | inline DirType Direction(COORDINATE coord1, COORDINATE coord2)
function DirType (line 762) | inline DirType Direction8(COORDINATE coord1, COORDINATE coord2)
function DirType (line 786) | inline DirType Direction(CELL cell1, CELL cell2)
function COORDINATE (line 810) | inline COORDINATE Adjacent_Cell(COORDINATE coord, FacingType dir)
function COORDINATE (line 834) | inline COORDINATE Adjacent_Cell(COORDINATE coord, DirType dir)
function CELL (line 858) | inline CELL Adjacent_Cell(CELL cell, FacingType dir)
function CELL (line 882) | inline CELL Adjacent_Cell(CELL cell, DirType dir)
function FacingType (line 903) | inline FacingType Dir_To_8(DirType facing)
function T (line 955) | T Random_Pick(T a, T b)
function Percent_Chance (line 979) | inline bool Percent_Chance(int percent)
function T (line 1006) | T Sim_Random_Pick(T a, T b)
function Sim_Percent_Chance (line 1030) | inline bool Sim_Percent_Chance(int percent)
function Distance (line 1055) | inline int Distance(int x1, int y1, int x2, int y2)
FILE: CODE/INT.H
function Randomize (line 60) | void Randomize(Straw & rng, int bitcount) {XMP_Randomize(®[0], rng, b...
function Randomize (line 61) | void Randomize(Straw & rng, const Int & minval, const Int & maxval) {XMP...
function operator (line 68) | operator digit * () {return & reg[0];}
function const (line 74) | bool operator[](unsigned bit) const {return(XMP_Test_Bit(®[0], bit));}
function operator (line 81) | int operator ! (void) const {return(XMP_Test_Eq_Int(®[0], 0, PRECISIO...
function Int (line 82) | Int operator ~ (void) {XMP_Not(®[0], PRECISION);return(*this);}
function Int (line 83) | Int operator - (void) const {Int a = *this;a.Negate();return (a);}
function ByteCount (line 88) | int ByteCount(void) const {return(XMP_Count_Bytes(®[0], PRECISION));}
function BitCount (line 89) | int BitCount(void) const {return(XMP_Count_Bits(®[0], PRECISION));}
function Is_Negative (line 90) | bool Is_Negative(void) const {return(XMP_Is_Negative(®[0], PRECISION));}
function IsSmallPrime (line 92) | bool IsSmallPrime(void) const {return(XMP_Is_Small_Prime(®[0], PRECIS...
function SmallDivisorsTest (line 93) | bool SmallDivisorsTest(void) const {return(XMP_Small_Divisors_Test(®[...
function FermatTest (line 94) | bool FermatTest(unsigned rounds) const {return(XMP_Fermat_Test(®[0], ...
function IsPrime (line 95) | bool IsPrime(void) const {return(XMP_Is_Prime(®[0], PRECISION));}
function RabinMillerTest (line 96) | bool RabinMillerTest(Straw & rng, unsigned int rounds) const {return(XMP...
function Int (line 112) | Int operator + (const Int & number) const {Int term;Carry = XMP_Add(term...
function Int (line 113) | Int operator + (unsigned short b) const {Int result;Carry=XMP_Add_Int(re...
function Int (line 115) | Int operator - (const Int & number) const {Int term;Borrow = XMP_Sub(ter...
function Int (line 116) | Int operator - (unsigned short b) const {Int result;Borrow = XMP_Sub_Int...
function Int (line 118) | Int operator * (const Int & multiplier) const {Int result;Error=XMP_Sign...
function Int (line 119) | Int operator * (unsigned short b) const {Int result;Error=XMP_Unsigned_M...
function Int (line 121) | Int operator / (const Int & divisor) const {Int quotient = *this;XMP_Sig...
function Int (line 122) | Int operator / (unsigned long b) const {return(*this / Int<PRECISION>(b));}
function Int (line 123) | Int operator / (unsigned short divisor) const {Int quotient;Error=XMP_Un...
function Int (line 125) | Int operator % (const Int & divisor) const {Int remainder;XMP_Signed_Div...
function Int (line 126) | Int operator % (unsigned long b) const {return(*this % Int<PRECISION>(b));}
function const (line 127) | unsigned short operator % (unsigned short divisor) const {return(XMP_Uns...
function Int (line 133) | Int operator >> (int bits) const {Int result = *this; XMP_Shift_Right_Bi...
function Int (line 134) | Int operator << (int bits) const {Int result = *this; XMP_Shift_Left_Bit...
function operator (line 139) | int operator == (const Int &b) const {return (memcmp(®[0], &b.reg[0],...
function operator (line 140) | int operator != (const Int& b) const {return !(*this == b);}
function operator (line 141) | int operator > (const Int & number) const {return(XMP_Compare(®[0], n...
function operator (line 142) | int operator >= (const Int & number) const {return(XMP_Compare(®[0], ...
function operator (line 143) | int operator < (const Int & number) const {return(XMP_Compare(®[0], n...
function operator (line 144) | int operator <= (const Int & number) const {return(XMP_Compare(®[0], ...
function Negate (line 149) | void Negate(void) {XMP_Neg(®[0], PRECISION);}
function Int (line 150) | Int Abs(void) {XMP_Abs(®[0], PRECISION);return(*this);}
function Int (line 151) | Int times_b_mod_c(Int const & multiplier, Int const & modulus) const {
function Int (line 159) | Int exp_b_mod_c(const Int & e, const Int & m) const {
function Int (line 166) | static Int Unsigned_Mult(Int const & multiplicand, Int const & multiplie...
function Unsigned_Divide (line 167) | static void Unsigned_Divide(Int & remainder, Int & quotient, const Int &...
function Signed_Divide (line 168) | static void Signed_Divide(Int & remainder, Int & quotient, const Int & d...
function Int (line 169) | Int Inverse(const Int & modulus) const {Int result;XMP_Inverse_A_Mod_B(r...
function Int (line 171) | static Int Decode_ASCII(char const * string) {Int result;XMP_Decode_ASCI...
function Encode (line 174) | int Encode(unsigned char *output) const {return(XMP_Encode(output, ®[...
function Encode (line 175) | int Encode(unsigned char * output, unsigned length) const {return(XMP_En...
function Signed_Decode (line 176) | void Signed_Decode(const unsigned char * from, int frombytes) {XMP_Signe...
function Unsigned_Decode (line 177) | void Unsigned_Decode(const unsigned char * from, int frombytes) {XMP_Uns...
function DEREncode (line 180) | int DEREncode(unsigned char * output) const {return(XMP_DER_Encode(®[...
function DERDecode (line 181) | void DERDecode(const unsigned char *input) {XMP_DER_Decode(®[0], inpu...
function HasZero (line 205) | struct RemainderTable
function Increment (line 225) | void Increment(const RemainderTable & rtQ)
FILE: CODE/INTERNET.CPP
function Check_From_WChat (line 112) | void Check_From_WChat(char *wchat_name)
function Just_Path (line 445) | void Just_Path(char *path, char *destpath)
function Is_User_WChat_Registered (line 474) | bool Is_User_WChat_Registered(char *buffer, int buffer_len)
function Spawn_WChat (line 563) | bool Spawn_WChat(bool can_launch)
function Spawn_Registration_App (line 705) | bool Spawn_Registration_App(void)
function Do_The_Internet_Menu_Thang (line 767) | bool Do_The_Internet_Menu_Thang(void)
FILE: CODE/INTERPAL.CPP
function Read_Interpolation_Palette (line 92) | void Read_Interpolation_Palette (char const * palette_file_name)
function Write_Interpolation_Palette (line 120) | void Write_Interpolation_Palette (char const * palette_file_name)
function Create_Palette_Interpolation_Table (line 147) | void Create_Palette_Interpolation_Table( void )
function Increase_Palette_Luminance (line 271) | void Increase_Palette_Luminance (unsigned char * palette , int red_perce...
function Interpolate_2X_Scale (line 325) | void Interpolate_2X_Scale( GraphicBufferClass * source, GraphicViewPortC...
FILE: CODE/INTRO.CPP
function VQAHandle (line 42) | VQAHandle * Open_Movie(char * name)
function Choose_Side (line 75) | void Choose_Side(void) // ajw - In RA, all this did was play a movie. D...
FILE: CODE/IPX.CPP
function IPX_SPX_Installed (line 92) | int IPX_SPX_Installed(void)
function IPX_Open_Socket (line 212) | int IPX_Open_Socket(unsigned short socket)
function IPX_Close_Socket (line 271) | int IPX_Close_Socket(unsigned short socket)
function IPX_Get_Connection_Number (line 330) | int IPX_Get_Connection_Number(void)
function IPX_Get_1st_Connection_Num (line 389) | int IPX_Get_1st_Connection_Num (char * username)
function IPX_Get_Internet_Address (line 539) | int IPX_Get_Internet_Address(int connection_number,
function IPX_Get_User_ID (line 670) | int IPX_Get_User_ID(int connection_number, char * user_id)
function IPX_Listen_For_Packet (line 820) | int IPX_Listen_For_Packet(struct ECB *ecb_ptr)
function IPX_Send_Packet (line 899) | void IPX_Send_Packet(struct ECB *ecb_ptr)
function IPX_Get_Local_Target (line 960) | int IPX_Get_Local_Target(unsigned char *dest_network, unsigned char *des...
function IPX_Cancel_Event (line 1076) | int IPX_Cancel_Event(struct ECB *ecb_ptr)
function Let_IPX_Breath (line 1135) | void Let_IPX_Breath(void)
FILE: CODE/IPX.H
type IPXHeaderType (line 54) | typedef struct IPXHEADER {
type ECBType (line 72) | typedef struct ECB {
type RMIType (line 94) | typedef struct {
type ECB (line 181) | struct ECB
type ECB (line 182) | struct ECB
type ECB (line 185) | struct ECB
FILE: CODE/IPX95.CPP
function Load_IPX_Dll (line 107) | bool Load_IPX_Dll (void)
function Unload_IPX_Dll (line 156) | void Unload_IPX_Dll (void)
function IPX_Open_Socket (line 165) | int IPX_Open_Socket(unsigned short socket)
function IPX_Close_Socket (line 170) | int IPX_Close_Socket(unsigned short socket)
function IPX_Get_Connection_Number (line 177) | int IPX_Get_Connection_Number(void)
function IPX_Broadcast_Packet (line 184) | int IPX_Broadcast_Packet(unsigned char * buf, int buflen)
function IPX_Get_Local_Target (line 193) | int IPX_Get_Local_Target(unsigned char * dest_network, unsigned char * d...
FILE: CODE/IPX95.H
type BOOL (line 51) | typedef BOOL __stdcall (*IPXInitialiseType) (void);
type BOOL (line 52) | typedef BOOL __stdcall (*IPXGetOutstandingBuffer95Type) (unsigned char*);
type BOOL (line 56) | typedef BOOL __stdcall (*IPXStartListening95Type) (void);
FILE: CODE/IPXADDR.H
function class (line 53) | class IPXAddressClass
FILE: CODE/IPXCONN.H
function class (line 58) | class IPXConnClass : public ConnectionClass
FILE: CODE/IPXGCONN.H
type GlobalHeaderType (line 96) | typedef struct {
function class (line 105) | class IPXGlobalConnClass : public IPXConnClass
FILE: CODE/IPXMGR.CPP
function IPXAddressClass (line 666) | IPXAddressClass * IPXManagerClass::Connection_Address(int id)
type SREGS (line 1834) | struct SREGS
type SREGS (line 2032) | struct SREGS
FILE: CODE/IPXMGR.H
function class (line 154) | class IPXManagerClass : public ConnManClass
FILE: CODE/JSHELL.CPP
function Set_Window (line 121) | void Set_Window(int window, int x, int y, int w, int h)
function Fatal (line 147) | void Fatal(char const * message, ...)
function File_Fatal (line 160) | void File_Fatal(char const * message)
function Load_Uncompress (line 193) | long Load_Uncompress(FileClass &file, BuffType &uncomp_buff, BuffType &d...
function Load_Picture (line 270) | int Load_Picture(char const * filename, BufferClass& scratchbuf, BufferC...
function Translucent_Table_Size (line 322) | long Translucent_Table_Size(int count)
function DirType (line 519) | DirType xDesired_Facing8(int x1, int y1, int x2, int y2)
function DirType (line 583) | DirType xDesired_Facing256(int srcx, int srcy, int dstx, int dsty)
FILE: CODE/JSHELL.H
type KeyboardClass (line 62) | struct KeyboardClass
type KeyboardClass (line 65) | struct KeyboardClass
function Clear (line 88) | void Clear(void) {if (IsLibrary) Clear_KeyBuffer();}
function Down (line 89) | int Down(KeyNumType key) {return(Key_Down(key));}
function IsLibrary (line 91) | IsLibrary(true) {}
function KeyNumType (line 92) | KeyNumType Get(void) {return ((KeyNumType)WWKeyboardClass::Get());}
function KeyNumType (line 93) | KeyNumType Check(void) {return ((KeyNumType)WWKeyboardClass::Check());}
function KeyASCIIType (line 94) | KeyASCIIType To_ASCII(KeyNumType key) {return((KeyASCIIType)WWKeyboardCl...
function Clear (line 95) | void Clear(void) {WWKeyboardClass::Clear();}
function Down (line 96) | int Down(KeyNumType key) {return(WWKeyboardClass::Down(key));}
function Mouse_X (line 99) | int Mouse_X(void) {return(Get_Mouse_X());}
function Mouse_Y (line 100) | int Mouse_Y(void) {return(Get_Mouse_Y());}
function T (line 145) | T min(T value1, T value2)
function T (line 155) | T max(T value1, T value2)
function T (line 176) | T Bound(T original, T minval, T maxval)
function class (line 337) | class FrameTimerClass
function class (line 359) | class SystemTimerClass
function class (line 373) | class UserTimerClass
function Pointer (line 451) | Pointer(realptr) {}
function Pointer (line 452) | SmartPtr(SmartPtr const & rvalue) : Pointer(rvalue.Pointer) {}
function operator (line 455) | operator T * (void) const {return(Pointer);}
FILE: CODE/KEY.H
type WWKey_Type (line 59) | typedef enum {
function class (line 70) | class WWKeyboardClass
type KeyASCIIType (line 389) | typedef enum KeyASCIIType {
type KeyNumType (line 537) | typedef enum KeyNumType {
FILE: CODE/KEYBOARD.H
type WWKey_Type (line 55) | typedef enum {
function class (line 66) | class WWKeyboardClass
type KeyNumType (line 531) | typedef enum KeyNumType {
FILE: CODE/KEYFRAME.CPP
type tShapeHeaderType (line 82) | struct tShapeHeaderType{
function Get_Last_Frame_Length (line 98) | int Get_Last_Frame_Length(void)
function Reallocate_Big_Shape_Buffer (line 105) | void Reallocate_Big_Shape_Buffer(void)
function Check_Use_Compressed_Shapes (line 119) | void Check_Use_Compressed_Shapes (void)
function Build_Frame (line 132) | unsigned long Build_Frame(void const * dataptr, unsigned short framenumb...
function Get_Build_Frame_Count (line 303) | unsigned short Get_Build_Frame_Count(void const * dataptr)
function Get_Build_Frame_X (line 312) | unsigned short Get_Build_Frame_X(void const * dataptr)
function Get_Build_Frame_Y (line 321) | unsigned short Get_Build_Frame_Y(void const * dataptr)
function Get_Build_Frame_Width (line 345) | unsigned short Get_Build_Frame_Width(void const * dataptr)
function Get_Build_Frame_Height (line 369) | unsigned short Get_Build_Frame_Height(void const * dataptr)
function Get_Build_Frame_Palette (line 378) | bool Get_Build_Frame_Palette(void const * dataptr, void * palette)
FILE: CODE/LAYER.H
function class (line 45) | class LayerClass : public DynamicVectorClass<ObjectClass *>
FILE: CODE/LCW.CPP
function LCW_Uncomp (line 72) | int LCW_Uncomp(void const * source, void * dest, unsigned long )
FILE: CODE/LCWPIPE.H
function class (line 50) | class LCWPipe : public Pipe
FILE: CODE/LCWSTRAW.H
function class (line 51) | class LCWStraw : public Straw
FILE: CODE/LCWUNCMP.CPP
function LCW_Uncompress (line 73) | unsigned long __cdecl LCW_Uncompress (void * source, void * dest, unsign...
FILE: CODE/LED.H
function class (line 24) | class LEDClass
FILE: CODE/LINK.CPP
function LinkClass (line 147) | LinkClass & LinkClass::operator = (LinkClass const & link)
function LinkClass (line 173) | LinkClass * LinkClass::Get_Next(void) const
function LinkClass (line 194) | LinkClass * LinkClass::Get_Prev(void) const
function LinkClass (line 215) | LinkClass & LinkClass::Head_Of_List(void)
function LinkClass (line 241) | LinkClass & LinkClass::Tail_Of_List(void)
function LinkClass (line 268) | LinkClass & LinkClass::Add(LinkClass & list)
function LinkClass (line 308) | LinkClass & LinkClass::Add_Head(LinkClass & list)
function LinkClass (line 341) | LinkClass & LinkClass::Add_Tail(LinkClass & list)
function LinkClass (line 378) | LinkClass * LinkClass::Remove(void)
FILE: CODE/LINK.H
function class (line 47) | class LinkClass
FILE: CODE/LIST.CPP
function LinkClass (line 771) | LinkClass & ListClass::Add(LinkClass & list)
function LinkClass (line 802) | LinkClass & ListClass::Add_Head(LinkClass & list)
function LinkClass (line 839) | LinkClass & ListClass::Add_Tail(LinkClass & list)
function GadgetClass (line 876) | GadgetClass * ListClass::Remove(void)
FILE: CODE/LIST.H
function class (line 59) | class ListClass : public ControlClass
function T (line 160) | T operator [] (int index) const {return(List[index]);}
function virtual (line 167) | virtual int Count(void) const {return List.Count();}
function virtual (line 173) | virtual T Get_Item(int index) const {return(List[index]);}
FILE: CODE/LISTNODE.H
function class (line 67) | class GenericNode {
function class (line 118) | class GenericList {
function T (line 169) | T * Last(void) const {return((T*)GenericList::Last());}
FILE: CODE/LOADDLG.CPP
type find_t (line 623) | struct find_t
class FileEntryClass (line 722) | class FileEntryClass
class FileEntryClass (line 775) | class FileEntryClass
class FileEntryClass (line 777) | class FileEntryClass
class FileEntryClass (line 778) | class FileEntryClass
FILE: CODE/LOADDLG.H
function class (line 39) | class FileEntryClass {
function class (line 49) | class LoadOptionsClass
FILE: CODE/LOGIC.H
function class (line 47) | class LogicClass : public LayerClass
FILE: CODE/LZO1X_C.CPP
function do_compress (line 92) | static int do_compress(const lzo_byte *in , lzo_uint in_len,
function lzo1x_1_compress (line 316) | int lzo1x_1_compress ( const lzo_byte *in , lzo_uint in_len,
FILE: CODE/LZO1X_D.CPP
function lzo1x_decompress (line 64) | int lzo1x_decompress ( const lzo_byte *in , lzo_uint in_len,
FILE: CODE/LZOCONF.H
type lzo_uint (line 81) | typedef unsigned int lzo_uint;
type lzo_int (line 82) | typedef int lzo_int;
type lzo_uint (line 85) | typedef unsigned long lzo_uint;
type lzo_int (line 86) | typedef long lzo_int;
type lzo_ptr_t (line 119) | typedef unsigned long lzo_ptr_t;
FILE: CODE/LZOPIPE.H
function class (line 50) | class LZOPipe : public Pipe
FILE: CODE/LZOSTRAW.H
function class (line 51) | class LZOStraw : public Straw
FILE: CODE/LZO_CONF.H
type lzo_ptrdiff_t (line 97) | typedef ptrdiff_t lzo_ptrdiff_t;
type lzo_ptrdiff_t (line 99) | typedef long lzo_ptrdiff_t;
FILE: CODE/LZW.CPP
function LZW_Uncompress (line 265) | int LZW_Uncompress(Buffer const & inbuff, Buffer const & outbuff)
function LZW_Compress (line 272) | int LZW_Compress(Buffer const & inbuff, Buffer const & outbuff)
type CodeClass (line 306) | struct CodeClass
method CodeClass (line 312) | CodeClass(void) {}
method CodeClass (line 313) | CodeClass(CodeType code, CodeType parent, char c) : CodeValue(code), P...
method Make_Unused (line 315) | void Make_Unused(void) {CodeValue = UNUSED;}
method Is_Unused (line 316) | bool Is_Unused(void) const {return(CodeValue == UNUSED);}
method Is_Matching (line 317) | bool Is_Matching(CodeType code, char c) const {return(ParentCode == co...
function Make_LZW_Hash (line 323) | inline int Make_LZW_Hash(CodeType code, char character)
function Find_Child_Node (line 351) | static int Find_Child_Node(CodeType parent_code, char child_character)
function Decode_String (line 409) | static int Decode_String(char * ptr, CodeType code)
function LZW_Compress (line 433) | int LZW_Compress(Buffer & inbuff, Buffer & outbuff)
function LZW_Uncompress (line 486) | int LZW_Uncompress(Buffer & inbuff, Buffer & outbuff)
FILE: CODE/LZW.H
function class (line 43) | class LZWEngine
FILE: CODE/LZWPIPE.H
function class (line 50) | class LZWPipe : public Pipe
FILE: CODE/LZWSTRAW.H
function class (line 51) | class LZWStraw : public Straw
FILE: CODE/MAP.CPP
function ObjectClass (line 1377) | ObjectClass * MapClass::Close_Object(COORDINATE coord) const
function CELL (line 1652) | CELL MapClass::Nearby_Location(CELL cell, SpeedType speed, int zone, MZo...
function CELL (line 2090) | CELL MapClass::Pick_Random_Location(void) const
FILE: CODE/MAP.H
function class (line 44) | class MapClass: public GScreenClass
FILE: CODE/MAPEDIT.CPP
function HousesType (line 1836) | HousesType MapEditClass::Cycle_House(HousesType curhouse, ObjectTypeClas...
FILE: CODE/MAPEDIT.H
type MapEdit1Enum (line 56) | enum MapEdit1Enum {
type MapEditButtonIDEnum (line 148) | enum MapEditButtonIDEnum{
function class (line 172) | class MapEditClass : public MouseClass
FILE: CODE/MAPSEL.CPP
type point (line 51) | struct point {
function Mouse_Over_Spot (line 323) | int Mouse_Over_Spot(int house, int scenario)
function Cycle_Call_Back_Delay (line 340) | void Cycle_Call_Back_Delay(int time, PaletteClass &pal)
function Set_Mouse (line 381) | void Set_Mouse(MouseType shape, int &start, int &count, int &delay, int ...
FILE: CODE/MCI.CPP
function MCIDEVICEID (line 158) | MCIDEVICEID MCI::OpenDevice(const char* name)
type _DeviceType (line 292) | struct _DeviceType {unsigned long typeID; const char* typeName;}
FILE: CODE/MCI.H
type MCIDevice (line 58) | typedef struct _MCIDevice
function class (line 76) | class MCI
FILE: CODE/MCIMOVIE.H
function class (line 31) | class MCIMovie
FILE: CODE/MEMCHECK.H
type MCSL (line 1030) | typedef unsigned int MCSL;
type MCID (line 1031) | typedef unsigned char MCID;
type MCEFLAGS (line 1033) | typedef unsigned long MCEFLAGS;
type MRFLAGS (line 1035) | typedef unsigned char MRFLAGS;
type MCFLAGS (line 1036) | typedef unsigned long MCFLAGS;
type MEMREC (line 1049) | typedef struct MemRecord
type MCSETTINGS (line 1065) | typedef struct MCSETTINGS {
type MCCFGINFO (line 1099) | typedef struct MCCfgInfo {
type MCEXCEPTINFO (line 1110) | typedef struct {
type MCEXCEPTINFO (line 1126) | typedef struct {
type MCCRITSECT (line 1158) | typedef struct {
function class (line 2432) | class MemCheck {
FILE: CODE/MENUS.CPP
function PRIVATE (line 74) | PRIVATE int Select_To_Entry(int select, unsigned long bitfield, int index)
function PRIVATE (line 106) | PRIVATE void Flash_Line(char const *text, int xpix, int ypix, unsigned n...
function PRIVATE (line 130) | PRIVATE int Coordinates_In_Region(int x, int y, int inx1, int iny1, int ...
function Find_Menu_Items (line 149) | int Find_Menu_Items(int maxitems, unsigned long field, char index)
function Setup_Menu (line 176) | void Setup_Menu(int menu, char const * text[], unsigned long field, int ...
function Check_Menu (line 210) | int Check_Menu(int menu, char const * text[], char *, long field, int in...
function Do_Menu (line 377) | int Do_Menu(char const ** strings, bool )
function Main_Menu (line 463) | int Main_Menu(unsigned long )
FILE: CODE/MISSION.CPP
function MissionType (line 158) | MissionType MissionClass::Get_Mission(void) const
function MissionType (line 412) | MissionType MissionClass::Mission_From_Name(char const * name)
FILE: CODE/MISSION.H
function class (line 48) | class MissionClass : public ObjectClass
function class (line 135) | class MissionControlClass
FILE: CODE/MIXFILE.CPP
function compfunc (line 487) | int compfunc(void const * ptr1, void const * ptr2)
FILE: CODE/MIXFILE.H
type SubBlock (line 60) | struct SubBlock {
function operator (line 66) | int operator > (SubBlock & two) const {return (CRC > two.CRC);}
function operator (line 67) | int operator == (SubBlock & two) const {return (CRC == two.CRC);}
type FileHeader (line 98) | typedef struct {
FILE: CODE/MONOC.CPP
function T (line 101) | T min(T a, T b) {
function T (line 107) | T max(T a, T b) {
function MonoClass (line 797) | MonoClass & MonoClass::operator = (MonoClass const & src)
function Mono_Set_Cursor (line 868) | void Mono_Set_Cursor(int x, int y)
function Mono_Printf (line 898) | int Mono_Printf(char const * string, ...)
function Mono_Clear_Screen (line 936) | void Mono_Clear_Screen(void)
function Mono_Text_Print (line 967) | void Mono_Text_Print(void const *text, int x, int y, int attrib)
function Mono_Draw_Rect (line 1001) | void Mono_Draw_Rect(int x, int y, int w, int h, int attrib, int thick)
function Mono_Print (line 1028) | void Mono_Print(void const *text)
function Mono_X (line 1056) | int Mono_X(void)
function Mono_Y (line 1084) | int Mono_Y(void)
function Mono_Put_Char (line 1098) | void Mono_Put_Char(char , int )
function Mono_Scroll (line 1102) | void Mono_Scroll(int )
function Mono_View_Page (line 1106) | void Mono_View_Page(int )
function Mono_Printf (line 1110) | int Mono_Printf(int string, ...)
FILE: CODE/MONOC.H
function class (line 56) | class MonoClass {
FILE: CODE/MOUSE.H
function class (line 44) | class MouseClass: public ScrollClass
FILE: CODE/MOVIE.H
type MPG_CMD (line 46) | typedef enum
type MPG_RESPONSE (line 55) | typedef enum
FILE: CODE/MP.CPP
function _Byte_Precision (line 120) | static int _Byte_Precision(unsigned long value)
function XMP_DER_Length_Encode (line 150) | int XMP_DER_Length_Encode(unsigned long length, unsigned char * output)
function XMP_DER_Encode (line 189) | int XMP_DER_Encode(digit const * from, unsigned char * output, int preci...
function XMP_DER_Decode (line 228) | void XMP_DER_Decode(digit * result, unsigned char const * input, int pre...
function XMP_Encode (line 273) | unsigned XMP_Encode(unsigned char * to, unsigned tobytes, digit const * ...
function XMP_Encode (line 319) | unsigned XMP_Encode(unsigned char * to, digit const * from, int precision)
function XMP_Signed_Decode (line 370) | void XMP_Signed_Decode(digit * result, const unsigned char * from, int f...
function XMP_Unsigned_Decode (line 420) | void XMP_Unsigned_Decode(digit * result, const unsigned char * from, int...
function XMP_Significance (line 465) | int XMP_Significance(const digit * number, int precision)
function XMP_Inc (line 494) | void XMP_Inc(digit * number, int precision)
function XMP_Dec (line 522) | void XMP_Dec(digit * number, int precision)
function XMP_Neg (line 551) | void XMP_Neg(digit * number, int precision)
function XMP_Abs (line 579) | void XMP_Abs(digit * number, int precision)
function XMP_Shift_Right_Bits (line 609) | void XMP_Shift_Right_Bits(digit * number, int bits, int precision)
function XMP_Shift_Left_Bits (line 695) | void XMP_Shift_Left_Bits(digit * number, int bits, int precision)
function XMP_Rotate_Left (line 782) | bool XMP_Rotate_Left(digit * number, bool carry, int precision)
function XMP_Not (line 814) | void XMP_Not(digit * number, int precision)
function XMP_Init (line 845) | void XMP_Init(digit * number, digit value, int precision)
function XMP_Count_Bits (line 872) | unsigned XMP_Count_Bits(const digit * number, int precision)
function XMP_Count_Bytes (line 909) | int XMP_Count_Bytes(const digit * number, int precision)
function XMP_Move (line 940) | void XMP_Move(digit * dest, digit const * source, int precision)
function XMP_Compare (line 967) | int XMP_Compare(const digit * left_number, const digit * right_number, i...
function XMP_Add (line 1006) | bool XMP_Add(digit * result, const digit * left_number, const digit * ri...
function XMP_Add_Int (line 1048) | bool XMP_Add_Int(digit * result, const digit * left_number, digit right_...
function XMP_Sub (line 1089) | bool XMP_Sub(digit * result, const digit * left_number, const digit * ri...
function XMP_Sub_Int (line 1132) | bool XMP_Sub_Int(digit * result, const digit * left_number, unsigned sho...
function XMP_Unsigned_Mult (line 1171) | int XMP_Unsigned_Mult(digit * prod, const digit * multiplicand, const di...
function XMP_Unsigned_Mult_Int (line 1226) | int XMP_Unsigned_Mult_Int(digit * prod, const digit * multiplicand, shor...
function XMP_Signed_Mult_Int (line 1266) | int XMP_Signed_Mult_Int(digit * prod, const digit * multiplicand, signed...
function XMP_Signed_Mult (line 1315) | int XMP_Signed_Mult(digit * prod, const digit * multiplicand, const digi...
function XMP_Unsigned_Div_Int (line 1369) | unsigned short XMP_Unsigned_Div_Int(digit * quotient, digit const * divi...
function XMP_Unsigned_Div (line 1432) | int XMP_Unsigned_Div(digit * remainder, digit * quotient, digit const * ...
function XMP_Signed_Div (line 1496) | void XMP_Signed_Div(digit * remainder, digit * quotient, digit const * d...
function XMP_Inverse_A_Mod_B (line 1551) | void XMP_Inverse_A_Mod_B(digit * result, digit const * number, digit con...
function XMP_Reciprocal (line 1598) | int XMP_Reciprocal(digit * quotient, const digit * divisor, int precision)
function XMP_Decode_ASCII (line 1654) | void XMP_Decode_ASCII(char const * str, digit * mpn, int precision)
function XMP_Hybrid_Mul (line 1770) | void XMP_Hybrid_Mul(unsigned short * prod, unsigned short * multiplicand...
function XMP_Double_Mul (line 1807) | void XMP_Double_Mul(digit * prod, const digit * multiplicand, const digi...
function XMP_Prepare_Modulus (line 1864) | int XMP_Prepare_Modulus(const digit * n_modulus, int precision)
function XMP_Mod_Mult (line 1922) | int XMP_Mod_Mult(digit * prod, const digit * multiplicand, const digit *...
function XMP_Mod_Mult_Clear (line 2013) | void XMP_Mod_Mult_Clear(int precision)
function mp_quo_digit (line 2051) | unsigned short mp_quo_digit(unsigned short * dividend)
function xmp_exponent_mod (line 2084) | int xmp_exponent_mod(digit * expout, const digit * expin, const digit * ...
function memrev (line 2183) | void memrev(char * buffer, size_t length)
function XMP_Is_Small_Prime (line 2219) | bool XMP_Is_Small_Prime(const digit * candidate, int precision)
function XMP_Small_Divisors_Test (line 2252) | bool XMP_Small_Divisors_Test(const digit * candidate, int precision)
function XMP_Fermat_Test (line 2285) | bool XMP_Fermat_Test(const digit * candidate_prime, unsigned rounds, int...
function XMP_Rabin_Miller_Test (line 2330) | bool XMP_Rabin_Miller_Test(Straw & rng, digit const * w, int rounds, int...
function XMP_Randomize (line 2402) | void XMP_Randomize(digit * result, Straw & rng, int total_bits, int prec...
function XMP_Randomize (line 2440) | void XMP_Randomize(digit * result, Straw & rng, digit const * minval, di...
function XMP_Is_Prime (line 2473) | bool XMP_Is_Prime(digit const * prime, int precision)
FILE: CODE/MP.H
function XMP_Digits_To_Bits (line 130) | inline int XMP_Digits_To_Bits(int digits)
function XMP_Bits_To_Digits (line 136) | inline int XMP_Bits_To_Digits(int bits)
function digit (line 142) | inline digit XMP_Bits_To_Mask(int bits)
function XMP_Is_Negative (line 149) | inline bool XMP_Is_Negative(const digit * r, int precision)
function XMP_Test_Eq_Int (line 155) | inline bool XMP_Test_Eq_Int(digit const * r, int i, int p)
function XMP_Set_Bit (line 161) | inline void XMP_Set_Bit(digit * r, unsigned bit)
function XMP_Test_Bit (line 166) | inline bool XMP_Test_Bit(const digit * r, unsigned bit)
FILE: CODE/MPGSET.CPP
function EnumMCI (line 569) | bool EnumMCI(MCIDevice* desc, void* context)
FILE: CODE/MPGSET.H
function class (line 28) | class MPGSettings
FILE: CODE/MPLAYER.CPP
function GameType (line 68) | GameType Select_MPlayer_Game (void)
function Clear_Listbox (line 461) | void Clear_Listbox(ListClass * list)
function Clear_Vector (line 493) | void Clear_Vector(DynamicVectorClass <NodeNameType *> * vector)
function Computer_Message (line 523) | void Computer_Message(void)
function Garble_Message (line 595) | static void Garble_Message(char * buf)
function Surrender_Dialog (line 684) | int Surrender_Dialog(int text)
function Surrender_Dialog (line 693) | int Surrender_Dialog(int text)
function Abort_Dialog (line 892) | int Abort_Dialog(void)
function Read_TEN_Game_Options (line 1087) | int Read_TEN_Game_Options(void)
function Read_MPATH_Game_Options (line 1180) | int Read_MPATH_Game_Options(void)
FILE: CODE/MPLIB.CPP
function Yield (line 32) | void
function PostWindowsMessage (line 41) | void
function MGenGetQueueCtr (line 52) | int MGenGetQueueCtr(int qNo)
function RTQ_NODE (line 63) | RTQ_NODE *MGenMoveTo(int qFrom, int qTo)
function RTQ_NODE (line 75) | RTQ_NODE *MGenGetNode(int q)
function RTQ_NODE (line 86) | RTQ_NODE *MGenGetMasterNode(unsigned *size)
function MGenFlushNodes (line 97) | int MGenFlushNodes(int qFrom, int qTo)
function MGenMCount (line 109) | int MGenMCount(unsigned lowerOrderBits, unsigned upperOrderBits)
function MGenSanityCheck (line 121) | int MGenSanityCheck(void)
FILE: CODE/MPLPC.CPP
function SetLPCData (line 34) | void
function GetGameDef (line 42) | void
function LPCGetMPAddr (line 80) | int
function NullLPC (line 109) | void
FILE: CODE/MPMGRD.H
function class (line 28) | class MPlayerManClass : public ConnManClass {
FILE: CODE/MPMGRW.CPP
function FARPROC (line 82) | FARPROC MPGetProcAddress(HMODULE hModule, LPCSTR lpProcName) {
FILE: CODE/MPMGRW.H
function class (line 30) | class MPlayerManClass : public ConnManClass {
FILE: CODE/MPU.CPP
function Get_CPU_Clock (line 42) | unsigned long __cdecl Get_CPU_Clock(unsigned long & high)
FILE: CODE/MSGBOX.H
function class (line 43) | class WWMessageBox
FILE: CODE/MSGLIST.CPP
function TextLabelClass (line 324) | TextLabelClass * MessageListClass::Add_Message(char const * name, int id...
function TextLabelClass (line 520) | TextLabelClass * MessageListClass::Get_Label(int id)
function TextLabelClass (line 737) | TextLabelClass * MessageListClass::Add_Edit(PlayerColorType color,
FILE: CODE/MSGLIST.H
function class (line 112) | class MessageListClass {
FILE: CODE/NETDLG.CPP
function Init_Network (line 952) | bool Init_Network (void)
function Shutdown_Network (line 998) | void Shutdown_Network (void)
function Process_Global_Packet (line 1079) | bool Process_Global_Packet(GlobalPacketType *packet, IPXAddressClass *ad...
function Destroy_Connection (line 1160) | void Destroy_Connection(int id, int error)
function Remote_Connect (line 1246) | bool Remote_Connect(void)
function Request_To_Join (line 3035) | static int Request_To_Join (char *playername, int join_index,
function Unjoin_Game (line 3130) | static void Unjoin_Game(char *namebuf,JoinStateType joinstate,
function Send_Join_Queries (line 3229) | static void Send_Join_Queries(int curgame, JoinStateType joinstate,
function JoinEventType (line 3373) | static JoinEventType Get_Join_Responses(JoinStateType *joinstate, ListCl...
function JoinEventType (line 5220) | static JoinEventType Get_NewGame_Responses(ColorListClass *playerlist,
function Compute_Name_CRC (line 5528) | unsigned long Compute_Name_CRC(char *name)
function Net_Reconnect_Dialog (line 5565) | void Net_Reconnect_Dialog(int reconn, int fresh, int oldest_index,
type WWPerson (line 5707) | struct WWPerson {
type WWPerson (line 5714) | struct WWPerson
function Start_WWChat (line 5859) | void Start_WWChat(ColorListClass *playerlist)
function Update_WWChat (line 5928) | int Update_WWChat(void)
function Start_Logging (line 5975) | void Start_Logging(void)
function Log_Message (line 6059) | void Log_Message(char *msg)
function Server_Remote_Connect (line 7731) | bool Server_Remote_Connect(void)
function Client_Remote_Connect (line 7777) | bool Client_Remote_Connect(void)
FILE: CODE/NOSEQCON.H
function class (line 62) | class NonSequencedConnClass : public ConnectionClass
FILE: CODE/NULLCONN.H
type SerialHeaderType (line 62) | typedef struct {
type SerialCRCType (line 68) | typedef struct {
function class (line 76) | class NullModemConnClass : public ConnectionClass
FILE: CODE/NULLDLG.CPP
function Init_Null_Modem (line 139) | int Init_Null_Modem( SerialSettingsType *settings )
function Shutdown_Modem (line 182) | void Shutdown_Modem( void )
function Modem_Signoff (line 214) | void Modem_Signoff( void )
function Test_Null_Modem (line 252) | int Test_Null_Modem( void )
function Reconnect_Modem (line 537) | int Reconnect_Modem( void )
function Reconnect_Null_Modem (line 587) | static int Reconnect_Null_Modem( void )
function Destroy_Null_Connection (line 784) | void Destroy_Null_Connection(int id, int error)
function GameType (line 879) | GameType Select_Serial_Dialog( void )
function Advanced_Modem_Settings (line 1333) | Advanced_Modem_Settings (SerialSettingsType *settings)
function Com_Settings_Dialog (line 1620) | static int Com_Settings_Dialog( SerialSettingsType *settings )
function Build_Init_String_Listbox (line 2812) | static void Build_Init_String_Listbox (ListClass *list, EditClass *edit,...
function Init_String_Compare (line 2881) | static int Init_String_Compare (const void *p1, const void *p2)
function Find_Local_Scenario (line 4661) | bool Find_Local_Scenario (char *description, char *filename, unsigned in...
function Build_Phone_Listbox (line 6768) | static void Build_Phone_Listbox (ListClass *list, EditClass *edit, char ...
function Phone_Compare (line 6861) | static int Phone_Compare (const void *p1, const void *p2)
function Edit_Phone_Dialog (line 6896) | static int Edit_Phone_Dialog (PhoneEntryClass *phone)
function Dial_Modem (line 7174) | static bool Dial_Modem( SerialSettingsType *settings, bool reconnect )
function Answer_Modem (line 7363) | static bool Answer_Modem( SerialSettingsType *settings, bool reconnect )
function Modem_Echo (line 7532) | static void Modem_Echo( char c )
function Smart_Printf (line 7543) | void Smart_Printf( char *format, ... )
function Hex_Dump_Data (line 7570) | void Hex_Dump_Data( char *buffer, int length )
function itoh (line 7654) | void itoh( int i, char *s)
function Log_Start_Time (line 7680) | void Log_Start_Time( char *string )
function Log_End_Time (line 7691) | void Log_End_Time( char *string )
function Log_Time (line 7722) | void Log_Time( char *string )
function Log_Start_Nest_Time (line 7753) | void Log_Start_Nest_Time( char *string )
function Log_End_Nest_Time (line 7790) | void Log_End_Nest_Time( char *string )
FILE: CODE/NULLMGR.CPP
function DetectPortType (line 561) | DetectPortType NullModemClass::Detect_Port( SerialSettingsType *settings )
function DialStatusType (line 1674) | DialStatusType NullModemClass::Dial_Modem( char *string, DialMethodType ...
function DialStatusType (line 1866) | DialStatusType NullModemClass::Answer_Modem( bool reconnect )
FILE: CODE/NULLMGR.H
function class (line 54) | class NullModemClass : public ConnManClass
function virtual (line 121) | virtual int Get_Private_Message (void *buf, int *buflen, int *)
function virtual (line 148) | virtual int Global_Num_Send(void) {return (Num_Send());}
function virtual (line 149) | virtual int Global_Num_Receive(void) {return (Num_Receive());}
FILE: CODE/NUMBER.CPP
function Power_Mod (line 28) | unsigned long Power_Mod(unsigned long root, unsigned long exponent, unsi...
function Greatest_Common_Divisor (line 49) | int Greatest_Common_Divisor(int x, int y)
function Grestest_Common_Divisor (line 76) | int Grestest_Common_Divisor(int count, int * data)
FILE: CODE/OBJECT.CPP
function COORDINATE (line 207) | COORDINATE ObjectClass::Exit_Coord(void) const
function ActionType (line 291) | ActionType ObjectClass::What_Action(ObjectClass const *) const
function ActionType (line 319) | ActionType ObjectClass::What_Action(CELL) const
function LayerType (line 343) | LayerType ObjectClass::In_Which_Layer(void) const
function COORDINATE (line 493) | COORDINATE ObjectClass::Target_Coord(void) const
function COORDINATE (line 519) | COORDINATE ObjectClass::Center_Coord(void) const
function COORDINATE (line 544) | COORDINATE ObjectClass::Render_Coord(void) const
function COORDINATE (line 569) | COORDINATE ObjectClass::Docking_Coord(void) const
function COORDINATE (line 595) | COORDINATE ObjectClass::Sort_Y(void) const
function COORDINATE (line 622) | COORDINATE ObjectClass::Fire_Coord(int ) const
function MissionType (line 996) | MissionType ObjectClass::Get_Mission(void) const
function RadioMessageType (line 1504) | RadioMessageType ObjectClass::Receive_Message(RadioClass *, RadioMessage...
function ResultType (line 1559) | ResultType ObjectClass::Take_Damage(int & damage, int distance, WarheadT...
FILE: CODE/OBJECT.H
function class (line 58) | class ObjectClass : public AbstractClass
function operator (line 135) | int operator < (ObjectClass const & object) const {return Sort_Y() < obj...
function operator (line 136) | int operator > (ObjectClass const & object) const {return Sort_Y() > obj...
function virtual (line 146) | virtual bool Is_Players_Army(void) const {return(false);}
function virtual (line 150) | virtual LayerType In_Which_Layer(void) const;
function Is_Foot (line 152) | bool Is_Foot(void) const {return(RTTI == RTTI_INFANTRY || RTTI == RTTI_U...
function Is_Techno (line 153) | bool Is_Techno(void) const {return(RTTI == RTTI_BUILDING || RTTI == RTTI...
function virtual (line 230) | virtual void Per_Cell_Process(PCPType) {}
FILE: CODE/ODATA.CPP
function OverlayType (line 674) | OverlayType OverlayTypeClass::From_Name(char const * name)
function ObjectClass (line 843) | ObjectClass * OverlayTypeClass::Create_One_Of(HouseClass *) const
function OverlayTypeClass (line 929) | OverlayTypeClass & OverlayTypeClass::As_Reference(OverlayType type)
function COORDINATE (line 951) | COORDINATE OverlayTypeClass::Coord_Fixup(COORDINATE coord) const
FILE: CODE/OPTIONS.CPP
function fixed (line 341) | fixed OptionsClass::Get_Brightness(void) const
function fixed (line 386) | fixed OptionsClass::Get_Saturation(void) const
function fixed (line 430) | fixed OptionsClass::Get_Contrast(void) const
function fixed (line 473) | fixed OptionsClass::Get_Tint(void) const
FILE: CODE/OPTIONS.H
function class (line 41) | class OptionsClass {
FILE: CODE/OVERLAY.H
function class (line 49) | class OverlayClass : public ObjectClass
function operator (line 66) | operator OverlayType(void) const {return Class->Type;}
function virtual (line 83) | virtual ObjectTypeClass const & Class_Of(void) const {return *Class;}
function virtual (line 84) | virtual void Draw_It(int , int , WindowNumberType ) const {}
FILE: CODE/PACKET.CPP
function FieldClass (line 263) | FieldClass *PacketClass::Find_Field(char *id)
FILE: CODE/PACKET.H
function class (line 47) | class PacketClass {
function Add_Field (line 68) | void Add_Field(char *field, char data) {Add_Field(new FieldClass(field, ...
function Add_Field (line 69) | void Add_Field(char *field, unsigned char data) {Add_Field(new FieldClas...
function Add_Field (line 70) | void Add_Field(char *field, short data) {Add_Field(new FieldClass(field,...
function Add_Field (line 71) | void Add_Field(char *field, unsigned short data) {Add_Field(new FieldCla...
function Add_Field (line 72) | void Add_Field(char *field, long data) {Add_Field(new FieldClass(field, ...
function Add_Field (line 73) | void Add_Field(char *field, unsigned long data) {Add_Field(new FieldClas...
function Add_Field (line 74) | void Add_Field(char *field, char *data) {Add_Field(new FieldClass(field,...
function Add_Field (line 75) | void Add_Field(char *field, void *data, int length) {Add_Field(new Field...
FILE: CODE/PIPE.H
function class (line 65) | class Pipe
FILE: CODE/PK.H
function class (line 56) | class PKey
FILE: CODE/PKPIPE.H
function class (line 52) | class PKPipe : public Pipe
FILE: CODE/PKSTRAW.H
function class (line 47) | class PKStraw : public Straw
FILE: CODE/POWER.H
function class (line 43) | class PowerClass : public RadarClass
FILE: CODE/PROFILE.CPP
function Read_Private_Config_Struct (line 64) | bool Read_Private_Config_Struct(FileClass & file, NewConfigType * config)
function WWGetPrivateProfileHex (line 103) | unsigned WWGetPrivateProfileHex (char const * section, char const * entr...
function WWGetPrivateProfileInt (line 144) | int WWGetPrivateProfileInt(char const * section, char const * entry, int...
function WWWritePrivateProfileInt (line 186) | bool WWWritePrivateProfileInt(char const * section, char const * entry, ...
function WWWritePrivateProfileString (line 550) | bool WWWritePrivateProfileString(char const * section, char const * entr...
function Read_Bin_Init (line 693) | bool Read_Bin_Init( char * buffer, int length )
function Read_Bin_Length (line 703) | int Read_Bin_Length( char * buffer )
function Read_Bin_Num (line 713) | bool Read_Bin_Num( void * num, int length, char * buffer )
function Read_Bin_Pos (line 734) | int Read_Bin_Pos( char * buffer )
function Read_Bin_PosSet (line 744) | int Read_Bin_PosSet( unsigned int pos, char * buffer )
function Read_Bin_String (line 755) | bool Read_Bin_String( char * string, char * buffer )
function Write_Bin_Init (line 788) | bool Write_Bin_Init( char * buffer, int length )
function Write_Bin_Length (line 798) | int Write_Bin_Length( char * buffer )
function Write_Bin_Num (line 808) | bool Write_Bin_Num( void * num, int length, char * buffer )
function Write_Bin_Pos (line 829) | int Write_Bin_Pos( char * buffer )
function Write_Bin_PosSet (line 839) | int Write_Bin_PosSet( unsigned int pos, char * buffer )
function Write_Bin_String (line 850) | bool Write_Bin_String( char * string, int length, char * buffer )
FILE: CODE/QUEUE.CPP
type RetcodeEnum (line 131) | enum RetcodeEnum {
function Queue_Mission (line 241) | bool Queue_Mission(TargetClass whom, MissionType mission, TARGET target,...
function Queue_Mission (line 276) | bool Queue_Mission(TargetClass whom, MissionType mission, TARGET target,...
function Queue_Options (line 301) | bool Queue_Options(void)
function Queue_Exit (line 328) | bool Queue_Exit(void)
function Queue_AI (line 355) | void Queue_AI(void)
function Queue_AI_Normal (line 406) | static void Queue_AI_Normal(void)
function Queue_AI_Multiplayer (line 554) | static void Queue_AI_Multiplayer(void)
function Generate_Timing_Event (line 1293) | static void Generate_Timing_Event(ConnManClass *net, int my_sent)
function Generate_Real_Timing_Event (line 1377) | static void Generate_Real_Timing_Event(ConnManClass *net, int my_sent)
function Generate_Process_Time_Event (line 1495) | static void Generate_Process_Time_Event(ConnManClass *net)
function Process_Send_Period (line 1557) | static int Process_Send_Period(ConnManClass *net) //, int init)
function Send_Packets (line 1607) | static int Send_Packets(ConnManClass *net, char *multi_packet_buf,
function Send_FrameSync (line 1735) | static void Send_FrameSync(ConnManClass *net, int cmd_count)
function RetcodeType (line 1805) | static RetcodeType Process_Receive_Packet(ConnManClass *net,
function RetcodeType (line 1954) | static RetcodeType Process_Serial_Packet(char *multi_packet_buf,
function Can_Advance (line 2090) | static int Can_Advance(ConnManClass *net, int max_ahead, long *their_frame,
function Process_Reconnect_Dialog (line 2159) | static int Process_Reconnect_Dialog(CDTimerClass<SystemTimerClass> *time...
function Handle_Timeout (line 2238) | static int Handle_Timeout(ConnManClass *net, long *their_frame,
function Stop_Game (line 2342) | static void Stop_Game(void)
function Build_Send_Packet (line 2390) | static int Build_Send_Packet(void *buf, int bufsize, int frame_delay,
function Add_Uncompressed_Events (line 2491) | static int Add_Uncompressed_Events(void *buf, int bufsize, int frame_delay,
function Add_Compressed_Events (line 2587) | static int Add_Compressed_Events(void *buf, int bufsize, int frame_delay,
function Breakup_Receive_Packet (line 2901) | static int Breakup_Receive_Packet(void *buf, int bufsize )
function Extract_Uncompressed_Events (line 2939) | static int Extract_Uncompressed_Events(void *buf, int bufsize)
function Extract_Compressed_Events (line 3019) | static int Extract_Compressed_Events(void *buf, int bufsize)
function Execute_DoList (line 3240) | static int Execute_DoList(int max_houses, HousesType base_house,
function Clean_DoList (line 3554) | static void Clean_DoList(ConnManClass *net)
function Queue_Record (line 3602) | static void Queue_Record(void)
function Queue_Playback (line 3652) | static void Queue_Playback(void)
function Compute_Game_CRC (line 3793) | static void Compute_Game_CRC(void)
function Add_CRC (line 3895) | void Add_CRC(unsigned long *crc, unsigned long val)
function Print_CRCs (line 3927) | static void Print_CRCs(EventClass *ev)
function Init_Queue_Mono (line 4244) | static void Init_Queue_Mono(ConnManClass *net)
function Update_Queue_Mono (line 4323) | static void Update_Queue_Mono(ConnManClass *net, int flow_index)
function Print_Framesync_Values (line 4373) | static void Print_Framesync_Values(long curframe, unsigned long max_ahead,
function Dump_Packet_Too_Late_Stuff (line 4426) | void Dump_Packet_Too_Late_Stuff(EventClass *event, ConnManClass *net,
function Check_Mirror (line 4485) | void Check_Mirror(void)
FILE: CODE/RADAR.CPP
function CELL (line 1224) | CELL RadarClass::Click_Cell_Calc(int x, int y) const
function CELL (line 2146) | CELL RadarClass::Radar_Position(void)
FILE: CODE/RADAR.H
function class (line 43) | class RadarClass: public DisplayClass
FILE: CODE/RADIO.CPP
function RadioMessageType (line 142) | RadioMessageType RadioClass::Receive_Message(RadioClass * from, RadioMes...
function RadioMessageType (line 204) | RadioMessageType RadioClass::Transmit_Message(RadioMessageType message, ...
function RadioMessageType (line 288) | RadioMessageType RadioClass::Transmit_Message(RadioMessageType message, ...
FILE: CODE/RADIO.H
function class (line 53) | class RadioClass : public MissionClass {
function In_Radio_Contact (line 87) | bool In_Radio_Contact(void) const {return (Radio != 0);}
function Radio_Off (line 88) | void Radio_Off(void) {Radio = 0;}
function TechnoClass (line 89) | TechnoClass * Contact_With_Whom(void) const {return (TechnoClass *)Radio;}
FILE: CODE/RAMFILE.H
function class (line 45) | class RAMFileClass : public FileClass
FILE: CODE/RAND.CPP
function Sim_Random (line 58) | int Sim_Random(void)
function Sim_IRandom (line 107) | int Sim_IRandom(int minval, int maxval)
function main (line 125) | void main(void)
FILE: CODE/RANDOM.H
function class (line 55) | class RandomClass {
FILE: CODE/RAWFILE.H
function HANDLE_TYPE (line 171) | HANDLE_TYPE Get_File_Handle(void) { return (Handle); }
function RawFileClass (line 300) | inline RawFileClass::~RawFileClass(void)
function Is_Open (line 326) | inline int RawFileClass::Is_Open(void) const
FILE: CODE/RAWOLAPI.CPP
function HRESULT (line 81) | HRESULT __stdcall
function ULONG (line 101) | ULONG __stdcall
function ULONG (line 111) | ULONG __stdcall
function STDMETHODIMP (line 125) | STDMETHODIMP RAChatEventSink::OnServerList( HRESULT hRes, Server* pServe...
function STDMETHODIMP (line 192) | STDMETHODIMP RAChatEventSink::OnPageSend( HRESULT hRes )
function STDMETHODIMP (line 207) | STDMETHODIMP RAChatEventSink::OnPaged( HRESULT, User* pUser, LPCSTR szMe...
function STDMETHODIMP (line 231) | STDMETHODIMP RAChatEventSink::OnFind( HRESULT hRes, Channel* pChannel )
function STDMETHODIMP (line 249) | STDMETHODIMP RAChatEventSink::OnLogout( HRESULT hRes, User* pUser )
function STDMETHODIMP (line 266) | STDMETHODIMP RAChatEventSink::OnBusy(HRESULT)
function STDMETHODIMP (line 272) | STDMETHODIMP RAChatEventSink::OnIdle(HRESULT)
function STDMETHODIMP (line 278) | STDMETHODIMP RAChatEventSink::OnConnection( HRESULT hRes, LPCSTR motd )
function STDMETHODIMP (line 343) | STDMETHODIMP RAChatEventSink::OnChannelCreate( HRESULT hRes, Channel* )
function STDMETHODIMP (line 363) | STDMETHODIMP RAChatEventSink::OnChannelModify(HRESULT, Channel *)
function STDMETHODIMP (line 369) | STDMETHODIMP RAChatEventSink::OnChannelJoin( HRESULT hRes, Channel* /*pC...
function STDMETHODIMP (line 517) | STDMETHODIMP RAChatEventSink::OnChannelLeave( HRESULT hRes, Channel*, Us...
function STDMETHODIMP (line 616) | STDMETHODIMP RAChatEventSink::OnChannelTopic(HRESULT, Channel *, LPCSTR)
function STDMETHODIMP (line 622) | STDMETHODIMP RAChatEventSink::OnGroupList(HRESULT, Group *)
function STDMETHODIMP (line 628) | STDMETHODIMP RAChatEventSink::OnPublicMessage( HRESULT, Channel*, User* ...
function STDMETHODIMP (line 657) | STDMETHODIMP RAChatEventSink::OnPrivateMessage( HRESULT, User* pUserSend...
function STDMETHODIMP (line 737) | STDMETHODIMP RAChatEventSink::OnSystemMessage(HRESULT, LPCSTR)
function STDMETHODIMP (line 743) | STDMETHODIMP RAChatEventSink::OnNetStatus( HRESULT hRes )
function STDMETHODIMP (line 786) | STDMETHODIMP RAChatEventSink::OnChannelList( HRESULT, Channel* pChannelL...
function STDMETHODIMP (line 903) | STDMETHODIMP RAChatEventSink::OnUserList(HRESULT, Channel*, User* pUserL...
function STDMETHODIMP (line 953) | STDMETHODIMP RAChatEventSink::OnUpdateList( HRESULT hRes, Update* pUpdat...
function STDMETHODIMP (line 1072) | STDMETHODIMP RAChatEventSink::OnServerError( HRESULT hRes )
function STDMETHODIMP (line 1080) | STDMETHODIMP RAChatEventSink::OnMessageOfTheDay(HRESULT, LPCSTR)
function STDMETHODIMP (line 1194) | STDMETHODIMP RAChatEventSink::OnPrivateAction( HRESULT, User* pUserSende...
function STDMETHODIMP (line 1214) | STDMETHODIMP RAChatEventSink::OnPublicAction( HRESULT, Channel*, User* p...
function STDMETHODIMP (line 1230) | STDMETHODIMP RAChatEventSink::OnPrivateGameOptions( HRESULT, User* pUser...
function STDMETHODIMP (line 1252) | STDMETHODIMP RAChatEventSink::OnPublicGameOptions( HRESULT, Channel*, Us...
function STDMETHODIMP (line 1270) | STDMETHODIMP RAChatEventSink::OnGameStart( HRESULT hRes, Channel*, User*...
function STDMETHODIMP (line 1340) | STDMETHODIMP RAChatEventSink::OnUserKick( HRESULT hRes, Channel*, User* ...
function STDMETHODIMP (line 1396) | STDMETHODIMP RAChatEventSink::OnUserIP( HRESULT hRes, User* pUser )
function STDMETHODIMP (line 1474) | STDMETHODIMP RAChatEventSink::OnServerError(HRESULT , LPCSTR )
function STDMETHODIMP (line 1480) | STDMETHODIMP RAChatEventSink::OnServerBannedYou(HRESULT , time_t )
function STDMETHODIMP (line 1486) | STDMETHODIMP RAChatEventSink::OnUserFlags( HRESULT hRes, LPCSTR name, un...
function STDMETHODIMP (line 1548) | STDMETHODIMP RAChatEventSink::OnChannelBan( HRESULT , LPCSTR name, int b...
function HRESULT (line 1578) | HRESULT __stdcall
function ULONG (line 1597) | ULONG __stdcall
function ULONG (line 1606) | ULONG __stdcall
function STDMETHODIMP (line 1619) | STDMETHODIMP RADownloadEventSink::OnEnd(void)
function STDMETHODIMP (line 1627) | STDMETHODIMP RADownloadEventSink::OnError( int /*iCode*/ )
function STDMETHODIMP (line 1643) | STDMETHODIMP RADownloadEventSink::OnProgressUpdate( int bytesread, int t...
function STDMETHODIMP (line 1657) | STDMETHODIMP RADownloadEventSink::OnStatusUpdate( int status )
function STDMETHODIMP (line 1670) | STDMETHODIMP RADownloadEventSink::OnQueryResume()
function HRESULT (line 1704) | HRESULT __stdcall
function ULONG (line 1724) | ULONG __stdcall
function ULONG (line 1734) | ULONG __stdcall
function STDMETHODIMP (line 1747) | STDMETHODIMP RANetUtilEventSink::OnGameresSent( HRESULT hRes )
function STDMETHODIMP (line 1755) | STDMETHODIMP RANetUtilEventSink::OnLadderList( HRESULT hRes, Ladder* pLa...
function STDMETHODIMP (line 1827) | STDMETHODIMP RANetUtilEventSink::OnPing( HRESULT hRes, int time, unsigne...
function ChatDefAsText (line 1900) | void ChatDefAsText( char* szDesc, HRESULT hRes )
function DebugChatDef (line 2032) | void DebugChatDef( HRESULT hRes )
function iChannelLobbyNumber (line 2040) | int iChannelLobbyNumber( const unsigned char* szChannelName )
function InterpretLobbyNumber (line 2055) | void InterpretLobbyNumber( char* szLobbyNameToSet, int iLobby )
FILE: CODE/RAWOLAPI.H
type CHANNELFILTER (line 74) | enum CHANNELFILTER
type DISCONNECT_PING_STATUS (line 101) | enum DISCONNECT_PING_STATUS
function class (line 111) | class RAChatEventSink : /////public CComObjectRoot, /////public IConnect...
function class (line 236) | class RADownloadEventSink :
function class (line 278) | class RANetUtilEventSink :
FILE: CODE/READLINE.CPP
function strtrim (line 31) | void strtrim(char * buffer)
function Read_Line (line 61) | int Read_Line(FileClass & file, char * buffer, int len, bool & eof)
function Read_Line (line 67) | int Read_Line(Straw & file, char * buffer, int len, bool & eof)
FILE: CODE/RECT.CPP
function Rect (line 115) | Rect const Rect::Intersect(Rect const & rectangle, int * x, int * y) const
function Rect (line 175) | Rect const Union(Rect const & rect1, Rect const & rect2)
FILE: CODE/RECT.H
function class (line 57) | class Rect
FILE: CODE/REGION.H
function class (line 42) | class RegionClass {
function operator (line 46) | int operator != (RegionClass const & region) {return memcmp(this, ®io...
function operator (line 47) | int operator == (RegionClass const & region) {return !memcmp(this, ®i...
function operator (line 48) | int operator > (RegionClass const & region) {return memcmp(this, ®ion...
function operator (line 49) | int operator < (RegionClass const & region) {return memcmp(this, ®ion...
function Reset_Threat (line 51) | void Reset_Threat(void) {Threat = 0;}
function Adjust_Threat (line 52) | void Adjust_Threat(int threat, int neg) {if (neg) Threat -= threat; else...
function Threat_Value (line 53) | int Threat_Value(void) const {return Threat;}
FILE: CODE/REINF.CPP
function _Pop_Group_Out_Of_Object (line 65) | static bool _Pop_Group_Out_Of_Object(FootClass * group, TechnoClass * ob...
function _Need_To_Take (line 129) | bool _Need_To_Take(AircraftClass const * air)
function FootClass (line 167) | static FootClass * _Create_Group(TeamTypeClass const * teamtype)
function _Consists_Only_Of_Infantry (line 297) | static bool _Consists_Only_Of_Infantry(FootClass const * first)
function TechnoClass (line 327) | static TechnoClass * _Who_Can_Pop_Out_Of(CELL origin)
function Do_Reinforcements (line 372) | bool Do_Reinforcements(TeamTypeClass const * teamtype)
function Create_Special_Reinforcement (line 559) | bool Create_Special_Reinforcement(HouseClass * house, TechnoTypeClass co...
function Create_Air_Reinforcement (line 639) | int Create_Air_Reinforcement(HouseClass * house, AircraftType air, int n...
FILE: CODE/RGB.H
function class (line 79) | class RGBClass
function Red_Component (line 107) | int Red_Component(void) const {return ((Red << 2) | (Red >> 6));}
function Green_Component (line 108) | int Green_Component(void) const {return((Green << 2) | (Green >> 6));}
function Blue_Component (line 109) | int Blue_Component(void) const {return((Blue << 2) | (Blue >> 6));}
function Raw_Set (line 116) | void Raw_Set(void) const {
function Raw_Color_Prep (line 123) | static void Raw_Color_Prep(unsigned char color) {
FILE: CODE/RNDSTRAW.H
function class (line 50) | class RandomStraw : public Straw
FILE: CODE/RNG.H
function class (line 45) | class RandomNumberGenerator {
FILE: CODE/ROTBMP.CPP
type WPPOINT (line 48) | struct WPPOINT {
function Rotate_Bitmap (line 68) | Rotate_Bitmap(GraphicViewPortClass * srcvp, GraphicViewPortClass * destv...
FILE: CODE/ROTBMP.H
function class (line 25) | class BitmapClass
function class (line 36) | class TPoint2D
FILE: CODE/RULES.CPP
function _Scale_To_256 (line 74) | static inline int _Scale_To_256(int val)
function Difficulty_Get (line 313) | static void Difficulty_Get(CCINIClass & ini, DifficultyClass & diff, cha...
FILE: CODE/RULES.H
function class (line 44) | class DifficultyClass
function class (line 63) | class RulesClass {
FILE: CODE/SAVEDLG.H
function class (line 43) | class SaveOptionsClass
FILE: CODE/SAVELOAD.CPP
function Put_All (line 128) | static void Put_All(Pipe & pipe, int save_net)
function Save_Game (line 318) | bool Save_Game(int id, char const * descr, bool )
function Load_Game (line 462) | bool Load_Game(int id)
function Save_Misc_Values (line 1001) | bool Save_Misc_Values(Pipe & file)
function Load_Misc_Values (line 1061) | bool Load_Misc_Values(Straw & file)
function Save_MPlayer_Values (line 1131) | bool Save_MPlayer_Values(Pipe & file)
function Load_MPlayer_Values (line 1160) | bool Load_MPlayer_Values(Straw & file)
function Code_All_Pointers (line 1186) | void Code_All_Pointers(void)
function Decode_All_Pointers (line 1265) | void Decode_All_Pointers(void)
function Reconcile_Players (line 1448) | static int Reconcile_Players(void)
FILE: CODE/SCENARIO.CPP
function Start_Scenario (line 308) | bool Start_Scenario(char * name, bool briefing)
function Fill_In_Data (line 519) | void Fill_In_Data(void)
function Post_Load_Game (line 662) | void Post_Load_Game(int load_multi)
function Clear_Scenario (line 695) | void Clear_Scenario(void)
function Do_Lose (line 1075) | void Do_Lose(void)
function Do_Draw (line 1164) | void Do_Draw(void)
function Do_Restart (line 1228) | void Do_Restart(void)
function Restate_Mission (line 1281) | bool Restate_Mission(char const * name, int button1, int button2)
function BGMessageBox (line 1318) | bool BGMessageBox(char const * msg, int btn1, int btn2)
function Write_Scenario_INI (line 2450) | void Write_Scenario_INI(char * fname)
function Assign_Houses (line 2542) | void Assign_Houses(void)
function Remove_AI_Players (line 2704) | static void Remove_AI_Players(void)
function Create_Units (line 2745) | static void Create_Units(bool official)
function Scan_Place_Object (line 3153) | int Scan_Place_Object(ObjectClass * obj, CELL cell)
function CELL (line 3266) | static CELL Clip_Scatter(CELL cell, int maxdist)
function CELL (line 3341) | static CELL Clip_Move(CELL cell, FacingType facing, int dist)
function Disect_Scenario_Name (line 3419) | void Disect_Scenario_Name(char const * name, int & scenario, ScenarioPla...
FILE: CODE/SCENARIO.H
function class (line 49) | class ScenarioClass {
FILE: CODE/SCORE.CPP
type InfantryAnim (line 79) | struct InfantryAnim {
type Fame (line 117) | struct Fame {
function Alloc_Object (line 322) | int Alloc_Object(ScoreAnimClass *obj)
type Fame (line 391) | struct Fame
type Fame (line 743) | struct Fame
type Fame (line 751) | struct Fame
type Fame (line 819) | struct Fame
function Cycle_Wait_Click (line 873) | void Cycle_Wait_Click(bool cycle)
function Animate_Cursor (line 1487) | void Animate_Cursor(int pos, int ypos)
function Draw_InfantryMen (line 1533) | void Draw_InfantryMen()
function Draw_InfantryMan (line 1569) | void Draw_InfantryMan(int index)
function New_Infantry_Anim (line 1620) | void New_Infantry_Anim(int index, int anim)
function Draw_Bar_Graphs (line 1648) | void Draw_Bar_Graphs(int i, int gkilled, int nkilled)
function Call_Back_Delay (line 1700) | void Call_Back_Delay(int time)
function Animate_Score_Objs (line 1728) | void Animate_Score_Objs()
function Multi_Score_Presentation (line 1772) | void Multi_Score_Presentation(void)
FILE: CODE/SCORE.H
function class (line 44) | class ScoreClass {
function class (line 88) | class ScoreAnimClass {
function class (line 99) | class ScoreCredsClass : public ScoreAnimClass {
function class (line 112) | class ScoreTimeClass : public ScoreAnimClass {
function class (line 122) | class ScorePrintClass : public ScoreAnimClass {
function class (line 133) | class ScoreScaleClass : public ScoreAnimClass {
FILE: CODE/SCREEN.H
function class (line 42) | class ScreenClass
FILE: CODE/SCROLL.H
function class (line 44) | class ScrollClass: public HelpClass
FILE: CODE/SDATA.CPP
function SmudgeType (line 322) | SmudgeType SmudgeTypeClass::From_Name(char const * name)
function ObjectClass (line 503) | ObjectClass * SmudgeTypeClass::Create_One_Of(HouseClass *) const
function SmudgeTypeClass (line 568) | SmudgeTypeClass & SmudgeTypeClass::As_Reference(SmudgeType type)
FILE: CODE/SEARCH.H
type NodeElement (line 129) | struct NodeElement {
FILE: CODE/SEDITDLG.H
function class (line 26) | class SimpleEditDlgClass
FILE: CODE/SEQCONN.H
function class (line 58) | class SequencedConnClass : public ConnectionClass
FILE: CODE/SESSION.CPP
function Is_Mission_Counterstrike (line 1192) | bool Is_Mission_Counterstrike (char *file_name)
function Is_Mission_Aftermath (line 1210) | bool Is_Mission_Aftermath (char *file_name)
function Is_Mission_126x126 (line 1236) | bool Is_Mission_126x126 (char *file_name) // This is no longer used. ajw
type find_t (line 1468) | struct find_t
type diskfree_t (line 1761) | struct diskfree_t
FILE: CODE/SESSION.H
type GameType (line 120) | typedef enum GameEnum {
type DetectPortType (line 134) | typedef enum DetectPortType {
type DialStatusType (line 140) | typedef enum DialStatusType {
type DialMethodType (line 149) | typedef enum DialMethodType {
type CallWaitStringType (line 155) | typedef enum CallWaitStringType {
type ModemGameType (line 163) | typedef enum ModemGameType {
type SerialCommandType (line 173) | typedef enum SerialCommandType {
type NetCommandType (line 193) | typedef enum NetCommandType {
type MPlayerScoreType (line 222) | typedef struct {
type SerialSettingsType (line 232) | typedef struct {
type NodeNameType (line 250) | typedef struct NodeNameTag {
type SerialPacketType (line 282) | typedef struct {
type RemoteFileTransferType (line 330) | typedef struct {
type GlobalPacketType (line 341) | typedef struct GlobalPacketType {
type TrapObjectType (line 403) | typedef struct {
function class (line 420) | class MultiMission
type GameOptionsType (line 446) | typedef struct {
function class (line 461) | class SessionClass
FILE: CODE/SHA.CPP
function T (line 246) | T _rotl(T X, int n)
FILE: CODE/SHA.H
function class (line 68) | class SHAEngine
FILE: CODE/SHAPEBTN.H
function class (line 43) | class ShapeButtonClass : public ToggleClass
FILE: CODE/SHAPIPE.H
function class (line 49) | class SHAPipe : public Pipe
FILE: CODE/SHASTRAW.H
function class (line 50) | class SHAStraw : public Straw
FILE: CODE/SIDEBAR.CPP
type ButtonNumberType (line 101) | enum ButtonNumberType {
FILE: CODE/SIDEBAR.H
function class (line 45) | class InitClass {}
function class (line 47) | class SidebarClass: public PowerClass
FILE: CODE/SLIDER.H
function class (line 59) | class SliderClass : public GaugeClass
FILE: CODE/SMUDGE.H
function class (line 51) | class SmudgeClass : public ObjectClass
FILE: CODE/SOUNDDLG.CPP
class MusicListClass (line 43) | class MusicListClass : public ListClass
method MusicListClass (line 46) | MusicListClass(int id, int x, int y, int w, int h) :
FILE: CODE/SOUNDDLG.H
function class (line 43) | class SoundControlsClass
FILE: CODE/SPECIAL.CPP
function Special_Dialog (line 103) | void Special_Dialog(bool simple)
class PWEditClass (line 229) | class PWEditClass : public EditClass
method PWEditClass (line 232) | PWEditClass(int id, char * text, int max_len, TextPrintType flags, int...
function Fetch_Difficulty (line 470) | int Fetch_Difficulty(void)
FILE: CODE/SPECIAL.H
function class (line 41) | class SpecialClass
FILE: CODE/SPRITE.CPP
class BitmapClass (line 32) | class BitmapClass
method BitmapClass (line 35) | BitmapClass(int w, int h, unsigned char * data) :
class TPoint2D (line 43) | class TPoint2D
method TPoint2D (line 46) | TPoint2D(int xx, int yy) : x(xx), y(yy) {}
method TPoint2D (line 47) | TPoint2D(void) : x(0), y(0) {}
FILE: CODE/STAGE.H
function class (line 41) | class StageClass {
FILE: CODE/STARTUP.CPP
function InitDDraw (line 703) | bool InitDDraw(void)
function Prog_End (line 843) | void __cdecl Prog_End(void)
function Prog_End (line 857) | void Prog_End(void)
function Print_Error_End_Exit (line 872) | void Print_Error_End_Exit(char * string)
function Print_Error_Exit (line 880) | void Print_Error_Exit(char * string)
function Emergency_Exit (line 906) | void Emergency_Exit ( int code )
function Read_Setup_Options (line 977) | void Read_Setup_Options( RawFileClass *config_file )
function Get_OS_Version (line 1045) | void Get_OS_Version (void)
FILE: CODE/STATBTN.H
function class (line 44) | class StaticButtonClass : public GadgetClass
FILE: CODE/STATS.CPP
type hostent (line 420) | struct hostent
type in_addr (line 429) | struct in_addr
function Register_Game_Start_Time (line 898) | void Register_Game_Start_Time(void)
function Register_Game_End_Time (line 905) | extern void Register_Game_End_Time(void)
FILE: CODE/STRAW.H
function class (line 64) | class Straw
FILE: CODE/STUB.CPP
function main (line 22) | void main(void)
FILE: CODE/SUPER.H
function class (line 43) | class SuperClass {
FILE: CODE/SURFACE.H
function class (line 53) | class Surface
FILE: CODE/TAB.H
function class (line 44) | class TabClass: public SidebarClass
FILE: CODE/TACTION.CPP
function TActionType (line 777) | TActionType Action_From_Name (char const * name)
function NeedType (line 829) | NeedType Action_Needs(TActionType action)
FILE: CODE/TACTION.H
type TActionType (line 42) | typedef enum TActionType {
type TActionClass (line 102) | struct TActionClass {
function class (line 137) | class ActionChoiceClass {
FILE: CODE/TARCOM.H
function class (line 49) | class TarComClass : public TurretClass
FILE: CODE/TARGET.CPP
function CellClass (line 98) | CellClass * xTargetClass::As_Cell(void) const
function TriggerClass (line 122) | TriggerClass * As_Trigger(TARGET target)
function TeamClass (line 143) | TeamClass * As_Team(TARGET target)
function TeamTypeClass (line 164) | TeamTypeClass * As_TeamType(TARGET target)
function AnimClass (line 185) | AnimClass * As_Animation(TARGET target)
function BulletClass (line 206) | BulletClass * As_Bullet(TARGET target)
function AircraftClass (line 227) | AircraftClass * As_Aircraft(TARGET target)
function TechnoClass (line 249) | TechnoClass * As_Techno(TARGET target)
function ObjectClass (line 276) | ObjectClass * As_Object(TARGET target)
function UnitClass (line 348) | UnitClass * As_Unit(TARGET target)
function VesselClass (line 370) | VesselClass * As_Vessel(TARGET target)
function InfantryClass (line 392) | InfantryClass * As_Infantry(TARGET target)
function BuildingClass (line 413) | BuildingClass * As_Building(TARGET target)
function Target_Legal (line 437) | bool Target_Legal(TARGET target)
function CELL (line 465) | CELL As_Cell(TARGET target)
function COORDINATE (line 487) | COORDINATE As_Coord(TARGET target)
function COORDINATE (line 539) | COORDINATE As_Movement_Coord(TARGET target)
function AbstractClass (line 583) | AbstractClass * xTargetClass::As_Abstract(void) const
function AbstractTypeClass (line 626) | AbstractTypeClass * xTargetClass::As_TypeClass(void) const
function TechnoClass (line 688) | TechnoClass * xTargetClass::As_Techno(void) const
function ObjectClass (line 713) | ObjectClass * xTargetClass::As_Object(void) const
function TARGET (line 769) | TARGET As_Target(CELL cell)
function TARGET (line 798) | TARGET As_Target(COORDINATE coord)
function TechnoTypeClass (line 826) | TechnoTypeClass const * As_TechnoType(TARGET target)
function TriggerTypeClass (line 866) | TriggerTypeClass * As_TriggerType(TARGET target)
FILE: CODE/TARGET.H
function RTTIType (line 42) | inline RTTIType Target_Kind(TARGET a)
function Target_Value (line 47) | inline unsigned Target_Value(TARGET a)
function Is_Target_Team (line 52) | inline bool Is_Target_Team(TARGET a) {return (Target_Kind(a) == RTTI_TEA...
function Is_Target_TeamType (line 53) | inline bool Is_Target_TeamType(TARGET a) {return (Target_Kind(a) == RTTI...
function Is_Target_Trigger (line 54) | inline bool Is_Target_Trigger(TARGET a) {return (Target_Kind(a) == RTTI_...
function Is_Target_TriggerType (line 55) | inline bool Is_Target_TriggerType(TARGET a) {return (Target_Kind(a) == R...
function Is_Target_Infantry (line 56) | inline bool Is_Target_Infantry(TARGET a) {return (Target_Kind(a) == RTTI...
function Is_Target_Bullet (line 57) | inline bool Is_Target_Bullet(TARGET a) {return (Target_Kind(a) == RTTI_B...
function Is_Target_Terrain (line 58) | inline bool Is_Target_Terrain(TARGET a) {return (Target_Kind(a) == RTTI_...
function Is_Target_Cell (line 59) | inline bool Is_Target_Cell(TARGET a) {return (Target_Kind(a) == RTTI_CEL...
function Is_Target_Unit (line 60) | inline bool Is_Target_Unit(TARGET a) {return (Target_Kind(a) == RTTI_UNI...
function Is_Target_Vessel (line 61) | inline bool Is_Target_Vessel(TARGET a) {return (Target_Kind(a) == RTTI_V...
function Is_Target_Building (line 62) | inline bool Is_Target_Building(TARGET a) {return (Target_Kind(a) == RTTI...
function Is_Target_Template (line 63) | inline bool Is_Target_Template(TARGET a) {return (Target_Kind(a) == RTTI...
function Is_Target_Aircraft (line 64) | inline bool Is_Target_Aircraft(TARGET a) {return (Target_Kind(a) == RTTI...
function Is_Target_Animation (line 65) | inline bool Is_Target_Animation(TARGET a) {return (Target_Kind(a) == RTT...
function Is_Target_Object (line 66) | inline bool Is_Target_Object(TARGET a)
function class (line 102) | class xTargetClass
function class (line 156) | class TargetClass : public xTargetClass
FILE: CODE/TCPIP.CPP
function BOOL (line 193) | BOOL TcpipManagerClass::Init(void)
function BOOL (line 400) | BOOL TcpipManagerClass::Add_Client(void)
type hostent (line 510) | struct hostent
type sockaddr_in (line 511) | struct sockaddr_in
type hostent (line 529) | struct hostent
type hostent (line 541) | struct hostent
type hostent (line 558) | struct hostent
type sockaddr_in (line 769) | struct sockaddr_in
FILE: CODE/TCPIP.H
function class (line 89) | class TcpipManagerClass {
FILE: CODE/TDATA.CPP
function TerrainType (line 722) | TerrainType TerrainTypeClass::From_Name(char const * name)
function ObjectClass (line 830) | ObjectClass * TerrainTypeClass::Create_One_Of(HouseClass *) const
function TerrainTypeClass (line 910) | TerrainTypeClass & TerrainTypeClass::As_Reference(TerrainType type)
function COORDINATE (line 916) | COORDINATE TerrainTypeClass::Coord_Fixup(COORDINATE coord) const
FILE: CODE/TEAM.CPP
function _Is_It_Breathing (line 99) | static inline bool _Is_It_Breathing(FootClass const * object)
function _Is_It_Playing (line 141) | static inline bool _Is_It_Playing(FootClass const * object)
function FootClass (line 3053) | FootClass * TeamClass::Fetch_A_Leader(void) const
FILE: CODE/TEAM.H
function class (line 53) | class TeamClass : public AbstractClass
FILE: CODE/TEAMTYPE.CPP
function TeamTypeClass (line 224) | TeamTypeClass * TeamTypeClass::As_Pointer(char const * name)
function TeamMissionType (line 252) | TeamMissionType TeamTypeClass::Mission_From_Name(char const * name)
function TeamClass (line 353) | TeamClass * TeamTypeClass::Create_One_Of(void) const
function TeamTypeClass (line 419) | TeamTypeClass const * TeamTypeClass::Suggested_New_Team(HouseClass * hou...
function TeamTypeClass (line 516) | TeamTypeClass * TeamTypeClass::From_Name(char const * name)
function NeedType (line 544) | NeedType TeamMission_Needs(TeamMissionType tmtype)
function atoh (line 1395) | int atoh(char * str)
FILE: CODE/TEAMTYPE.H
type TeamMissionType (line 44) | typedef enum TeamMissionType {
function class (line 78) | class TeamMissionClass
function class (line 101) | class TeamMemberClass
function class (line 112) | class TeamTypeClass : public AbstractTypeClass
FILE: CODE/TECHNO.CPP
function COORDINATE (line 491) | COORDINATE TechnoClass::Fire_Coord(int which) const
function RadioMessageType (line 893) | RadioMessageType TechnoClass::Receive_Message(RadioClass * from, RadioMe...
function fixed (line 1342) | fixed TechnoClass::Area_Modify(CELL cell) const
function TARGET (line 1987) | TARGET TechnoClass::Greatest_Threat(ThreatType method) const
function HousesType (line 2284) | HousesType TechnoClass::Owner(void) const
function FireErrorType (line 2663) | FireErrorType TechnoClass::Can_Fire(TARGET target, int which) const
function BulletClass (line 3023) | BulletClass * TechnoClass::Fire_At(TARGET target, int which)
function ActionType (line 3289) | ActionType TechnoClass::What_Action(ObjectClass const * object) const
function ActionType (line 3409) | ActionType TechnoClass::What_Action(CELL cell) const
function ResultType (line 3793) | ResultType TechnoClass::Take_Damage(int & damage, int distance, WarheadT...
function CELL (line 4011) | CELL TechnoClass::Nearby_Location(TechnoClass const * techno) const
function VisualType (line 4159) | VisualType TechnoClass::Visual_Character(bool raw) const
function InfantryType (line 4437) | InfantryType TechnoClass::Crew_Type(void) const
function fixed (line 5087) | fixed TechnoClass::Tiberium_Load(void) const
function DirType (line 5115) | DirType TechnoClass::Desired_Load_Dir(ObjectClass * , CELL & moveto) const
function DirType (line 5164) | DirType TechnoClass::Fire_Direction(void) const
function BuildingClass (line 5656) | BuildingClass * TechnoClass::Find_Docking_Bay(StructType b, bool friendl...
function CELL (line 5720) | CELL TechnoClass::Find_Exit_Cell(TechnoClass const * ) const
function _Scale_To_256 (line 6212) | static inline int _Scale_To_256(int val)
FILE: CODE/TECHNO.H
function virtual (line 246) | virtual ~TechnoClass(void) {House=0;}
function virtual (line 258) | virtual DirType Turret_Facing(void) const {return(PrimaryFacing.Current(...
function TechnoTypeClass (line 260) | TechnoTypeClass * Techno_Type_Class(void) const {return((TechnoTypeClass...
function virtual (line 304) | virtual int Made_A_Kill(void) {return(Crew.Made_A_Kill());}
function virtual (line 370) | virtual bool Random_Animate(void) {return(false);}
FILE: CODE/TEMPLATE.H
function class (line 50) | class TemplateClass : public ObjectClass
function operator (line 67) | operator TemplateType(void) const {return Class->Type;}
function virtual (line 74) | virtual ObjectTypeClass const & Class_Of(void) const {return *Class;}
function virtual (line 81) | virtual void Draw_It(int , int , WindowNumberType ) const {}
FILE: CODE/TENMGR.CPP
function terminateApp (line 911) | static void terminateApp(void)
function debugMessage (line 936) | static void debugMessage(int /*msgLevel*/, char *msg)
function doAlert (line 982) | static void doAlert(int, int, char * msg)
function doPregameHook (line 1028) | static void doPregameHook(char * joinType, char *, char *,
function doIncomingPacket (line 1062) | void doIncomingPacket(int addr, void *buf, size_t size)
function doPlayerEntered (line 1109) | void doPlayerEntered(int pid, int isYou, char * /*options*/,
FILE: CODE/TENMGR.H
function class (line 33) | class TenConnManClass : public ConnManClass
FILE: CODE/TERRAIN.CPP
function ResultType (line 108) | ResultType TerrainClass::Take_Damage(int & damage, int distance, Warhead...
function MoveType (line 376) | MoveType TerrainClass::Can_Enter_Cell(CELL cell, FacingType) const
function COORDINATE (line 646) | COORDINATE TerrainClass::Center_Coord(void) const
function COORDINATE (line 713) | COORDINATE TerrainClass::Target_Coord(void) const
FILE: CODE/TERRAIN.H
function operator (line 67) | operator TerrainType(void) const {return Class->Type;}
function virtual (line 79) | virtual ObjectTypeClass const & Class_Of(void) const {return *Class;}
function virtual (line 86) | virtual COORDINATE Render_Coord(void) const {return Coord;}
function virtual (line 87) | virtual COORDINATE Sort_Y(void) const {return Coord_Add(Coord, Class->Ce...
function virtual (line 108) | virtual void Clicked_As_Target(int) {}
FILE: CODE/TEVENT.CPP
function NeedType (line 563) | NeedType Event_Needs(TEventType event)
function TEventType (line 624) | TEventType Event_From_Name (char const * name)
function AttachType (line 677) | AttachType Attaches_To(TEventType event)
FILE: CODE/TEVENT.H
type TEventType (line 46) | typedef enum TEventType {
type TDEventClass (line 93) | struct TDEventClass {
type TEventClass (line 117) | struct TEventClass {
function Event (line 142) | TEventClass(TEventType event) : Event(event) {Data.Value = 0;}
function Team (line 143) | TEventClass(NoInitClass const & x) : Team(x) {}
type AttachType (line 154) | typedef enum AttachType {
function class (line 168) | class EventChoiceClass {
FILE: CODE/TEXTBTN.H
function class (line 44) | class TextButtonClass : public ToggleClass
FILE: CODE/THEME.CPP
function ThemeType (line 238) | ThemeType ThemeClass::Next_Song(ThemeType theme) const
function ThemeType (line 534) | ThemeType ThemeClass::From_Name(char const * name) const
FILE: CODE/THEME.H
function class (line 41) | class ThemeClass
FILE: CODE/TOGGLE.H
function class (line 49) | class ToggleClass : public ControlClass
FILE: CODE/TOOLTIP.CPP
function ToolTipClass (line 67) | ToolTipClass* ToolTipClass::GetToolTipHit()
function SaveSurfaceRect (line 221) | bool SaveSurfaceRect( int xRect, int yRect, int wRect, int hRect, char* ...
function RestoreSurfaceRect (line 263) | bool RestoreSurfaceRect( int xRect, int yRect, int wRect, int hRect, con...
FILE: CODE/TOOLTIP.H
function class (line 32) | class ToolTipClass
FILE: CODE/TRACKER.CPP
function Detach_This_From_All (line 64) | void Detach_This_From_All(TARGET target, bool all)
FILE: CODE/TRIGGER.CPP
function TARGET (line 425) | TARGET TriggerClass::As_Target(void) const
function TriggerClass (line 453) | TriggerClass * Find_Or_Make(TriggerTypeClass * trigtype)
FILE: CODE/TRIGGER.H
function class (line 41) | class TriggerClass {
FILE: CODE/TRIGTYPE.CPP
function TARGET (line 170) | TARGET TriggerTypeClass::As_Target(void) const
function AttachType (line 1815) | AttachType TriggerTypeClass::Attaches_To(void) const
function TriggerTypeClass (line 2119) | TriggerTypeClass * TriggerTypeClass::From_Name(char const * name)
FILE: CODE/TRIGTYPE.H
type MultiStyleType (line 51) | typedef enum MultiStyleType {
function class (line 59) | class TriggerTypeClass : public AbstractTypeClass
FILE: CODE/TURRET.H
function class (line 43) | class TurretClass : public DriveClass
FILE: CODE/TXTLABEL.H
function class (line 41) | class TextLabelClass : public GadgetClass
FILE: CODE/TYPE.H
function class (line 53) | class AbstractTypeClass
function class (line 105) | class HouseTypeClass : public AbstractTypeClass
function class (line 183) | class ObjectTypeClass : public AbstractTypeClass
function class (line 321) | class TechnoTypeClass : public ObjectTypeClass
function class (line 594) | class BuildingTypeClass : public TechnoTypeClass {
function class (line 847) | class UnitTypeClass : public TechnoTypeClass
function class (line 1025) | class VesselTypeClass : public TechnoTypeClass
function class (line 1114) | class InfantryTypeClass : public TechnoTypeClass
function TechnoTypeClass (line 1305) | AircraftTypeClass(NoInitClass const & x) : TechnoTypeClass(x) {}
function Init (line 1334) | static void Init(TheaterType ) {}
function virtual (line 1339) | virtual bool Create_And_Place(CELL, HousesType) const;
function class (line 1526) | class TerrainTypeClass : public ObjectTypeClass
function class (line 1599) | class TemplateTypeClass: public ObjectTypeClass
function class (line 1654) | class AnimTypeClass : public ObjectTypeClass
function class (line 1845) | class OverlayTypeClass: public ObjectTypeClass
function class (line 1962) | class SmudgeTypeClass : public ObjectTypeClass
FILE: CODE/UDATA.CPP
function UnitType (line 983) | UnitType UnitTypeClass::From_Name(char const * name)
function ObjectClass (line 1189) | ObjectClass * UnitTypeClass::Create_One_Of(HouseClass * house) const
function UnitTypeClass (line 1210) | UnitTypeClass & UnitTypeClass::As_Reference(UnitType type)
FILE: CODE/UDPADDR.CPP
function Get_Broadcast_Addresses (line 26) | bool Get_Broadcast_Addresses (void)
FILE: CODE/UNIT.CPP
function Recoil_Adjust (line 125) | void Recoil_Adjust(DirType dir, int &x, int &y)
function COORDINATE (line 373) | COORDINATE UnitClass::Sort_Y(void) const
function MoveType (line 3069) | MoveType UnitClass::Can_Enter_Cell(CELL cell, FacingType ) const
function ActionType (line 3391) | ActionType UnitClass::What_Action(ObjectClass const * object) const
function ActionType (line 3554) | ActionType UnitClass::What_Action(CELL cell) const
function DirType (line 3712) | DirType UnitClass::Desired_Load_Dir(ObjectClass * passenger, CELL & move...
function InfantryType (line 3965) | InfantryType UnitClass::Crew_Type(void) const
function DirType (line 4053) | DirType UnitClass::Fire_Direction(void) const
function FireErrorType (line 4136) | FireErrorType UnitClass::Can_Fire(TARGET target, int which) const
function BulletClass (line 4206) | BulletClass * UnitClass::Fire_At(TARGET target, int which)
function ObjectTypeClass (line 4249) | ObjectTypeClass const & UnitClass::Class_Of(void) const
function fixed (line 4272) | fixed UnitClass::Tiberium_Load(void) const
function TARGET (line 4620) | TARGET UnitClass::Greatest_Threat(ThreatType threat) const
FILE: CODE/UNIT.H
function class (line 53) | class UnitClass : public DriveClass
FILE: CODE/UTRACKER.H
function class (line 46) | class UnitTrackerClass {
FILE: CODE/VDATA.CPP
function VesselTypeClass (line 352) | VesselTypeClass & VesselTypeClass::As_Reference(VesselType type)
function BuildingClass (line 383) | BuildingClass * VesselTypeClass::Who_Can_Build_Me(bool intheory, bool le...
function ObjectClass (line 485) | ObjectClass * VesselTypeClass::Create_One_Of(HouseClass * house) const
function VesselType (line 681) | VesselType VesselTypeClass::From_Name(char const * name)
FILE: CODE/VECTOR.CPP
function BooleanVectorClass (line 458) | BooleanVectorClass & BooleanVectorClass::operator =(BooleanVectorClass c...
FILE: CODE/VECTOR.H
function T (line 92) | T const & operator[](unsigned index) const {return(Vector[index]);}
function Length (line 97) | unsigned Length(void) const {return VectorMax;}
function virtual (line 140) | virtual void Clear(void) {ActiveCount = 0;VectorClass<T>::Clear();}
function Count (line 143) | int Count(void) const {return(ActiveCount);}
function Delete_All (line 156) | void Delete_All(void) {ActiveCount = 0;}
function Set_Growth_Step (line 159) | int Set_Growth_Step(int step) {return(GrowthStep = step);}
function Growth_Step (line 162) | int Growth_Step(void) {return GrowthStep;}
function virtual (line 164) | virtual int ID(T const * ptr) {return(VectorClass<T>::ID(ptr));}
function class (line 196) | class BooleanVectorClass
FILE: CODE/VERSION.CPP
function CommProtocolType (line 494) | CommProtocolType VersionClass::Version_Protocol(unsigned long version)
FILE: CODE/VERSION.H
type CommProtocolType (line 68) | typedef enum CommProtocolEnum {
type VersionProtocolType (line 76) | typedef struct {
function class (line 81) | class VersionClass {
FILE: CODE/VESSEL.CPP
function ObjectTypeClass (line 236) | ObjectTypeClass const & VesselClass::Class_Of(void) const
function MoveType (line 259) | MoveType VesselClass::Can_Enter_Cell(CELL cell, FacingType ) const
function ActionType (line 751) | ActionType VesselClass::What_Action(ObjectClass const * object) const
function COORDINATE (line 1158) | COORDINATE VesselClass::Fire_Coord(int which) const
function TARGET (line 1223) | TARGET VesselClass::Greatest_Threat(ThreatType threat) const
function DirType (line 1556) | DirType VesselClass::Desired_Load_Dir(ObjectClass * passenger, CELL & mo...
function ActionType (line 2133) | ActionType VesselClass::What_Action(CELL cell) const
function BulletClass (line 2332) | BulletClass * VesselClass::Fire_At(TARGET target, int which)
FILE: CODE/VESSEL.H
function class (line 47) | class VesselClass : public DriveClass
FILE: CODE/VISUDLG.H
function class (line 44) | class VisualControlsClass
FILE: CODE/VORTEX.H
function class (line 49) | class ChronalVortexClass {
FILE: CODE/W95TRACE.CPP
function OutputDebugStringW95 (line 31) | void OutputDebugStringW95( LPCTSTR /*lpOutputString*/, ...)
FILE: CODE/WARHEAD.CPP
function WarheadTypeClass (line 143) | WarheadTypeClass * WarheadTypeClass::As_Pointer(WarheadType warhead)
FILE: CODE/WARHEAD.H
function class (line 46) | class WarheadTypeClass
FILE: CODE/WEAPON.CPP
function WeaponTypeClass (line 173) | WeaponTypeClass * WeaponTypeClass::As_Pointer(WeaponType weapon)
function WeaponType (line 258) | WeaponType Weapon_From_Name(char const * name)
function ArmorType (line 288) | ArmorType Armor_From_Name(char const * name)
function ThreatType (line 317) | ThreatType WeaponTypeClass::Allowed_Threats(void) const
FILE: CODE/WEAPON.H
function class (line 48) | class WeaponTypeClass
FILE: CODE/WINSTUB.CPP
function output (line 57) | void output(short,short)
function Focus_Loss (line 83) | void Focus_Loss(void)
function Focus_Restore (line 90) | void Focus_Restore(void)
function Check_For_Focus_Loss (line 117) | void Check_For_Focus_Loss(void)
function Windows_Procedure (line 166) | long FAR PASCAL _export Windows_Procedure(HWND hwnd, UINT message, UINT ...
function WWDebugString (line 365) | void WWDebugString (char *string)
function Create_Main_Window (line 435) | void Create_Main_Window ( HANDLE instance , int command_show , int width...
function Window_Dialog_Box (line 497) | void Window_Dialog_Box(HANDLE hinst, LPCTSTR lpszTemplate, HWND hwndO...
type tColourList (line 530) | struct tColourList {
function Colour_Debug (line 557) | void Colour_Debug (int call_number)
function BOOL (line 579) | BOOL Any_Locked (void)
function Flag_To_Set_Palette (line 673) | void Flag_To_Set_Palette(unsigned char *palette, long numbytes, unsigned...
function Check_VQ_Palette_Set (line 683) | void Check_VQ_Palette_Set(void)
function SetPalette (line 695) | void __cdecl SetPalette(unsigned char *palette, long, unsigned long)
function Assert_Failure (line 725) | void Assert_Failure (char *expression, int line, char *file)
function Memory_Error_Handler (line 791) | void Memory_Error_Handler(void)
function Load_Title_Screen (line 817) | void Load_Title_Screen(char *name, GraphicViewPortClass *video_page, uns...
function GraphicBufferClass (line 869) | GraphicBufferClass* Read_PCX_File(char* name, char* palette, void *Buff,...
FILE: CODE/WOLAPI/WOLAPI.H
type interface (line 48) | typedef interface IRTPatcher
type interface (line 54) | typedef interface IRTPatcherEvent
type interface (line 60) | typedef interface IChat IChat;
type interface (line 66) | typedef interface IChatEvent
type interface (line 72) | typedef interface IDownload IDownload;
type interface (line 78) | typedef interface IDownloadEvent
type interface (line 84) | typedef interface INetUtil INetUtil;
type interface (line 90) | typedef interface INetUtilEvent
type interface (line 96) | typedef interface IChat2 IChat2;
type interface (line 102) | typedef interface IChat2Event
type class (line 110) | typedef class RTPatcher RTPatcher;
type RTPatcher (line 112) | typedef struct RTPatcher RTPatcher;
type class (line 122) | typedef class Chat Chat;
type Chat (line 124) | typedef struct Chat Chat;
type class (line 134) | typedef class Download Download;
type Download (line 136) | typedef struct Download Download;
type class (line 146) | typedef class NetUtil NetUtil;
type NetUtil (line 148) | typedef struct NetUtil NetUtil;
type class (line 158) | typedef class Chat2 Chat2;
type Chat2 (line 160) | typedef struct Chat2 Chat2;
type IRTPatcherVtbl (line 203) | typedef struct IRTPatcherVtbl
function interface (line 229) | interface IRTPatcher
type IRTPatcherEventVtbl (line 321) | typedef struct IRTPatcherEventVtbl
function interface (line 348) | interface IRTPatcherEvent
type Ladder (line 424) | struct Ladder
type GroupID (line 444) | typedef int GroupID;
type Server (line 446) | struct Server
type Channel (line 460) | struct Channel
type User (line 481) | struct User
type Group (line 495) | struct Group
type Update (line 503) | struct Update
type Server (line 516) | typedef struct Server Server;
type Channel (line 518) | typedef struct Channel Channel;
type User (line 520) | typedef struct User User;
type Group (line 522) | typedef struct Group Group;
type Update (line 524) | typedef struct Update Update;
type Ladder (line 526) | typedef struct Ladder Ladder;
type IChatVtbl (line 684) | typedef struct IChatVtbl
function interface (line 886) | interface IChat
type IChatEventVtbl (line 1711) | typedef struct IChatEventVtbl
function interface (line 1893) | interface IChatEvent
type IDownloadVtbl (line 2443) | typedef struct IDownloadVtbl
function interface (line 2476) | interface IDownload
type IDownloadEventVtbl (line 2595) | typedef struct IDownloadEventVtbl
function interface (line 2634) | interface IDownloadEvent
type INetUtilVtbl (line 2802) | typedef struct INetUtilVtbl
function interface (line 2863) | interface INetUtil
type INetUtilEventVtbl (line 3043) | typedef struct INetUtilEventVtbl
function interface (line 3080) | interface INetUtilEvent
type GID (line 3174) | typedef unsigned long GID;
type GTYPE_ (line 3177) | enum GTYPE_
type GTYPE (line 3182) | typedef enum GTYPE_ GTYPE;
type CHAN_CTYPE_ (line 3185) | enum CHAN_CTYPE_
type CHAN_CTYPE (line 3190) | typedef enum CHAN_CTYPE_ CHAN_CTYPE;
type IChat2Vtbl (line 3238) | typedef struct IChat2Vtbl
function interface (line 3300) | interface IChat2
type IChat2EventVtbl (line 3558) | typedef struct IChat2EventVtbl
function interface (line 3623) | interface IChat2Event
FILE: CODE/WOLAPI/WOLAPI_I.C
type IID (line 41) | typedef struct _IID
type IID (line 53) | typedef IID CLSID;
FILE: CODE/WOLAPIOB.CPP
function HRESULT (line 599) | HRESULT WolapiObject::GetChatServer()
function HRESULT (line 682) | HRESULT WolapiObject::AttemptLogin( const char* szName, const char* szPa...
function HRESULT (line 984) | HRESULT WolapiObject::ChannelJoin( const char* szChannelName, const char...
function HRESULT (line 995) | HRESULT WolapiObject::ChannelJoin( Channel* pChannelToJoin )
type CHANNELUSERINFO (line 1116) | struct CHANNELUSERINFO
function HousesType (line 1386) | HousesType WolapiObject::PullPlayerHouse_From( const char* szSource )
function HRESULT (line 1810) | HRESULT WolapiObject::Locate( const char* szUser )
function HRESULT (line 1848) | HRESULT WolapiObject::Page( const char* szUser, const char* szSend, bool...
function User (line 3054) | User* WolapiObject::pGameHost()
function HPALETTE (line 3324) | HPALETTE GetCurrentScreenPalette()
function RemapDIBToPalette (line 3366) | void RemapDIBToPalette( HPALETTE hPal, const char* pDIB ) // Note: pDIB...
function HostNameFromGameChannelName (line 3428) | void HostNameFromGameChannelName( char* szNameToSet, const char* szChann...
FILE: CODE/WOLAPIOB.H
type WOL_LEVEL (line 74) | enum WOL_LEVEL
type WOL_GAMETYPEINFO (line 88) | struct WOL_GAMETYPEINFO
type WOL_GAMEOPT (line 98) | enum WOL_GAMEOPT
type DIBICON (line 114) | enum DIBICON
type DIBICONINFO (line 128) | struct DIBICONINFO
type CHATSAVE (line 137) | struct CHATSAVE // What we save about each individual list item.
type CREATEGAMEINFO (line 144) | struct CREATEGAMEINFO
function class (line 168) | class WolapiObject
FILE: CODE/WOLEDIT.H
function class (line 30) | class WOLEditClass : public EditClass
FILE: CODE/WOL_CGAM.CPP
function CREATEGAMEINFO (line 40) | CREATEGAMEINFO WOL_CreateGame_Dialog( WolapiObject* pWO )
function SetPlayerCountList (line 366) | void SetPlayerCountList( IconListClass& PlayerCountList, int iPlayerMax,...
FILE: CODE/WOL_CHAT.CPP
type LIST_EXPAND_STATE (line 42) | enum LIST_EXPAND_STATE
function WOL_Chat_Dialog (line 73) | int WOL_Chat_Dialog( WolapiObject* pWO )
function WOL_PrintMessage (line 1018) | void WOL_PrintMessage( IconListClass& ILTarget, const char* szText, Play...
function WOL_PrintMessage (line 1025) | void WOL_PrintMessage( IconListClass& ILTarget, const char* szText, Rema...
function OnExpandChannelList (line 1033) | bool OnExpandChannelList( IconListClass& chanlist, IconListClass& userli...
function OnExpandUserList (line 1057) | bool OnExpandUserList( IconListClass& chanlist, IconListClass& userlist )
function ResizeChannelList (line 1081) | void ResizeChannelList( IconListClass& chanlist, bool bExpand )
function ResizeUserList (line 1091) | void ResizeUserList( IconListClass& userlist, bool bExpand )
function EnterChannel (line 1101) | bool EnterChannel( WolapiObject* pWO, IconListClass& chatlist, IconListC...
function EnterChannel (line 1113) | bool EnterChannel( WolapiObject* pWO, IconListClass& chatlist, Channel* ...
function ExitChatChannel (line 1284) | bool ExitChatChannel( WolapiObject* pWO )
function CreateChatChannel (line 1302) | void CreateChatChannel( WolapiObject* pWO )
function CreateGameChannel (line 1343) | bool CreateGameChannel( WolapiObject* pWO, const CREATEGAMEINFO& cgi )
function ProcessChannelListSelection (line 1377) | bool ProcessChannelListSelection( WolapiObject* pWO, IconListClass& chat...
function bLinkInList (line 1569) | bool bLinkInList( const LinkClass* pListHead, const LinkClass* pLinkToFi...
FILE: CODE/WOL_DNLD.CPP
function WOL_Download_Dialog (line 29) | bool WOL_Download_Dialog( IDownload* pDownload, RADownloadEventSink* pDo...
FILE: CODE/WOL_GSUP.CPP
function RESULT_WOLGSUP (line 192) | RESULT_WOLGSUP WOL_GameSetupDialog::Run()
function RESULT_WOLGSUP (line 452) | RESULT_WOLGSUP WOL_GameSetupDialog::Show()
function PlayerColorType (line 1886) | PlayerColorType WOL_GameSetupDialog::GetPlayerColor( const char* szName )
function HousesType (line 1925) | HousesType WOL_GameSetupDialog::GetPlayerHouse( const char* szName )
function PlayerColorType (line 2647) | PlayerColorType PlayerColorTypeOf( RemapControlType* pColorRemap )
function PlayerColorType (line 3000) | PlayerColorType WOL_GameSetupDialog::ColorNextAvailable()
function bSpecialAftermathScenario (line 3475) | bool bSpecialAftermathScenario( const char* szScenarioDescription )
function ScenarioIndex_From_Filename (line 3491) | int ScenarioIndex_From_Filename( const char* szScenarioFilename )
FILE: CODE/WOL_GSUP.H
type RESULT_WOLGSUP (line 44) | enum RESULT_WOLGSUP
type GAMEPARAMS (line 55) | struct GAMEPARAMS
function class (line 64) | class WOL_GameSetupDialog
FILE: CODE/WOL_LOGN.CPP
function WOL_Login_Dialog (line 44) | int WOL_Login_Dialog( WolapiObject* pWO )
function ReadSavedNicks (line 504) | bool ReadSavedNicks( WolapiObject* pWO, IconListClass& NickList, char* s...
function bSaveNick (line 536) | bool bSaveNick( WolapiObject* pWO, const char* szNickToSave, const char*...
function DeleteNick (line 614) | void DeleteNick( WolapiObject* pWO, int iOneBasedEntryToDelete )
FILE: CODE/WOL_MAIN.CPP
function WOL_Main (line 48) | int WOL_Main()
function ReregisterWolapiDLL (line 197) | bool ReregisterWolapiDLL()
function HandleDLLFail (line 259) | void HandleDLLFail()
FILE: CODE/WOL_OPT.CPP
function WOL_Options_Dialog (line 35) | bool WOL_Options_Dialog( WolapiObject* pWO, bool bCalledFromGame )
FILE: CODE/WRITEPCX.CPP
function Write_PCX_File (line 91) | int Write_PCX_File(FileClass & file, GraphicBufferClass & pic, PaletteCl...
function Write_Pcx_ScanLine (line 190) | static void Write_Pcx_ScanLine(FileClass & file, int scansize, char * ptr)
FILE: CODE/WSPIPX.CPP
type sockaddr (line 219) | struct sockaddr
FILE: CODE/WSPIPX.H
function class (line 58) | class IPXInterfaceClass : public WinsockInterfaceClass {
FILE: CODE/WSPROTO.H
type ProtocolEnum (line 70) | typedef enum tProtocolEnum {
function class (line 85) | class WinsockInterfaceClass {
FILE: CODE/WSPUDP.CPP
type sockaddr_in (line 149) | struct sockaddr_in
type hostent (line 185) | struct hostent
type sockaddr_in (line 312) | struct sockaddr_in
FILE: CODE/WSPUDP.H
function class (line 50) | class UDPInterfaceClass : public WinsockInterfaceClass {
FILE: CODE/WWALLOC.H
type MemoryFlagType (line 35) | typedef enum MemoryFlagType {
FILE: CODE/WWFILE.H
function class (line 72) | class FileClass
FILE: CODE/XPIPE.H
function class (line 50) | class BufferPipe : public Pipe
function class (line 75) | class FilePipe : public Pipe
FILE: CODE/XSTRAW.H
function class (line 51) | class BufferStraw : public Straw
function class (line 73) | class FileStraw : public Straw
FILE: IPX/FIXTHUNK.CPP
function main (line 69) | int main(int argc, char *argv[])
FILE: IPX/IPX16C.CPP
function CALLBACK (line 37) | int CALLBACK LibMain (HANDLE, WORD, WORD, LPSTR)
function BOOL (line 44) | BOOL FAR __pascal _export IPX_Initialise(int)
function IPX_Uninitialise (line 53) | void FAR __pascal _export IPX_Uninitialise(void)
FILE: IPX/IPXTEST.CPP
function WinMain (line 28) | int PASCAL WinMain ( HINSTANCE instance , HINSTANCE , char *, int)
FILE: IPX/OK/FIXTHUNK.CPP
function main (line 69) | int main(int argc, char *argv[])
FILE: IPX/OK/IPX16C.CPP
function CALLBACK (line 37) | int CALLBACK LibMain (HANDLE, WORD, WORD, LPSTR)
function BOOL (line 44) | BOOL FAR __pascal _export IPX_Initialise(int)
function IPX_Uninitialise (line 53) | void FAR __pascal _export IPX_Uninitialise(void)
FILE: IPX/OK/IPXTEST.CPP
function WinMain (line 28) | int PASCAL WinMain ( HINSTANCE instance , HINSTANCE , char *, int)
FILE: IPX/OK/THIPX16C.CPP
function CALLBACK (line 27) | int CALLBACK LibMain (HANDLE, WORD, WORD, LPSTR)
function BOOL (line 38) | BOOL FAR PASCAL DllEntryPoint_ (DWORD dwReason, WORD hInst, WORD, WORD, ...
FILE: IPX/OK/THIPX32C.CPP
function BOOL (line 36) | BOOL APIENTRY DllMain(DWORD hInst, DWORD dwReason, DWORD dwReserved)
function BOOL (line 49) | BOOL APIENTRY LibMain(DWORD hInst, DWORD dwReason, DWORD dwReserved)
FILE: IPX/THIPX16C.CPP
function CALLBACK (line 71) | int CALLBACK LibMain (HANDLE, WORD, WORD, LPSTR)
function BOOL (line 92) | BOOL FAR PASCAL DllEntryPoint_ (DWORD dwReason, WORD hInst, WORD, WORD, ...
FILE: IPX/THIPX32C.CPP
function BOOL (line 73) | BOOL APIENTRY DllMain(DWORD hInst, DWORD dwReason, DWORD dwReserved)
function BOOL (line 97) | BOOL APIENTRY LibMain(DWORD hInst, DWORD dwReason, DWORD dwReserved)
FILE: LAUNCHER/256BMP.C
function DWORD (line 31) | DWORD GetDibInfoHeaderSize (BYTE huge * lpDib)
function WORD (line 36) | WORD GetDibWidth (BYTE huge * lpDib)
function WORD (line 44) | WORD GetDibHeight (BYTE huge * lpDib)
function BYTE (line 52) | BYTE huge * GetDibBitsAddr (BYTE huge * lpDib)
function BYTE (line 92) | BYTE huge * ReadDib (char * szFileName)
function _export (line 151) | _export MainWndProc(HWND hWnd,UINT message,UINT wParam,LONG lParam)
FILE: LAUNCHER/CONFIGFILE.CPP
function bit8 (line 58) | bit8 ConfigFile::readFile(FILE *in)
function bit8 (line 87) | bit8 ConfigFile::getString(Wstring &key,Wstring &value)
function bit8 (line 93) | bit8 ConfigFile::getString(char *key,Wstring &value)
function bit8 (line 101) | bit8 ConfigFile::getInt(Wstring &key,sint32 &value)
function bit8 (line 112) | bit8 ConfigFile::getInt(char *key,sint32 &value)
function bit8 (line 122) | bit8 ConfigFile::getInt(Wstring &key,sint16 &value)
function bit8 (line 133) | bit8 ConfigFile::getInt(char *key,sint16 &value)
function uint32 (line 146) | static uint32 Wstring_Hash(Wstring &string)
FILE: LAUNCHER/CONFIGFILE.H
function class (line 35) | class ConfigFile
FILE: LAUNCHER/DIALOG.CPP
function HWND (line 30) | HWND Create_Patch_Dialog(void)
function BOOL (line 40) | BOOL CALLBACK Patch_Window_Proc(HWND hwnd, UINT iMsg, WPARAM wParam, LPA...
FILE: LAUNCHER/FILED.H
function class (line 24) | class FileD : public OutputDevice
FILE: LAUNCHER/FINDPATCH.CPP
function Find_Patch (line 33) | int Find_Patch(OUT char *filename,int maxlen, ConfigFile &config)
function bit8 (line 85) | bit8 Get_App_Dir(OUT char *filename,int maxlen, ConfigFile &config,int i...
function Delete_Patches (line 156) | void Delete_Patches(ConfigFile &config)
FILE: LAUNCHER/LOADBMP.CPP
function bit8 (line 38) | bit8 LoadBmp::init(char *filename,HWND hwnd)
function bit8 (line 170) | bit8 LoadBmp::drawBmp(void)
FILE: LAUNCHER/LOADBMP.H
function class (line 31) | class LoadBmp
FILE: LAUNCHER/MAIN.CPP
function main (line 72) | int main(int argc, char *argv[])
function CreatePrimaryWin (line 176) | void CreatePrimaryWin(char *prefix)
function myChdir (line 240) | void myChdir(char *path)
FILE: LAUNCHER/MONOD.H
function class (line 60) | class MonoD : public OutputDevice
FILE: LAUNCHER/ODEVICE.H
function class (line 24) | class OutputDevice
FILE: LAUNCHER/PATCH.CPP
function BOOL (line 42) | BOOL CALLBACK Update_Info_Proc(HWND hwnd, UINT iMsg, WPARAM wParam, LPAR...
function Apply_Patch (line 136) | void Apply_Patch(char *patchfile,ConfigFile &config,int skuIndex)
function Shutdown_Computer_Now (line 326) | void Shutdown_Computer_Now(void)
function LPVOID (line 378) | LPVOID CALLBACK __export PatchCallBack(UINT Id, LPVOID Param)
FILE: LAUNCHER/PROCESS.CPP
function bit8 (line 31) | bit8 Create_Process(Process &process)
function bit8 (line 51) | bit8 Wait_Process(Process &process)
function bit8 (line 65) | bit8 Read_Process_Info(ConfigFile &config,OUT Process &info)
FILE: LAUNCHER/PROCESS.H
function class (line 27) | class Process
FILE: LAUNCHER/STREAMER.H
function class (line 39) | class Streamer : public streambuf
FILE: LAUNCHER/UTIL/FILED.H
function class (line 24) | class FileD : public OutputDevice
FILE: LAUNCHER/UTIL/MBOXD.H
function class (line 24) | class MboxD : public OutputDevice
FILE: LAUNCHER/UTIL/MONOD.H
function class (line 60) | class MonoD : public OutputDevice
FILE: LAUNCHER/UTIL/ODEVICE.H
function class (line 24) | class OutputDevice
FILE: LAUNCHER/UTIL/STDERRD.H
function class (line 24) | class StderrD : public OutputDevice
FILE: LAUNCHER/UTIL/STDOUTD.H
function class (line 24) | class StdoutD : public OutputDevice
FILE: LAUNCHER/UTIL/STREAMER.H
function class (line 39) | class Streamer : public streambuf
FILE: LAUNCHER/UTIL/SYSLOGD.H
function class (line 28) | class SyslogD : public OutputDevice
FILE: LAUNCHER/UTIL/WDEBUG.CPP
function ostream (line 130) | ostream *MsgManager::debugStream(void)
function ostream (line 135) | ostream *MsgManager::infoStream(void)
function ostream (line 140) | ostream *MsgManager::warnStream(void)
function ostream (line 145) | ostream *MsgManager::errorStream(void)
FILE: LAUNCHER/UTIL/WDEBUG.H
function class (line 193) | class MsgManager
FILE: LAUNCHER/WDEBUG.CPP
function ostream (line 125) | ostream *MsgManager::debugStream(void)
function ostream (line 130) | ostream *MsgManager::infoStream(void)
function ostream (line 135) | ostream *MsgManager::warnStream(void)
function ostream (line 140) | ostream *MsgManager::errorStream(void)
FILE: LAUNCHER/WDEBUG.H
function class (line 170) | class MsgManager
FILE: LAUNCHER/WINBLOWS.CPP
function WinMain (line 37) | int PASCAL WinMain( HINSTANCE instance, HINSTANCE, char *command_line, i...
function Print_WM (line 87) | int Print_WM(UINT message,char *out)
FILE: LAUNCHER/WSTRING.CPP
function bit8 (line 57) | bit8 Wstring::operator==(IN char *other)
function bit8 (line 67) | bit8 Wstring::operator==(IN Wstring &other)
function bit8 (line 82) | bit8 Wstring::operator!=(IN char *other)
function bit8 (line 91) | bit8 Wstring::operator!=(IN Wstring &other)
function Wstring (line 106) | Wstring &Wstring::operator=(char *other)
function Wstring (line 113) | Wstring &Wstring::operator=(IN Wstring &other)
function bit8 (line 123) | bit8 Wstring::cat(IN char *s)
function bit8 (line 162) | bit8 Wstring::cat(uint32 size, IN char *s)
function bit8 (line 198) | bit8 Wstring::cat(IN Wstring &other)
function Wstring (line 203) | Wstring &Wstring::operator+=(IN char *string)
function Wstring (line 209) | Wstring &Wstring::operator+=(IN Wstring &other)
function Wstring (line 215) | Wstring Wstring::operator+(IN char *string)
function Wstring (line 222) | Wstring Wstring::operator+(IN Wstring &s)
function bit8 (line 277) | bit8 Wstring::removeChar(char c)
function uint32 (line 350) | uint32 Wstring::length(void)
function bit8 (line 359) | bit8 Wstring::insert(char *instring, uint32 pos)
function bit8 (line 382) | bit8 Wstring::insert(char k, uint32 pos)
function bit8 (line 424) | bit8 Wstring::replace(char *replaceThis, char *withThis)
function bit8 (line 458) | bit8 Wstring::set(IN char *s)
function bit8 (line 477) | bit8 Wstring::set(char c, uint32 index)
function bit8 (line 539) | bit8 Wstring::truncate(uint32 len)
function bit8 (line 549) | bit8 Wstring::truncate(char c)
function sint32 (line 566) | sint32 Wstring::getToken(int offset,char *delim,Wstring &out)
function sint32 (line 590) | sint32 Wstring::getLine(int offset, Wstring &out)
FILE: LAUNCHER/WSTRING.H
function class (line 36) | class Wstring
FILE: LAUNCHER/WSTYPES.H
type bit8 (line 61) | typedef char bit8;
type sint8 (line 62) | typedef char sint8;
type uint8 (line 63) | typedef unsigned char uint8;
type sint16 (line 64) | typedef signed short int sint16;
type uint16 (line 65) | typedef unsigned short int uint16;
type sint32 (line 66) | typedef signed int sint32;
type uint32 (line 67) | typedef unsigned int uint32;
FILE: TOOLS/AUDIOMAK/AUDIOMAK.CPP
function main (line 146) | int main(int argc, char **argv)
function Log_RawFrame (line 326) | inline void Log_RawFrame(long val) {rawframes += val;}
function Log_Raw (line 327) | inline void Log_Raw(long val) {raw += val;}
function Log_5Bit (line 328) | inline void Log_5Bit(long val) {bit5 += val;}
function Log_4Bit (line 329) | inline void Log_4Bit(long val) {bit4 += val;}
function Log_2Bit (line 330) | inline void Log_2Bit(long val) {bit2 += val;}
function Log_0Bit (line 331) | inline void Log_0Bit(long val) {bit0 += val;}
function Log_Overhead (line 332) | inline void Log_Overhead(long val) {overhead += val;}
function Log_Compressed (line 333) | inline void Log_Compressed(long val) {compressed += val;}
function Log_Original (line 334) | inline void Log_Original(long val) {original += val;}
function Log_Rate (line 335) | inline void Log_Rate(long val) {rate = val;}
function Stat_Reset (line 337) | void Stat_Reset(void)
function Stat_Dump (line 353) | void Stat_Dump(void)
function Process (line 371) | void Process(char const *src, char const *name, char const *dest)
function Convert (line 402) | void Convert(char const *src, char const *dst)
function Is_WAV (line 442) | int Is_WAV(FILE *src)
function Convert_WAV (line 464) | void Convert_WAV(FILE * src, FILE * dst)
function Is_VOC (line 621) | int Is_VOC(FILE *src)
function Convert_VOC (line 640) | void Convert_VOC(FILE *src, FILE *dst)
function Compress_Frame (line 888) | long Compress_Frame(void * source, void * dest, long size)
function Decompress_Frame (line 1171) | long Decompress_Frame(void * source, void * dest, long size)
FILE: TOOLS/MIX/MIXFILE.CPP
class DataClass (line 61) | class DataClass {
function main (line 103) | int main(int argc, char ** argv)
function compfunc (line 450) | int compfunc(const void *ptr1, const void *ptr2)
function Calc_CRC (line 598) | long Calc_CRC(void const *data, long size)
FILE: VQ/INCLUDE/HMI32/SOS.H
type _SOS_CAPABILITIES (line 48) | typedef struct _tagCAPABILITIES
type _SOS_CAPABILITIES (line 70) | typedef _SOS_CAPABILITIES far * LPSOSDEVICECAPS;
type _SOS_FILL_INFO (line 175) | typedef struct _tagFillInfo
type _SOS_CAPS_INFO (line 186) | typedef struct _tagCapsInfo
type _SOS_SAMPLE (line 200) | typedef struct _tagSAMPLE
type _FILEHEADER (line 296) | typedef struct
type _DRIVERHEADER (line 313) | typedef struct
type _SOS_HARDWARE (line 333) | typedef struct
type _SOS_START_SAMPLE (line 350) | typedef struct
type _SOS_INIT_DRIVER (line 416) | typedef struct
type EVDS_STRUCT (line 539) | typedef struct
type VDS_STRUCT (line 550) | typedef struct
FILE: VQ/INCLUDE/HMI32/SOSDEFS.H
type BOOL (line 53) | typedef int BOOL;
type UINT (line 54) | typedef unsigned int UINT;
type BYTE (line 55) | typedef unsigned char BYTE;
type WORD (line 56) | typedef unsigned WORD;
type LONG (line 58) | typedef signed long LONG;
type DWORD (line 60) | typedef unsigned long DWORD;
type BYTE (line 62) | typedef BYTE * PBYTE;
type WORD (line 64) | typedef WORD * PWORD;
type LONG (line 65) | typedef LONG * PLONG;
type VOID (line 66) | typedef VOID * PVOID;
type BYTE (line 68) | typedef BYTE far * LPBYTE;
type BYTE (line 69) | typedef BYTE far * LPSTR;
type WORD (line 70) | typedef WORD far * LPWORD;
type LONG (line 71) | typedef LONG far * LPLONG;
type VOID (line 72) | typedef VOID far * LPVOID;
type BYTE (line 74) | typedef BYTE huge * HPBYTE;
type BYTE (line 75) | typedef BYTE huge * HPSTR;
type WORD (line 76) | typedef WORD huge * HPWORD;
type LONG (line 77) | typedef LONG huge * HPLONG;
type VOID (line 78) | typedef VOID huge * HPVOID;
type HANDLE (line 80) | typedef unsigned HANDLE;
FILE: VQ/INCLUDE/HMI32/SOSRES.H
type _RES_FILE_HEADER (line 40) | typedef struct
type _RES_BLOCK_HEADER (line 60) | typedef struct
type _RES_SYNCMARK (line 83) | typedef struct _tagSYNCMARK
type _RES_TAG (line 99) | typedef union
type _SOS_FILTER (line 107) | typedef union
FILE: VQ/INCLUDE/VOCFILE.H
type VOCHeader (line 45) | typedef struct _VOCHeader {
FILE: VQ/INCLUDE/VQ.H
type VQHeader (line 56) | typedef struct _VQHeader {
FILE: VQ/INCLUDE/VQA32/VQAFILE.H
type VQAHeader (line 75) | typedef struct _VQAHeader {
FILE: VQ/INCLUDE/VQA32/VQAPLAY.H
type VQAConfig (line 161) | typedef struct _VQAConfig {
type VQAInfo (line 242) | typedef struct _VQAInfo {
type VQAStatistics (line 261) | typedef struct _VQAStatistics {
type VQAHandle (line 279) | typedef struct _VQAHandle {
FILE: VQ/INCLUDE/VQM32/CAPTOKEN.H
type CaptionText (line 55) | typedef struct _CaptionText {
FILE: VQ/INCLUDE/VQM32/FONT.H
type Font (line 52) | typedef struct _Font {
type FontInfo (line 63) | typedef struct _FontInfo {
FILE: VQ/INCLUDE/VQM32/HUFFMAN.H
type TreeNode (line 48) | typedef struct _TreeNode {
type HuffCode (line 62) | typedef struct _HuffCode {
FILE: VQ/INCLUDE/VQM32/IFF.H
type FormHeader (line 48) | typedef struct _FormHeader {
type Context (line 60) | typedef struct _Context {
type IFFHandle (line 74) | typedef struct _IFFHandle {
FILE: VQ/INCLUDE/VQM32/MIXFILE.H
type MIXHeader (line 58) | typedef struct _MIXHeader {
type MIXSubBlock (line 69) | typedef struct _MIXSubBlock {
type MIXHandle (line 83) | typedef struct _MIXHandle {
FILE: VQ/INCLUDE/VQM32/REALMODE.H
type REALPTR (line 51) | typedef unsigned long REALPTR;
type RMInfo (line 68) | typedef struct _RMInfo {
FILE: VQ/INCLUDE/VQM32/SOSCOMP.H
type _SOS_COMPRESS_INFO (line 42) | typedef struct _tagCOMPRESS_INFO {
type _SOS_COMPRESS_HEADER (line 67) | typedef struct _tagCOMPRESS_HEADER {
FILE: VQ/INCLUDE/VQM32/TARGA.H
type TGAHeader (line 60) | typedef struct _TGAHeader {
type TGAHandle (line 99) | typedef struct _TGAHandle {
FILE: VQ/INCLUDE/VQM32/VESAVID.H
type VESAInfo (line 90) | typedef struct _VESAInfo {
type VESAModeInfo (line 138) | typedef struct _VESAModeInfo {
FILE: VQ/INCLUDE/VQM32/VIDEO.H
type DisplayInfo (line 71) | typedef struct _DisplayInfo {
FILE: VQ/INCLUDE/WAVEFILE.H
type WAVHeader (line 47) | typedef struct _WAVHeader {
type WAVFormat (line 63) | typedef struct _WAVFormat {
FILE: VQ/INCLUDE/WWLIB32/AUDIO.H
type AUDHeaderType (line 49) | typedef struct {
type Sample_Type (line 64) | typedef enum {
type Score_Type (line 77) | typedef enum {
type SFX_Type (line 96) | typedef enum {
FILE: VQ/INCLUDE/WWLIB32/BUFFER.H
function class (line 60) | class BufferClass {
function Get_Size (line 110) | inline long BufferClass::Get_Size(void)
FILE: VQ/INCLUDE/WWLIB32/FILE.H
type FileFlags_Type (line 63) | typedef enum {
type FileInitErrorType (line 89) | typedef enum {
type FileErrorType (line 107) | typedef enum {
type FileDataType (line 139) | typedef struct {
type find_t (line 245) | struct find_t
type find_t (line 246) | struct find_t
FILE: VQ/INCLUDE/WWLIB32/GBUFFER.H
function class (line 164) | class GraphicViewPortClass {
function Get_Offset (line 288) | inline long GraphicViewPortClass::Get_Offset(void)
function Get_Height (line 303) | inline int GraphicViewPortClass::Get_Height(void)
function Get_Width (line 318) | inline int GraphicViewPortClass::Get_Width(void)
function Get_XAdd (line 334) | inline int GraphicViewPortClass::Get_XAdd(void)
function Get_XPos (line 348) | inline int GraphicViewPortClass::Get_XPos(void)
function Get_YPos (line 366) | inline int GraphicViewPortClass::Get_YPos(void)
function GraphicBufferClass (line 381) | inline GraphicBufferClass *GraphicViewPortClass::Get_Graphic_Buffer(void)
function Size_Of_Region (line 398) | inline long GraphicViewPortClass::Size_Of_Region(int w, int h)
function Put_Pixel (line 415) | inline void GraphicViewPortClass::Put_Pixel(int x, int y, unsigned char ...
function Get_Pixel (line 432) | inline int GraphicViewPortClass::Get_Pixel(int x, int y)
function Clear (line 449) | inline void GraphicViewPortClass::Clear(unsigned char color)
function To_Buffer (line 466) | inline long GraphicViewPortClass::To_Buffer(int x, int y, int w, int h, ...
function To_Buffer (line 483) | inline long GraphicViewPortClass::To_Buffer(int x, int y, int w, int h, ...
function To_Buffer (line 500) | inline long GraphicViewPortClass::To_Buffer(BufferClass *buff)
function BOOL (line 517) | inline BOOL GraphicViewPortClass::Blit( GraphicViewPortClass& dest, int ...
function BOOL (line 535) | inline BOOL GraphicViewPortClass::Blit( GraphicViewPortClass& dest, int ...
function BOOL (line 552) | inline BOOL GraphicViewPortClass::Blit( GraphicViewPortClass& dest, BOOL...
function BOOL (line 570) | inline BOOL GraphicViewPortClass::Scale( GraphicViewPortClass &dest, int...
function BOOL (line 588) | inline BOOL GraphicViewPortClass::Scale( GraphicViewPortClass &dest, int...
function BOOL (line 606) | inline BOOL GraphicViewPortClass::Scale( GraphicViewPortClass &dest, BOO...
function BOOL (line 623) | inline BOOL GraphicViewPortClass::Scale( GraphicViewPortClass &dest, cha...
function Print (line 639) | inline unsigned long GraphicViewPortClass::Print(char const *str, int x,...
function Print (line 655) | inline unsigned long GraphicViewPortClass::Print(int num, int x, int y, ...
function Print (line 674) | inline unsigned long GraphicViewPortClass::Print(short num, int x, int y...
function Print (line 692) | inline unsigned long GraphicViewPortClass::Print(long num, int x, int y,...
function Draw_Stamp (line 710) | inline void GraphicViewPortClass::Draw_Stamp(void const *icondata, int i...
function VOID (line 727) | inline VOID GraphicViewPortClass::Draw_Line(int sx, int sy, int dx, int ...
function VOID (line 744) | inline VOID GraphicViewPortClass::Fill_Rect(int sx, int sy, int dx, int ...
function VOID (line 762) | inline VOID GraphicViewPortClass::Remap(int sx, int sy, int width, int h...
function VOID (line 766) | inline VOID GraphicViewPortClass::Fill_Quad(VOID *span_buff, int x0, int...
function VOID (line 782) | inline VOID GraphicViewPortClass::Remap(VOID *remap)
function Buffer_To_Page (line 804) | inline long Buffer_To_Page(int x, int y, int w, int h, void *Buffer, Gra...
function To_Page (line 824) | inline long BufferClass::To_Page(int w, int h, GraphicViewPortClass &view)
function To_Page (line 842) | inline long BufferClass::To_Page(GraphicViewPortClass &view)
function To_Page (line 860) | inline long BufferClass::To_Page(int x, int y, int w, int h, GraphicView...
FILE: VQ/INCLUDE/WWLIB32/IFF.H
type PicturePlaneType (line 64) | typedef enum {
type CompressionType (line 77) | typedef enum {
type CompHeaderType (line 91) | typedef struct {
FILE: VQ/INCLUDE/WWLIB32/KEYBOARD.H
type KeyASCIIType (line 120) | typedef enum {
type KeyNumType (line 319) | typedef enum {
FILE: VQ/INCLUDE/WWLIB32/MEMFLAG.H
type MemoryFlagType (line 43) | typedef enum {
FILE: VQ/INCLUDE/WWLIB32/PLAYCD.H
type SEGSEL (line 49) | typedef struct {
type SREGS (line 59) | struct SREGS
type SREGS (line 60) | struct SREGS
type TinfoType (line 71) | struct TinfoType {
type StatType (line 96) | struct StatType {
type VolmType (line 121) | struct VolmType {
type PlayType (line 151) | struct PlayType {
type StopType (line 165) | struct StopType {
function class (line 181) | class GetCDClass {
function class (line 212) | class RedBookClass : public GetCDClass {
FILE: VQ/INCLUDE/WWLIB32/SHAPE.H
type MakeShapeFlags_Type (line 46) | typedef enum {
type ShapeFlags_Type (line 58) | typedef enum {
type Shape_Type (line 81) | typedef struct {
type ShapeBlock_Type (line 95) | typedef struct {
FILE: VQ/INCLUDE/WWLIB32/SOS.H
type _SOS_CAPABILITIES (line 48) | typedef struct _tagCAPABILITIES
type _SOS_CAPABILITIES (line 70) | typedef _SOS_CAPABILITIES far * LPSOSDEVICECAPS;
type _SOS_FILL_INFO (line 175) | typedef struct _tagFillInfo
type _SOS_CAPS_INFO (line 186) | typedef struct _tagCapsInfo
type _SOS_SAMPLE (line 200) | typedef struct _tagSAMPLE
type _FILEHEADER (line 296) | typedef struct
type _DRIVERHEADER (line 313) | typedef struct
type _SOS_HARDWARE (line 333) | typedef struct
type _SOS_START_SAMPLE (line 350) | typedef struct
type _SOS_INIT_DRIVER (line 416) | typedef struct
type EVDS_STRUCT (line 539) | typedef struct
type VDS_STRUCT (line 550) | typedef struct
FILE: VQ/INCLUDE/WWLIB32/SOSCOMP.H
type _SOS_COMPRESS_INFO (line 42) | typedef struct _tagCOMPRESS_INFO {
type _SOS_COMPRESS_HEADER (line 67) | typedef struct _tagCOMPRESS_HEADER {
FILE: VQ/INCLUDE/WWLIB32/SOSDEFS.H
type BOOL (line 53) | typedef int BOOL;
type UINT (line 54) | typedef unsigned int UINT;
type BYTE (line 55) | typedef unsigned char BYTE;
type WORD (line 56) | typedef unsigned WORD;
type LONG (line 58) | typedef signed long LONG;
type DWORD (line 60) | typedef unsigned long DWORD;
type BYTE (line 62) | typedef BYTE * PBYTE;
type WORD (line 64) | typedef WORD * PWORD;
type LONG (line 65) | typedef LONG * PLONG;
type VOID (line 66) | typedef VOID * PVOID;
type BYTE (line 68) | typedef BYTE far * LPBYTE;
type BYTE (line 69) | typedef BYTE far * LPSTR;
type WORD (line 70) | typedef WORD far * LPWORD;
type LONG (line 71) | typedef LONG far * LPLONG;
type VOID (line 72) | typedef VOID far * LPVOID;
type BYTE (line 74) | typedef BYTE huge * HPBYTE;
type BYTE (line 75) | typedef BYTE huge * HPSTR;
type WORD (line 76) | typedef WORD huge * HPWORD;
type LONG (line 77) | typedef LONG huge * HPLONG;
type VOID (line 78) | typedef VOID huge * HPVOID;
type HANDLE (line 80) | typedef unsigned HANDLE;
FILE: VQ/INCLUDE/WWLIB32/SOSRES.H
type _RES_FILE_HEADER (line 40) | typedef struct
type _RES_BLOCK_HEADER (line 60) | typedef struct
type _RES_SYNCMARK (line 83) | typedef struct _tagSYNCMARK
type _RES_TAG (line 99) | typedef union
type _SOS_FILTER (line 107) | typedef union
FILE: VQ/INCLUDE/WWLIB32/TIMER.H
type BaseTimerEnum (line 50) | typedef enum BaseTimerEnum {
function class (line 55) | class TimerClass {
function Reset (line 80) | inline long TimerClass::Reset(BOOL start)
function class (line 86) | class CountDownTimerClass : private TimerClass {
function Stop (line 107) | inline long CountDownTimerClass::Stop(void)
function Start (line 113) | inline long CountDownTimerClass::Start(void)
function Reset (line 119) | inline long CountDownTimerClass::Reset(BOOL start)
FILE: VQ/INCLUDE/WWLIB32/VBUFFER.H
function class (line 196) | class VideoViewPortClass {
function class (line 291) | class VideoBufferClass: public VideoViewPortClass {
function Get_Offset (line 311) | inline long VideoViewPortClass::Get_Offset(void)
function Get_Height (line 326) | inline int VideoViewPortClass::Get_Height(void)
function Get_Width (line 341) | inline int VideoViewPortClass::Get_Width(void)
function Get_XAdd (line 357) | inline int VideoViewPortClass::Get_XAdd(void)
function Get_XPos (line 371) | inline int VideoViewPortClass::Get_XPos(void)
function Get_YPos (line 389) | inline int VideoViewPortClass::Get_YPos(void)
function VideoBufferClass (line 404) | inline VideoBufferClass *VideoViewPortClass::Get_Video_Buffer(void)
function Put_Pixel (line 421) | inline void VideoViewPortClass::Put_Pixel(int x, int y, unsigned char co...
function Get_Pixel (line 438) | inline int VideoViewPortClass::Get_Pixel(int x, int y)
function Clear (line 455) | inline void VideoViewPortClass::Clear(unsigned char color)
function To_Buffer (line 472) | inline long VideoViewPortClass::To_Buffer(int x, int y, int w, int h, vo...
function To_Buffer (line 489) | inline long VideoViewPortClass::To_Buffer(int x, int y, int w, int h, Bu...
function To_Buffer (line 506) | inline long VideoViewPortClass::To_Buffer(BufferClass *buff)
function BOOL (line 523) | inline BOOL VideoViewPortClass::Blit( GraphicViewPortClass& dest, int x_...
function BOOL (line 541) | inline BOOL VideoViewPortClass::Blit( GraphicViewPortClass& dest, int dx...
function BOOL (line 558) | inline BOOL VideoViewPortClass::Blit( GraphicViewPortClass& dest, BOOL t...
function BOOL (line 575) | inline BOOL VideoViewPortClass::Blit( VideoViewPortClass& dest, int x_pi...
function BOOL (line 593) | inline BOOL VideoViewPortClass::Blit( VideoViewPortClass& dest, int dx, ...
function BOOL (line 610) | inline BOOL VideoViewPortClass::Blit( VideoViewPortClass& dest, BOOL trans)
function BOOL (line 627) | inline BOOL VideoViewPortClass::Scale( GraphicViewPortClass &dest, int s...
function BOOL (line 645) | inline BOOL VideoViewPortClass::Scale( GraphicViewPortClass &dest, int s...
function BOOL (line 663) | inline BOOL VideoViewPortClass::Scale( GraphicViewPortClass &dest, BOOL ...
function BOOL (line 680) | inline BOOL VideoViewPortClass::Scale( GraphicViewPortClass &dest, char ...
function BOOL (line 696) | inline BOOL VideoViewPortClass::Scale( VideoViewPortClass &dest, int src...
function BOOL (line 714) | inline BOOL VideoViewPortClass::Scale( VideoViewPortClass &dest, int src...
function BOOL (line 732) | inline BOOL VideoViewPortClass::Scale( VideoViewPortClass &dest, BOOL tr...
function BOOL (line 749) | inline BOOL VideoViewPortClass::Scale( VideoViewPortClass &dest, char *r...
function Print (line 765) | inline unsigned long VideoViewPortClass::Print(char const *str, int x, i...
function Print (line 783) | inline unsigned long VideoViewPortClass::Print(int num, int x, int y, in...
function Print (line 802) | inline unsigned long VideoViewPortClass::Print(short num, int x, int y, ...
function Print (line 822) | inline unsigned long VideoViewPortClass::Print(long num, int x, int y, i...
function To_Page (line 851) | inline long BufferClass::To_Page(int w, int h, VideoViewPortClass &view)
function To_Page (line 869) | inline long BufferClass::To_Page(VideoViewPortClass &view)
function To_Page (line 887) | inline long BufferClass::To_Page(int x, int y, int w, int h, VideoViewPo...
function Buffer_To_Page (line 904) | inline long Buffer_To_Page(int x, int y, int w, int h, void *Buffer, Vid...
function BOOL (line 925) | inline BOOL GraphicViewPortClass::Blit( VideoViewPortClass& dest, int x_...
function BOOL (line 943) | inline BOOL GraphicViewPortClass::Blit( VideoViewPortClass& dest, int dx...
function BOOL (line 960) | inline BOOL GraphicViewPortClass::Blit( VideoViewPortClass& dest, BOOL t...
function BOOL (line 976) | inline BOOL GraphicViewPortClass::Scale( VideoViewPortClass &dest, int s...
function BOOL (line 994) | inline BOOL GraphicViewPortClass::Scale( VideoViewPortClass &dest, int s...
function BOOL (line 1012) | inline BOOL GraphicViewPortClass::Scale( VideoViewPortClass &dest, BOOL ...
function BOOL (line 1029) | inline BOOL GraphicViewPortClass::Scale( VideoViewPortClass &dest, char ...
FILE: VQ/INCLUDE/WWLIB32/VIDEO.H
type VesaInfoType (line 88) | typedef struct {
type VesaModeInfoType (line 138) | typedef struct {
FILE: VQ/INCLUDE/WWLIB32/WINDOWS.H
type WindowIndexType (line 63) | typedef enum {
FILE: VQ/INCLUDE/WWLIB32/WSA.H
type WSAType (line 62) | typedef enum {
type WSAOpenType (line 72) | typedef enum {
FILE: VQ/INCLUDE/WWLIB32/WWSTD.H
type VOID (line 165) | typedef void VOID;
function T (line 231) | T Max(T a, T b)
type ColorType (line 285) | typedef enum {
FILE: VQ/INCLUDE/WWLIB32/_FILE.H
type FileHandleType (line 77) | typedef struct {
FILE: VQ/VQA32/AUDIO.CPP
function StartAddr (line 122) | static void StartAddr(void)
function VQA_StartTimerInt (line 151) | long VQA_StartTimerInt(VQAHandleP *vqap, long init)
function VQA_StopTimerInt (line 229) | void VQA_StopTimerInt(VQAHandleP *vqap)
function TimerCallback (line 300) | void far TimerCallback(void)
function VQA_OpenAudio (line 329) | long VQA_OpenAudio(VQAHandleP *vqap)
function VQA_CloseAudio (line 553) | void VQA_CloseAudio(VQAHandleP *vqap)
function AutoDetect (line 614) | long AutoDetect(_SOS_CAPABILITIES *digicaps, long bitsize, long channels)
function VQA_StartAudio (line 706) | long VQA_StartAudio(VQAHandleP *vqap)
function VQA_StopAudio (line 812) | void VQA_StopAudio(VQAHandleP *vqap)
function AudioCallback (line 975) | void far cdecl AudioCallback(WORD wDriverHandle,WORD wAction,WORD wSampl...
function EndAddr (line 1031) | static void EndAddr(void)
function VQA_SetTimer (line 1066) | void VQA_SetTimer(VQAHandleP *vqap, long time, long method)
function VQA_GetTime (line 1176) | unsigned long VQA_GetTime(VQAHandleP *vqap)
function VQA_TimerMethod (line 1296) | long VQA_TimerMethod(void)
FILE: VQ/VQA32/CAPTION.CPP
function CaptionInfo (line 87) | CaptionInfo *OpenCaptions(void *captions, void *font)
function CloseCaptions (line 156) | void CloseCaptions(CaptionInfo *cap)
function DoCaptions (line 184) | void DoCaptions(CaptionInfo *cap, unsigned long frame)
function CaptionNode (line 328) | static CaptionNode *AddCaptionNode(CaptionList *list, CaptionText *captext)
function RemCaptionNode (line 381) | static void RemCaptionNode(CaptionList *list, CaptionNode *node)
FILE: VQ/VQA32/CAPTION.H
type CaptionNode (line 61) | typedef struct _CaptionNode {
type CaptionList (line 84) | typedef struct _CaptionList {
type CaptionInfo (line 102) | typedef struct _CaptionInfo {
FILE: VQ/VQA32/CONFIG.CPP
type VMTAGS (line 188) | enum VMTAGS {
type _VideoModeTag (line 213) | struct _VideoModeTag {
function VQA_INIConfig (line 268) | void VQA_INIConfig(VQAConfig *config)
function VQA_DefaultConfig (line 496) | void VQA_DefaultConfig(VQAConfig *config)
FILE: VQ/VQA32/DRAWER.CPP
function VQA_Configure_Drawer (line 153) | void VQA_Configure_Drawer(VQAHandleP *vqap)
function Select_Frame (line 420) | static long Select_Frame(VQAHandleP *vqap)
function Prepare_Frame (line 580) | static void Prepare_Frame(VQAData *vqabuf)
function DrawFrame_Xmode (line 668) | static long DrawFrame_Xmode(VQAHandle *vqa)
function DrawFrame_XmodeBuf (line 782) | static long DrawFrame_XmodeBuf(VQAHandle *vqa)
function DrawFrame_XmodeVRAM (line 908) | static long DrawFrame_XmodeVRAM(VQAHandle *vqa)
function PageFlip_Xmode (line 1012) | static void PageFlip_Xmode(VQAHandle *vqa)
function DrawFrame_MCGA (line 1118)
Copy disabled (too large)
Download .json
Condensed preview — 2066 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (31,501K chars).
[
{
"path": "CODE/2KEYFBUF.ASM",
"chars": 120647,
"preview": ";\n;\tCommand & Conquer Red Alert(tm)\n;\tCopyright 2025 Electronic Arts Inc.\n;\n;\tThis program is free software: you can red"
},
{
"path": "CODE/2KEYFRAM.CPP",
"chars": 21903,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/2SUPPORT.ASM",
"chars": 18206,
"preview": ";\n;\tCommand & Conquer Red Alert(tm)\n;\tCopyright 2025 Electronic Arts Inc.\n;\n;\tThis program is free software: you can red"
},
{
"path": "CODE/2TXTPRNT.ASM",
"chars": 20458,
"preview": ";\n;\tCommand & Conquer Red Alert(tm)\n;\tCopyright 2025 Electronic Arts Inc.\n;\n;\tThis program is free software: you can red"
},
{
"path": "CODE/AADATA.CPP",
"chars": 38145,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/ABSTRACT.CPP",
"chars": 13775,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/ABSTRACT.H",
"chars": 5386,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/ADAMTEMP.MAK",
"chars": 30668,
"preview": "#\n#\tCommand & Conquer Red Alert(tm)\n#\tCopyright 2025 Electronic Arts Inc.\n#\n#\tThis program is free software: you can red"
},
{
"path": "CODE/ADATA.CPP",
"chars": 102258,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/ADPCM.CPP",
"chars": 2063,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/AIRCRAFT.CPP",
"chars": 183560,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/AIRCRAFT.H",
"chars": 9750,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/ALLOC.CPP",
"chars": 23175,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/ANIM.CPP",
"chars": 54419,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/ANIM.CPP.BAK",
"chars": 53404,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/ANIM.H",
"chars": 6140,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/AUDIO.CPP",
"chars": 40407,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/AUDIO.CPP.BAK",
"chars": 35139,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/AUDIO.H",
"chars": 3654,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/B64PIPE.CPP",
"chars": 7780,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/B64PIPE.H",
"chars": 3735,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/B64STRAW.CPP",
"chars": 5610,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/B64STRAW.H",
"chars": 3715,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/BAR.CPP",
"chars": 13420,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/BAR.H",
"chars": 3966,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/BASE.CPP",
"chars": 29345,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/BASE.H",
"chars": 4596,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/BASE64.CPP",
"chars": 18866,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/BASE64.H",
"chars": 2601,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/BBDATA.CPP",
"chars": 18180,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/BDATA.CPP",
"chars": 200244,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/BENCH.CPP",
"chars": 10821,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/BENCH.H",
"chars": 4612,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/BFILE.MAK",
"chars": 34709,
"preview": "#\n#\tCommand & Conquer Red Alert(tm)\n#\tCopyright 2025 Electronic Arts Inc.\n#\n#\tThis program is free software: you can red"
},
{
"path": "CODE/BFILE2.MAK",
"chars": 34164,
"preview": "#\n#\tCommand & Conquer Red Alert(tm)\n#\tCopyright 2025 Electronic Arts Inc.\n#\n#\tThis program is free software: you can red"
},
{
"path": "CODE/BFIOFILE.CPP",
"chars": 40367,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/BFIOFILE.H",
"chars": 3857,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/BIGCHECK.CPP",
"chars": 2200,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/BIGCHECK.H",
"chars": 1762,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/BLOWFISH.CPP",
"chars": 36087,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/BLOWFISH.H",
"chars": 4669,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/BLOWPIPE.CPP",
"chars": 10243,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/BLOWPIPE.H",
"chars": 3494,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/BLWSTRAW.CPP",
"chars": 7857,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/BLWSTRAW.H",
"chars": 3687,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/BMP8.CPP",
"chars": 6163,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/BMP8.H",
"chars": 1106,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/BUFF.CPP",
"chars": 13573,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/BUFF.H",
"chars": 3888,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/BUFFERX.H",
"chars": 4165,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/BUGS.TXT",
"chars": 2517,
"preview": "Fixed:\nA415,A436,A437,A446,A447,A453,A466,A475,A488,\nB171,B326,B407,B443,B530,B550,B566,B578,B600,\nB609,B626,B628,B632,B"
},
{
"path": "CODE/BUILDING.CPP",
"chars": 240172,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/BUILDING.H",
"chars": 12458,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/BULLET.CPP",
"chars": 51132,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/BULLET.H",
"chars": 5547,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/C&CZERO.PJT",
"chars": 17367,
"preview": ";Codewright Project File (do not remove or modify this line)\n[ProjInit]\nProjSetConfigFlags=0x00010140\n\n[Files]\nc:\\projec"
},
{
"path": "CODE/CARGO.CPP",
"chars": 10859,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/CARGO.H",
"chars": 3785,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/CARRY.CPP",
"chars": 7291,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/CARRY.H",
"chars": 3253,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/CCDDE.CPP",
"chars": 22859,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/CCDDE.H",
"chars": 4336,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/CCFILE.CPP",
"chars": 32905,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/CCFILE.H",
"chars": 4763,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/CCINI.CPP",
"chars": 102705,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/CCINI.H",
"chars": 6868,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/CCMPATH.CPP",
"chars": 15053,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/CCPTR.CPP",
"chars": 4574,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/CCPTR.H",
"chars": 4932,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/CCTEN.CPP",
"chars": 22382,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/CC_ICON.RC",
"chars": 48,
"preview": "\n#define ICON_1\t1\n\n\nICON_1 ICON \"redalert.ico\"\n\n"
},
{
"path": "CODE/CC_ICON.RH",
"chars": 17,
"preview": "#define ICON_1\t1\n"
},
{
"path": "CODE/CDATA.CPP",
"chars": 100886,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/CDFILE.CPP",
"chars": 34295,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/CDFILE.H",
"chars": 4771,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/CELL.CPP",
"chars": 131143,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/CELL.H",
"chars": 10527,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/CHECKBOX.CPP",
"chars": 6257,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/CHECKBOX.H",
"chars": 2772,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/CHEKLIST.CPP",
"chars": 20499,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/CHEKLIST.H",
"chars": 3952,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/CLASS.CPP",
"chars": 734,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/CO-WC32.LNT",
"chars": 2889,
"preview": "// Compiler Options for Watcom C, C++ 32 bit\n\n-cwc\n\n// This file contains options to allow PC-lint to process sour"
},
{
"path": "CODE/COLRLIST.CPP",
"chars": 14639,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/COLRLIST.H",
"chars": 3956,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/COMBAT.CPP",
"chars": 21562,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/COMBUF.CPP",
"chars": 50442,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/COMBUF.H",
"chars": 8403,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/COMINIT.CPP",
"chars": 1407,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/COMINIT.H",
"chars": 957,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/COMPAT.H",
"chars": 7851,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/COMQUEUE.CPP",
"chars": 40196,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/COMQUEUE.H",
"chars": 8927,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/CONFDLG.CPP",
"chars": 7876,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/CONFDLG.H",
"chars": 2707,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/CONNECT.CPP",
"chars": 35910,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/CONNECT.CPP.BAK",
"chars": 35909,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/CONNECT.H",
"chars": 14285,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/CONNMGR.H",
"chars": 7507,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/CONQUER.CPP",
"chars": 182181,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/CONQUER.CPP.BAK",
"chars": 146886,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/CONQUER.H",
"chars": 31633,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/CONQUER.LNT",
"chars": 3219,
"preview": "// Watcom C, C++ (32 bit), -si4 -sp4,\n// Standard lint options\n\n// Compiler Options for Watcom C, C++ 32 bit\n\n-cwc\n"
},
{
"path": "CODE/CONST.CPP",
"chars": 27816,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/CONTROL.CPP",
"chars": 15672,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/CONTROL.H",
"chars": 4315,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/COORD.CPP",
"chars": 33414,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/COORDA.ASM",
"chars": 6942,
"preview": ";\n;\tCommand & Conquer Red Alert(tm)\n;\tCopyright 2025 Electronic Arts Inc.\n;\n;\tThis program is free software: you can red"
},
{
"path": "CODE/CPUID.ASM",
"chars": 5679,
"preview": ";\n;\tCommand & Conquer Red Alert(tm)\n;\tCopyright 2025 Electronic Arts Inc.\n;\n;\tThis program is free software: you can red"
},
{
"path": "CODE/CRATE.CPP",
"chars": 10356,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/CRATE.H",
"chars": 3379,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/CRC.CPP",
"chars": 7494,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/CRC.H",
"chars": 4696,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/CRCPIPE.CPP",
"chars": 6234,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/CRCPIPE.H",
"chars": 2947,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/CRCSTRAW.CPP",
"chars": 6311,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/CRCSTRAW.H",
"chars": 3008,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/CREDITS.CPP",
"chars": 11472,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/CREDITS.H",
"chars": 3363,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/CREW.CPP",
"chars": 2477,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/CREW.H",
"chars": 3119,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/CSTRAW.CPP",
"chars": 5558,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/CSTRAW.H",
"chars": 3301,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/CWSTUB.C",
"chars": 2004,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/DDE.CPP",
"chars": 19463,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/DDE.H",
"chars": 7172,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/DEBUG.CPP",
"chars": 21261,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/DEBUG.H",
"chars": 3397,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/DEFINES.H",
"chars": 102995,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/DESCDLG.CPP",
"chars": 6080,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/DESCDLG.H",
"chars": 3089,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/DIAL8.CPP",
"chars": 13584,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/DIAL8.H",
"chars": 3154,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/DIALOG.CPP",
"chars": 43498,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/DIBAPI.H",
"chars": 6541,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/DIBFILE.CPP",
"chars": 21958,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/DIBUTIL.CPP",
"chars": 38934,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/DIBUTIL.H",
"chars": 1389,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/DISPLAY.CPP",
"chars": 195157,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/DISPLAY.H",
"chars": 12111,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/DOOR.CPP",
"chars": 11956,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/DOOR.H",
"chars": 3740,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/DPMI.CPP",
"chars": 5080,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/DPMI.H",
"chars": 6347,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/DRIVE.CPP",
"chars": 92970,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/DRIVE.H",
"chars": 8440,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/DROP.CPP",
"chars": 6139,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/DROP.H",
"chars": 9398,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/DTABLE.CPP",
"chars": 46114,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/DYNAVEC.CPP",
"chars": 17266,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/EDIT.CPP",
"chars": 23431,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/EDIT.H",
"chars": 4373,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/EGOS.CPP",
"chars": 31841,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/EGOS.H",
"chars": 3084,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/ENDING.CPP",
"chars": 6199,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/ENDING.H",
"chars": 2520,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/ENG/CONQUER.BAK",
"chars": 17970,
"preview": "# TXT_NONE\n%3d.%02d\n# TXT_CREDIT_FORMAT\nTime:%02d:%02d:%02d\n# TXT_TIME_FORMAT_HOURS\nTime:%02d:%02d\n# TXT_TIME_FORMAT_NO_"
},
{
"path": "CODE/ENG/CONQUER.TXT",
"chars": 18652,
"preview": "# TXT_NONE\n%3d.%02d\n# TXT_CREDIT_FORMAT\nTime:%02d:%02d:%02d\n# TXT_TIME_FORMAT_HOURS\nTime:%02d:%02d\n# TXT_TIME_FORMAT_NO_"
},
{
"path": "CODE/ENG/CREDITS.BAK",
"chars": 5245,
"preview": " \t\t Executive Producer \t Brett W. Sperry\n Producer \t Ed Del Castillo\n\n\t\t Original Con"
},
{
"path": "CODE/ENG/CREDITS.TXT",
"chars": 8802,
"preview": "\t\t\t\tAftermath Credits\n\n\t\tExecutive Producer\tBrett W. Sperry\n \n\t\t\t Producer\tLewis S. Peterson\n \n\t\t\tProgrammer\tBa"
},
{
"path": "CODE/ENG/DEBUG.BAK",
"chars": 13459,
"preview": "Clear the map\n# TXT_CLEAR_MAP\nInherit previous map\n# TXT_INHERIT_MAP\nSelect Special Options\n# TXT_SPECIAL_OPTIONS\nTarget"
},
{
"path": "CODE/ENG/DEBUG.TXT",
"chars": 13460,
"preview": "Clear the map\n# TXT_CLEAR_MAP\nInherit previous map\n# TXT_INHERIT_MAP\nSelect Special Options\n# TXT_SPECIAL_OPTIONS\nTarget"
},
{
"path": "CODE/ENG/ENG/CONQUER.TXT",
"chars": 18652,
"preview": "# TXT_NONE\n%3d.%02d\n# TXT_CREDIT_FORMAT\nTime:%02d:%02d:%02d\n# TXT_TIME_FORMAT_HOURS\nTime:%02d:%02d\n# TXT_TIME_FORMAT_NO_"
},
{
"path": "CODE/ENG/ENG/CREDITS.TXT",
"chars": 8802,
"preview": "\t\t\t\tAftermath Credits\n\n\t\tExecutive Producer\tBrett W. Sperry\n \n\t\t\t Producer\tLewis S. Peterson\n \n\t\t\tProgrammer\tBa"
},
{
"path": "CODE/ENG/FRE/CONQUER.TXT",
"chars": 20029,
"preview": "# TXT_NONE \n%3d.%02d\n# TXT_CREDIT_FORMAT\nTemps:%02d:%02d:%02d\n# TXT_TIME_FORMAT_HOURS\nTemps:%02d:%02d\n# T"
},
{
"path": "CODE/ENG/FRE/CREDITS.TXT",
"chars": 7976,
"preview": "\t\tProducteur Excutif\tBrett W. Sperry\n\n\t\t\t Producteur\tLewis S. Peterson\n\n\t\t\tProgrammeur\tBarry Green\n\n\t\tDirection Techniqu"
},
{
"path": "CODE/ENG/GER/CONQUER.TXT",
"chars": 20094,
"preview": "# TXT_NONE\n%3d.%02d\n# TXT_CREDIT_FORMAT\nZeit: %02d:%02d:%02d\n# TXT_TIME_FORMAT_HOURS\nZeit: %02d:%02d\n# TXT_TIME_FORMAT_N"
},
{
"path": "CODE/ENG/GER/CREDITS.TXT",
"chars": 4864,
"preview": "\n\n\t Ausfhrender Produzent\tBrett W. Sperry\n\n\t\t\t Produzent\tLewis S. Peterson\n\n\t\t Programmierung\tBarry Green\n\n\t\t T"
},
{
"path": "CODE/ENG/MESSAGE.TXT",
"chars": 2656,
"preview": "# MESSAGE_NONE\nYou must build a Windtrap to provide power to your base. Without power, your structures will decay.\n# ME"
},
{
"path": "CODE/EVENT.CPP",
"chars": 46859,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/EVENT.H",
"chars": 10179,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/EXPAND.CPP",
"chars": 19576,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/EXTERNS.H",
"chars": 16809,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/FACE.CPP",
"chars": 10091,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/FACE.H",
"chars": 3336,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/FACING.CPP",
"chars": 11081,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/FACING.H",
"chars": 3774,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/FACTORY.CPP",
"chars": 37649,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/FACTORY.H",
"chars": 5606,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/FAKESOCK.H",
"chars": 2870,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/FIELD.CPP",
"chars": 6698,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/FIELD.H",
"chars": 3358,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/FILE.CPP",
"chars": 730,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/FILEPCX.H",
"chars": 3249,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/FINDPATH.CPP",
"chars": 46057,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/FIXED.CPP",
"chars": 11477,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/FIXED.H",
"chars": 13640,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/FLASHER.CPP",
"chars": 6014,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/FLASHER.H",
"chars": 3241,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/FLY.CPP",
"chars": 7655,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/FLY.H",
"chars": 3662,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/FOOT.CPP",
"chars": 124893,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/FOOT.H",
"chars": 14826,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/FOREIGN.TXT",
"chars": 1894,
"preview": "For German version:\n\ncall the batch file GERMAN.BAT. This will copy the appropriate conquer.h and\ncredits.txt files whe"
},
{
"path": "CODE/FTIMER.H",
"chars": 41601,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/FUNCTION.H",
"chars": 31300,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/FUNCTION.I",
"chars": 2024,
"preview": ";\n;\tCommand & Conquer Red Alert(tm)\n;\tCopyright 2025 Electronic Arts Inc.\n;\n;\tThis program is free software: you can red"
},
{
"path": "CODE/FUSE.CPP",
"chars": 12315,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/FUSE.H",
"chars": 3956,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
},
{
"path": "CODE/GADGET.CPP",
"chars": 47545,
"preview": "/*\n**\tCommand & Conquer Red Alert(tm)\n**\tCopyright 2025 Electronic Arts Inc.\n**\n**\tThis program is free software: you ca"
}
]
// ... and 1866 more files (download for full content)
About this extraction
This page contains the full source code of the electronicarts/CnC_Red_Alert GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 2066 files (28.0 MB), approximately 7.4M tokens, and a symbol index with 4939 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.