├── .gitignore ├── .idea ├── .gitignore ├── .name ├── artifacts │ ├── NuBuildGDXLinuxARM64_jar.xml │ └── NuBuildGDX_jar.xml ├── libraries │ ├── annotations_24_0_1.xml │ ├── gdx_1_9_14.xml │ ├── gdx_backend_lwjgl3_1_9_14.xml │ ├── gdx_platform_1_9_14_natives_desktop.xml │ ├── jinput_2_0_10_natives_all.xml │ ├── jinput_2_0_9.xml │ ├── jna_5_15_0.xml │ ├── jna_platform_5_15_0.xml │ ├── lwjgl_3_3_4.xml │ ├── lwjgl_3_3_4_natives_freebsd.xml │ ├── lwjgl_3_3_4_natives_linux.xml │ ├── lwjgl_3_3_4_natives_linux_arm64.xml │ ├── lwjgl_3_3_4_natives_macos.xml │ ├── lwjgl_3_3_4_natives_macos_arm64.xml │ ├── lwjgl_3_3_4_natives_windows.xml │ ├── lwjgl_3_3_4_natives_windows_arm64.xml │ ├── lwjgl_glfw_3_3_4.xml │ ├── lwjgl_glfw_3_3_4_natives_freebsd.xml │ ├── lwjgl_glfw_3_3_4_natives_linux.xml │ ├── lwjgl_glfw_3_3_4_natives_linux_arm64.xml │ ├── lwjgl_glfw_3_3_4_natives_macos.xml │ ├── lwjgl_glfw_3_3_4_natives_macos_arm64.xml │ ├── lwjgl_glfw_3_3_4_natives_windows.xml │ └── lwjgl_glfw_3_3_4_natives_windows_arm64.xml ├── misc.xml ├── modules.xml └── vcs.xml ├── Games ├── Blood │ ├── blood128.png │ ├── blood16.png │ └── blood32.png ├── Duke3D │ ├── duke128.png │ ├── duke16.png │ └── duke32.png ├── Lot7P │ ├── lot7p128.png │ ├── lot7p16.png │ └── lot7p32.png ├── Nam │ ├── nam128.png │ ├── nam16.png │ └── nam32.png ├── PS │ ├── ps128.png │ ├── ps16.png │ └── ps32.png ├── RR │ ├── rr128.png │ ├── rr16.png │ └── rr32.png ├── RRRA │ ├── rr128.png │ ├── rr16.png │ └── rr32.png ├── SW │ ├── sw128.png │ ├── sw16.png │ └── sw32.png ├── Tekwar │ ├── tekwar128.png │ ├── tekwar16.png │ └── tekwar32.png ├── WH │ ├── wh128.png │ ├── wh16.png │ └── wh32.png ├── WH2 │ ├── whii128.png │ ├── whii16.png │ └── whii32.png ├── build128.png ├── build16.png ├── build32.png ├── iconopen.png ├── iconsettings.png ├── logodiscord.png ├── logoduke4.png ├── logom210.png └── logopaypal.png ├── Headers ├── headerblood.png ├── headerbuild.png ├── headerduke.png ├── headerlot7p.png ├── headernam.png ├── headernapalm.png ├── headerps.png ├── headerra.png ├── headerrr.png ├── headersw.png ├── headertw.png ├── headerwh.png ├── headerwh2.png └── headerwwii.png ├── LICENSE ├── META-INF ├── MANIFEST.MF └── MANIFEST.manifest ├── NuBuildGDX.iml ├── README.md ├── bloodgdx.dat ├── buildlic.txt ├── dukegdx.dat ├── gpl3.txt ├── libs ├── annotations-24.0.1.jar ├── arm64linux │ ├── libgdxarm64.so │ ├── libglfw.so │ └── liblwjgl.so ├── gdx-1.9.14.jar ├── gdx-backend-lwjgl3-1.9.14.jar ├── gdx-platform-1.9.14-natives-desktop.jar ├── jinput-2.0.10-natives-all.jar ├── jinput-2.0.9.jar ├── jna-5.15.0.jar ├── jna-platform-5.15.0.jar ├── libopenal64.so ├── libopenalarm64.so ├── lwjgl-3.3.4-natives-freebsd.jar ├── lwjgl-3.3.4-natives-linux-arm32.jar ├── lwjgl-3.3.4-natives-linux-arm64.jar ├── lwjgl-3.3.4-natives-linux.jar ├── lwjgl-3.3.4-natives-macos-arm64.jar ├── lwjgl-3.3.4-natives-macos.jar ├── lwjgl-3.3.4-natives-windows-arm64.jar ├── lwjgl-3.3.4-natives-windows.jar ├── lwjgl-3.3.4.jar ├── lwjgl-glfw-3.3.4-natives-freebsd.jar ├── lwjgl-glfw-3.3.4-natives-linux-arm32.jar ├── lwjgl-glfw-3.3.4-natives-linux-arm64.jar ├── lwjgl-glfw-3.3.4-natives-linux.jar ├── lwjgl-glfw-3.3.4-natives-macos-arm64.jar ├── lwjgl-glfw-3.3.4-natives-macos.jar ├── lwjgl-glfw-3.3.4-natives-windows-arm64.jar ├── lwjgl-glfw-3.3.4-natives-windows.jar ├── lwjgl-glfw-3.3.4.jar └── soft_oal.dll ├── lspgdx.dat ├── nuclear.ico ├── psgdx.dat ├── rrgdx.dat ├── src ├── META-INF │ └── MANIFEST.MF ├── com │ └── jcraft │ │ ├── jogg │ │ ├── Buffer.java │ │ ├── Packet.java │ │ ├── Page.java │ │ ├── StreamState.java │ │ └── SyncState.java │ │ └── jorbis │ │ ├── Block.java │ │ ├── CodeBook.java │ │ ├── Comment.java │ │ ├── Drft.java │ │ ├── DspState.java │ │ ├── Floor0.java │ │ ├── Floor1.java │ │ ├── FuncFloor.java │ │ ├── FuncMapping.java │ │ ├── FuncResidue.java │ │ ├── FuncTime.java │ │ ├── Info.java │ │ ├── InfoMode.java │ │ ├── JOrbisException.java │ │ ├── Lookup.java │ │ ├── Lpc.java │ │ ├── Lsp.java │ │ ├── Mapping0.java │ │ ├── Mdct.java │ │ ├── PsyInfo.java │ │ ├── PsyLook.java │ │ ├── Residue0.java │ │ ├── Residue1.java │ │ ├── Residue2.java │ │ ├── StaticCodeBook.java │ │ ├── Time0.java │ │ ├── Util.java │ │ └── VorbisFile.java ├── net │ └── miginfocom │ │ ├── layout │ │ ├── AC.java │ │ ├── BoundSize.java │ │ ├── CC.java │ │ ├── ComponentWrapper.java │ │ ├── ConstraintParser.java │ │ ├── ContainerWrapper.java │ │ ├── DimConstraint.java │ │ ├── Grid.java │ │ ├── IDEUtil.java │ │ ├── InCellGapProvider.java │ │ ├── LC.java │ │ ├── LayoutCallback.java │ │ ├── LayoutUtil.java │ │ ├── LinkHandler.java │ │ ├── PlatformDefaults.java │ │ ├── ResizeConstraint.java │ │ ├── UnitConverter.java │ │ └── UnitValue.java │ │ └── swing │ │ ├── MigLayout.java │ │ ├── SwingComponentWrapper.java │ │ └── SwingContainerWrapper.java └── ru │ └── m210projects │ ├── Blood │ ├── AI │ │ ├── AIBAT.java │ │ ├── AIBEAST.java │ │ ├── AIBONEEL.java │ │ ├── AIBURN.java │ │ ├── AICALEB.java │ │ ├── AICERBERUS.java │ │ ├── AICULTIST.java │ │ ├── AIGARG.java │ │ ├── AIGHOST.java │ │ ├── AIGILLBEAST.java │ │ ├── AIHAND.java │ │ ├── AIHOUND.java │ │ ├── AIINNOCENT.java │ │ ├── AIPOD.java │ │ ├── AIRAT.java │ │ ├── AISPID.java │ │ ├── AISTATE.java │ │ ├── AISTATEFUNC.java │ │ ├── AITCHERNOBOG.java │ │ ├── AIUNICULT.java │ │ ├── AIZOMBA.java │ │ ├── AIZOMBF.java │ │ ├── Ai.java │ │ ├── AxeZombie.java │ │ └── GeneticDude.java │ ├── Actor.java │ ├── Cheats.java │ ├── Config.java │ ├── DB.java │ ├── EVENT.java │ ├── Factory │ │ ├── BLSliderDrawable.java │ │ ├── BloodEngine.java │ │ ├── BloodFactory.java │ │ ├── BloodInput.java │ │ ├── BloodMapSettings.java │ │ ├── BloodMenuHandler.java │ │ ├── BloodNetwork.java │ │ ├── BloodOSDFunc.java │ │ ├── BloodSoftware.java │ │ └── BloodTextureManager.java │ ├── Fire.java │ ├── Fonts │ │ ├── BloodFont.java │ │ ├── QFNFont.java │ │ └── QFont.java │ ├── Gameutils.java │ ├── Gib.java │ ├── Globals.java │ ├── LEVELS.java │ ├── LOADSAVE.java │ ├── Main.java │ ├── Menus │ │ ├── BLMenuAudio.java │ │ ├── BLMenuCreate.java │ │ ├── BLMenuJoin.java │ │ ├── BLMenuJoystick.java │ │ ├── BLMenuLoad.java │ │ ├── BLMenuMenuKeyboard.java │ │ ├── BLMenuMouse.java │ │ ├── BLMenuMultiplayer.java │ │ ├── BLMenuSave.java │ │ ├── BLMenuVideoMode.java │ │ ├── BLUserContent.java │ │ ├── EpisodeButton.java │ │ ├── MainMenu.java │ │ ├── MenuControls.java │ │ ├── MenuCorruptGame.java │ │ ├── MenuCredits.java │ │ ├── MenuCustom.java │ │ ├── MenuDifficulty.java │ │ ├── MenuGame.java │ │ ├── MenuGameSet.java │ │ ├── MenuHelp.java │ │ ├── MenuInterfaceSet.java │ │ ├── MenuKeyboardSet.java │ │ ├── MenuNetwork.java │ │ ├── MenuNewAddon.java │ │ ├── MenuNewGame.java │ │ ├── MenuOptions.java │ │ ├── MenuQTitle.java │ │ ├── MenuQav.java │ │ └── MenuQuit.java │ ├── Mirror.java │ ├── PLAYER.java │ ├── PROFILE.java │ ├── PriorityQueue │ │ ├── BPriorityQueue.java │ │ ├── IPriorityQueue.java │ │ ├── JPriorityQueue.java │ │ └── PriorityItem.java │ ├── QAV.java │ ├── RFScript.java │ ├── SECTORFX.java │ ├── SOUND.java │ ├── Screen.java │ ├── Screens │ │ ├── CutsceneScreen.java │ │ ├── DemoScreen.java │ │ ├── DisconnectScreen.java │ │ ├── GameScreen.java │ │ ├── LoadingScreen.java │ │ ├── LogoScreen.java │ │ ├── MenuScreen.java │ │ ├── NetScreen.java │ │ ├── PrecacheScreen.java │ │ └── StatisticScreen.java │ ├── Strings.java │ ├── Tile.java │ ├── Trig.java │ ├── Trigger.java │ ├── Types │ │ ├── AMBIENT.java │ │ ├── AMMOINFO.java │ │ ├── AMMOITEMDATA.java │ │ ├── ARMORITEMDATA.java │ │ ├── BURN.java │ │ ├── BUSY.java │ │ ├── BUSYPROC.java │ │ ├── BitHandler.java │ │ ├── BloodDef.java │ │ ├── BloodIniFile.java │ │ ├── BloodTile.java │ │ ├── CALLPROC.java │ │ ├── CHARINFO.java │ │ ├── DAMAGEINFO.java │ │ ├── DEMO.java │ │ ├── DudeInfo.java │ │ ├── EFFECT.java │ │ ├── EXPLODE.java │ │ ├── EpisodeInfo.java │ │ ├── FragInfo.java │ │ ├── GAMEINFO.java │ │ ├── GENDUDESND.java │ │ ├── HANDANIM.java │ │ ├── Hud │ │ │ ├── AltHud.java │ │ │ ├── FullHud.java │ │ │ ├── HudRenderer.java │ │ │ ├── HudScaledRenderer.java │ │ │ ├── MiniHud.java │ │ │ └── SplitHud.java │ │ ├── INPUT.java │ │ ├── INVITEM.java │ │ ├── ITEMDATA.java │ │ ├── LOADITEM.java │ │ ├── LSInfo.java │ │ ├── MapInfo.java │ │ ├── MissileType.java │ │ ├── NETINFO.java │ │ ├── PLOCATION.java │ │ ├── POSTPONE.java │ │ ├── POSTURE.java │ │ ├── POWERUPINFO.java │ │ ├── QAVCALLBACKFUNC.java │ │ ├── QUOTE.java │ │ ├── SAMPLE2D.java │ │ ├── SFX.java │ │ ├── SOUNDEFFECT.java │ │ ├── SPRITEHIT.java │ │ ├── SPRITEMASS.java │ │ ├── SURFACE.java │ │ ├── SafeLoader.java │ │ ├── ScreenEffect.java │ │ ├── Seq │ │ │ ├── ActiveList.java │ │ │ ├── CeilingInst.java │ │ │ ├── FloorInst.java │ │ │ ├── MaskedWallInst.java │ │ │ ├── SeqFrame.java │ │ │ ├── SeqHandling.java │ │ │ ├── SeqInst.java │ │ │ ├── SeqType.java │ │ │ ├── SpriteInst.java │ │ │ └── WallInst.java │ │ ├── THINGINFO.java │ │ ├── TeslaData.java │ │ ├── VECTORDATA.java │ │ ├── WEAPONDATA.java │ │ ├── WEAPONITEMDATA.java │ │ ├── WeaponAim.java │ │ ├── XSECTOR.java │ │ ├── XSPRITE.java │ │ ├── XWALL.java │ │ └── ZONE.java │ ├── VERSION.java │ ├── View.java │ ├── Warp.java │ ├── Weapon.java │ └── desktop │ │ └── DesktopLauncher.java │ ├── Build │ ├── Architecture │ │ ├── ApplicationFactory.java │ │ ├── BuildApplication.java │ │ ├── BuildConfiguration.java │ │ ├── BuildController.java │ │ ├── BuildFrame.java │ │ ├── BuildGdx.java │ │ ├── BuildGraphics.java │ │ ├── BuildInput.java │ │ └── BuildMessage.java │ ├── Audio │ │ ├── BuildAudio.java │ │ ├── DummyMusic.java │ │ ├── DummySound.java │ │ ├── HMIMIDIP.java │ │ ├── LoopInfo.java │ │ ├── Music.java │ │ ├── MusicSource.java │ │ ├── Sound.java │ │ ├── SoundData.java │ │ ├── Source.java │ │ └── SourceCallback.java │ ├── Board.java │ ├── CRC32.java │ ├── Engine.java │ ├── FileHandle │ │ ├── BufferResource.java │ │ ├── Cache1D.java │ │ ├── Compat.java │ │ ├── DataResource.java │ │ ├── DirectoryEntry.java │ │ ├── FEntryResource.java │ │ ├── FileEntry.java │ │ ├── FileResource.java │ │ ├── FileUtils.java │ │ ├── Group.java │ │ ├── GroupResource.java │ │ ├── GrpGroup.java │ │ ├── LZWDecoder.java │ │ ├── PackedZipGroup.java │ │ ├── Resource.java │ │ ├── RffGroup.java │ │ ├── UserGroup.java │ │ └── ZipGroup.java │ ├── Gameutils.java │ ├── Input │ │ ├── BuildControllers.java │ │ ├── ButtonMap.java │ │ ├── InputCallback.java │ │ ├── KeyInput.java │ │ ├── Keymap.java │ │ └── TestController.java │ ├── Loader │ │ └── WAVLoader.java │ ├── Net │ │ ├── ISocket.java │ │ ├── Mmulti.java │ │ ├── NetInfo.java │ │ ├── UDPServer.java │ │ ├── UDPSocket.java │ │ └── WaifUPnp │ │ │ ├── Gateway.java │ │ │ ├── GatewayFinder.java │ │ │ └── UPnP.java │ ├── OnSceenDisplay │ │ ├── Console.java │ │ ├── DEFOSDFUNC.java │ │ ├── OSDCOMMAND.java │ │ ├── OSDCVARFUNC.java │ │ └── OSDFunc.java │ ├── Pattern │ │ ├── BuildControls.java │ │ ├── BuildEngine.java │ │ ├── BuildFactory.java │ │ ├── BuildFont.java │ │ ├── BuildGame.java │ │ ├── BuildNet.java │ │ ├── CommonMenus │ │ │ ├── MenuAudio.java │ │ │ ├── MenuControls.java │ │ │ ├── MenuCreate.java │ │ │ ├── MenuJoin.java │ │ │ ├── MenuJoystick.java │ │ │ ├── MenuKeyboard.java │ │ │ ├── MenuLoadSave.java │ │ │ ├── MenuMouse.java │ │ │ ├── MenuMultiplayer.java │ │ │ ├── MenuRendererSettings.java │ │ │ └── MenuVideoMode.java │ │ ├── Date.java │ │ ├── FontHandler.java │ │ ├── MenuItems │ │ │ ├── BuildMenu.java │ │ │ ├── BuildMenuList.java │ │ │ ├── DummyItem.java │ │ │ ├── MenuButton.java │ │ │ ├── MenuConteiner.java │ │ │ ├── MenuFileBrowser.java │ │ │ ├── MenuHandler.java │ │ │ ├── MenuItem.java │ │ │ ├── MenuJoyList.java │ │ │ ├── MenuKeyboardList.java │ │ │ ├── MenuList.java │ │ │ ├── MenuPicnum.java │ │ │ ├── MenuProc.java │ │ │ ├── MenuResolutionList.java │ │ │ ├── MenuScroller.java │ │ │ ├── MenuSlider.java │ │ │ ├── MenuSlotList.java │ │ │ ├── MenuSwitch.java │ │ │ ├── MenuText.java │ │ │ ├── MenuTextField.java │ │ │ ├── MenuTitle.java │ │ │ ├── MenuVariants.java │ │ │ └── SliderDrawable.java │ │ ├── ScreenAdapters │ │ │ ├── ConnectAdapter.java │ │ │ ├── GameAdapter.java │ │ │ ├── InitScreen.java │ │ │ ├── LoadingAdapter.java │ │ │ ├── LogoScreen.java │ │ │ ├── MenuAdapter.java │ │ │ ├── MovieScreen.java │ │ │ ├── PrecacheAdapter.java │ │ │ └── SkippableAdapter.java │ │ └── Tools │ │ │ ├── IniFile.java │ │ │ ├── Interpolation.java │ │ │ ├── NaturalComparator.java │ │ │ └── SaveManager.java │ ├── Pragmas.java │ ├── Render │ │ ├── DefaultMapSettings.java │ │ ├── GLFog.java │ │ ├── GLRenderer.java │ │ ├── IOverheadMapSettings.java │ │ ├── ModelHandle │ │ │ ├── GLModel.java │ │ │ ├── MDInfo.java │ │ │ ├── MDModel │ │ │ │ ├── MD2 │ │ │ │ │ ├── MD2Builder.java │ │ │ │ │ ├── MD2Frame.java │ │ │ │ │ ├── MD2Header.java │ │ │ │ │ ├── MD2Info.java │ │ │ │ │ ├── MD2ModelGL10.java │ │ │ │ │ ├── MD2ModelGL20.java │ │ │ │ │ └── MD2Triangle.java │ │ │ │ ├── MD3 │ │ │ │ │ ├── MD3Builder.java │ │ │ │ │ ├── MD3Frame.java │ │ │ │ │ ├── MD3Header.java │ │ │ │ │ ├── MD3Info.java │ │ │ │ │ ├── MD3ModelGL10.java │ │ │ │ │ ├── MD3ModelGL20.java │ │ │ │ │ ├── MD3Shader.java │ │ │ │ │ ├── MD3Surface.java │ │ │ │ │ └── MD3Vertice.java │ │ │ │ ├── MDAnimation.java │ │ │ │ ├── MDModel.java │ │ │ │ └── MDSkinmap.java │ │ │ ├── ModelInfo.java │ │ │ ├── Voxel │ │ │ │ ├── GLVoxel.java │ │ │ │ ├── VoxelBuilder.java │ │ │ │ ├── VoxelData.java │ │ │ │ ├── VoxelGL10.java │ │ │ │ ├── VoxelGL20.java │ │ │ │ └── VoxelSkin.java │ │ │ └── VoxelInfo.java │ │ ├── OrphoRenderer.java │ │ ├── ParameterManager.java │ │ ├── Renderer.java │ │ ├── Software │ │ │ ├── A.java │ │ │ ├── Ac.java │ │ │ ├── JniA.java │ │ │ ├── PermFifo.java │ │ │ ├── Software.java │ │ │ └── SoftwareOrpho.java │ │ ├── TextureHandle │ │ │ ├── DummyTileData.java │ │ │ ├── GLTile.java │ │ │ ├── GLTileArray.java │ │ │ ├── Hicreplctyp.java │ │ │ ├── IndexedShader.java │ │ │ ├── IndexedTileData.java │ │ │ ├── PixmapTileData.java │ │ │ ├── RGBTileData.java │ │ │ ├── TextureManager.java │ │ │ ├── TileAtlas.java │ │ │ └── TileData.java │ │ ├── Types │ │ │ ├── FadeEffect.java │ │ │ ├── GL10.java │ │ │ ├── GLFilter.java │ │ │ ├── Hudtyp.java │ │ │ ├── Palette.java │ │ │ ├── Spriteext.java │ │ │ └── Tile2model.java │ │ └── VideoMode.java │ ├── Script │ │ ├── AudioInfo.java │ │ ├── CueScript.java │ │ ├── DefScript.java │ │ ├── MapHackInfo.java │ │ ├── Maphack.java │ │ ├── ModelsInfo.java │ │ ├── Scriptfile.java │ │ └── TextureHDInfo.java │ ├── Settings │ │ ├── BuildConfig.java │ │ ├── BuildSettings.java │ │ └── GLSettings.java │ ├── Strhandler.java │ ├── StringUtils.java │ ├── Types │ │ ├── BuildPos.java │ │ ├── BuildVariable.java │ │ ├── Hitscan.java │ │ ├── InvalidVersionException.java │ │ ├── LinkedList.java │ │ ├── LittleEndian.java │ │ ├── MD4.java │ │ ├── MemLog.java │ │ ├── Neartag.java │ │ ├── Palette.java │ │ ├── PropertyIgnoreCase.java │ │ ├── QuickSort.java │ │ ├── RuntimeArray.java │ │ ├── SECTOR.java │ │ ├── SPRITE.java │ │ ├── SmallTextFont.java │ │ ├── TextFont.java │ │ ├── ThreadProcessor.java │ │ ├── Tile.java │ │ ├── TileFont.java │ │ ├── Timer.java │ │ └── WALL.java │ └── desktop │ │ ├── AWT │ │ ├── AWTGraphics.java │ │ ├── AWTInput.java │ │ ├── AWTMouse.java │ │ ├── JCanvas.java │ │ ├── JDisplay.java │ │ ├── MouseInterface.java │ │ └── Sync.java │ │ ├── Controllers │ │ ├── JController.java │ │ └── JControllers.java │ │ ├── DesktopFactory.java │ │ ├── DesktopMessage.java │ │ └── audio │ │ ├── ALAudio.java │ │ ├── ALMusicDrv.java │ │ ├── ALMusicSource.java │ │ ├── ALSoundDrv.java │ │ ├── ALSource.java │ │ ├── GdxAL.java │ │ ├── midi │ │ ├── MidiMusicModule.java │ │ ├── MidiMusicSource.java │ │ ├── MidiReceiver.java │ │ └── MidiSequencer.java │ │ └── nopenal │ │ ├── AL.java │ │ ├── AL10.java │ │ ├── AL11.java │ │ ├── ALC10.java │ │ ├── ALC11.java │ │ ├── ALCcontext.java │ │ ├── ALCdevice.java │ │ ├── EXTAlaw.java │ │ ├── EXTBFormat.java │ │ ├── EXTCapture.java │ │ ├── EXTDedicated.java │ │ ├── EXTDefaultFilterOrder.java │ │ ├── EXTDisconnect.java │ │ ├── EXTDouble.java │ │ ├── EXTEfx.java │ │ ├── EXTExponentDistance.java │ │ ├── EXTFloat32.java │ │ ├── EXTIma4.java │ │ ├── EXTLinearDistance.java │ │ ├── EXTMCFormats.java │ │ ├── EXTMulaw.java │ │ ├── EXTMulawBFormat.java │ │ ├── EXTMulawMCFormats.java │ │ ├── EXTOffset.java │ │ ├── EXTSourceDistanceModel.java │ │ ├── EXTSourceRadius.java │ │ ├── EXTStaticBuffer.java │ │ ├── EXTStereoAngles.java │ │ ├── EXTThreadLocalContext.java │ │ ├── EXTVorbis.java │ │ ├── EnumerateAllExt.java │ │ ├── LOKIAudioChannel.java │ │ ├── LOKIIMAADPCM.java │ │ ├── LOKIQuadriphonic.java │ │ ├── LOKIWAVEFormat.java │ │ ├── SOFTBlockAlignment.java │ │ ├── SOFTDeferredUpdates.java │ │ ├── SOFTDirectChannels.java │ │ ├── SOFTGainClampEx.java │ │ ├── SOFTHRTF.java │ │ ├── SOFTLoopPoints.java │ │ ├── SOFTLoopback.java │ │ ├── SOFTMSADPCM.java │ │ ├── SOFTOutputLimiter.java │ │ ├── SOFTPauseDevice.java │ │ ├── SOFTSourceLatency.java │ │ ├── SOFTSourceLength.java │ │ ├── SOFTSourceResampler.java │ │ ├── SOFTSourceSpatialize.java │ │ └── SharedLibraryAL.java │ ├── BuildSmacker │ ├── BitBuffer.java │ ├── Frame.java │ ├── Header.java │ ├── HuffmanTree.java │ ├── SMKAudio.java │ └── SMKFile.java │ ├── Duke3D │ ├── Actors.java │ ├── Animate.java │ ├── Cheats.java │ ├── Config.java │ ├── Factory │ │ ├── DukeEngine.java │ │ ├── DukeFactory.java │ │ ├── DukeInput.java │ │ ├── DukeMapSettings.java │ │ ├── DukeMenuHandler.java │ │ ├── DukeNetwork.java │ │ ├── DukeOSDFunc.java │ │ ├── DukeSliderDrawable.java │ │ └── DukeSoftware.java │ ├── Fonts │ │ ├── GameFont.java │ │ ├── MenuFont.java │ │ ├── MiniFont.java │ │ └── StandartFont.java │ ├── Gamedef.java │ ├── Gameutils.java │ ├── Globals.java │ ├── Input.java │ ├── LoadSave.java │ ├── Main.java │ ├── Menus │ │ ├── CreditsMenu.java │ │ ├── DMenuCreate.java │ │ ├── DMenuJoin.java │ │ ├── DMenuJoystick.java │ │ ├── DMenuLoad.java │ │ ├── DMenuMenuKeyboard.java │ │ ├── DMenuMouse.java │ │ ├── DMenuMultiplayer.java │ │ ├── DMenuSave.java │ │ ├── DMenuVideoMode.java │ │ ├── DUserContent.java │ │ ├── DifficultyMenu.java │ │ ├── DukeTitle.java │ │ ├── EpisodeButton.java │ │ ├── GameMenu.java │ │ ├── HelpMenu.java │ │ ├── InterfaceMenu.java │ │ ├── MainMenu.java │ │ ├── MenuControls.java │ │ ├── MenuCorruptGame.java │ │ ├── MenuGameSetup.java │ │ ├── MenuPage.java │ │ ├── NetworkMenu.java │ │ ├── NewAddonMenu.java │ │ ├── NewGameMenu.java │ │ ├── OptionsMenu.java │ │ ├── QTitleMenu.java │ │ ├── QuitMenu.java │ │ └── SoundMenu.java │ ├── Names.java │ ├── Player.java │ ├── Premap.java │ ├── ResourceHandler.java │ ├── Screen.java │ ├── Screens │ │ ├── AnmScreen.java │ │ ├── DemoScreen.java │ │ ├── DisconnectScreen.java │ │ ├── EndScreen.java │ │ ├── GameScreen.java │ │ ├── LoadingScreen.java │ │ ├── LogoAScreen.java │ │ ├── LogoBScreen.java │ │ ├── MenuScreen.java │ │ ├── NetScreen.java │ │ ├── PrecacheScreen.java │ │ └── StatisticScreen.java │ ├── Sector.java │ ├── SoundDefs.java │ ├── Sounds.java │ ├── Spawn.java │ ├── Types │ │ ├── ANIMATION.java │ │ ├── AnimFile.java │ │ ├── Animwalltype.java │ │ ├── DemoFile.java │ │ ├── DevCommScript.java │ │ ├── EpisodeInfo.java │ │ ├── GameInfo.java │ │ ├── LSInfo.java │ │ ├── LumpInfo.java │ │ ├── MapInfo.java │ │ ├── NetInfo.java │ │ ├── PLocation.java │ │ ├── PlayerOrig.java │ │ ├── PlayerStruct.java │ │ ├── RTS.java │ │ ├── SafeLoader.java │ │ ├── Sample.java │ │ ├── Script.java │ │ ├── SoundOwner.java │ │ ├── UserDefs.java │ │ ├── VOC.java │ │ └── Weaponhit.java │ ├── View.java │ ├── Weapons.java │ └── desktop │ │ └── DesktopLauncher.java │ ├── LSP │ ├── Animate.java │ ├── Config.java │ ├── Enemies.java │ ├── Factory │ │ ├── LSPEngine.java │ │ ├── LSPFactory.java │ │ ├── LSPInput.java │ │ ├── LSPMapSettings.java │ │ ├── LSPMenuHandler.java │ │ ├── LSPNetwork.java │ │ ├── LSPOSDFunc.java │ │ ├── LSPSliderDrawable.java │ │ └── LSPSoftware.java │ ├── Fonts │ │ ├── FontA.java │ │ ├── MenuFont.java │ │ └── StandartFont.java │ ├── GdxResources.java │ ├── Globals.java │ ├── LoadSave.java │ ├── Main.java │ ├── Menus │ │ ├── AdvertisingMenu.java │ │ ├── GameMenu.java │ │ ├── ItemPCX.java │ │ ├── LSPMenuAudio.java │ │ ├── LSPMenuJoystick.java │ │ ├── LSPMenuLoad.java │ │ ├── LSPMenuMenuKeyboard.java │ │ ├── LSPMenuMouse.java │ │ ├── LSPMenuQTitle.java │ │ ├── LSPMenuSave.java │ │ ├── LSPMenuUserContent.java │ │ ├── LSPMenuVideoMode.java │ │ ├── MainMenu.java │ │ ├── MenuControls.java │ │ ├── MenuCorruptGame.java │ │ ├── MenuGameSet.java │ │ ├── MenuInterfaceSet.java │ │ ├── MenuKeyboardSet.java │ │ ├── MenuLastLoad.java │ │ ├── MenuOptions.java │ │ └── MenuQuit.java │ ├── Player.java │ ├── Quotes.java │ ├── Screens │ │ ├── DemoScreen.java │ │ ├── GameScreen.java │ │ ├── IntroScreen.java │ │ ├── LoadingScreen.java │ │ ├── MenuScreen.java │ │ ├── MovieScreen.java │ │ ├── PrecacheScreen.java │ │ └── StatisticScreen.java │ ├── Sectors.java │ ├── Sounds.java │ ├── Sprites.java │ ├── Types │ │ ├── ANIMATION.java │ │ ├── DemoFile.java │ │ ├── Input.java │ │ ├── LSInfo.java │ │ ├── LSPGroup.java │ │ ├── MovieFile.java │ │ ├── PCXFile.java │ │ ├── PlayerStruct.java │ │ ├── SECTORV4.java │ │ ├── SafeLoader.java │ │ ├── SwingDoor.java │ │ ├── VOC.java │ │ └── WALLV4.java │ ├── View.java │ ├── Weapons.java │ └── desktop │ │ └── DesktopLauncher.java │ ├── Launcher │ └── desktop │ │ ├── BoundsPopupMenuListener.java │ │ ├── CheckFiles.java │ │ ├── ComboItem.java │ │ ├── Components │ │ ├── About.java │ │ ├── BloodPanel.java │ │ ├── Buttons │ │ │ ├── AboutButton.java │ │ │ ├── FrameButton.java │ │ │ ├── GameButton.java │ │ │ ├── OpenButton.java │ │ │ └── SettingsButton.java │ │ ├── DirectoryBrowser.java │ │ ├── DukePanel.java │ │ ├── FramePanel.java │ │ ├── GamePanel.java │ │ ├── ImagePanel.java │ │ ├── LSPPanel.java │ │ ├── NamPanel.java │ │ ├── PSPanel.java │ │ ├── RRPanel.java │ │ ├── RRRAPanel.java │ │ ├── SWPanel.java │ │ ├── Settings.java │ │ ├── TekwarPanel.java │ │ ├── WH2Panel.java │ │ └── WHPanel.java │ │ ├── Frame.java │ │ ├── GameEntries │ │ ├── BloodEntry.java │ │ ├── DisabledEntry.java │ │ ├── DukeEntry.java │ │ ├── GameEntry.java │ │ ├── LSPEntry.java │ │ ├── NamEntry.java │ │ ├── PSlaveEntry.java │ │ ├── RREntry.java │ │ ├── RRRAEntry.java │ │ ├── ResFile.java │ │ ├── SWEntry.java │ │ ├── TekwarEntry.java │ │ ├── WH2Entry.java │ │ └── WHEntry.java │ │ ├── GameServices.java │ │ ├── JLauncher.java │ │ ├── Main.java │ │ ├── PopupActionListener.java │ │ └── WinReg.java │ ├── Powerslave │ ├── Anim.java │ ├── Bullet.java │ ├── Cheats.java │ ├── Cinema.java │ ├── Config.java │ ├── Enemies │ │ ├── Anubis.java │ │ ├── Enemy.java │ │ ├── Fish.java │ │ ├── LavaDude.java │ │ ├── Lion.java │ │ ├── Mummy.java │ │ ├── Queen.java │ │ ├── Ra.java │ │ ├── Rat.java │ │ ├── Rex.java │ │ ├── Roach.java │ │ ├── Scorp.java │ │ ├── Set.java │ │ ├── Spider.java │ │ └── Wasp.java │ ├── Energy.java │ ├── Factory │ │ ├── PSEngine.java │ │ ├── PSFactory.java │ │ ├── PSInput.java │ │ ├── PSMapSettings.java │ │ ├── PSMenuHandler.java │ │ ├── PSNetwork.java │ │ ├── PSOSDFunc.java │ │ ├── PSSliderDrawable.java │ │ └── PSSoftware.java │ ├── Fonts │ │ ├── FontA.java │ │ ├── GameFont.java │ │ ├── MenuFont.java │ │ └── StandartFont.java │ ├── Globals.java │ ├── Grenade.java │ ├── Light.java │ ├── LoadSave.java │ ├── Main.java │ ├── Map.java │ ├── Menus │ │ ├── MainMenu.java │ │ ├── MenuControls.java │ │ ├── MenuCorruptGame.java │ │ ├── MenuEndGame.java │ │ ├── MenuGame.java │ │ ├── MenuGameSet.java │ │ ├── MenuInterfaceSet.java │ │ ├── MenuKeyboardSet.java │ │ ├── MenuOptions.java │ │ ├── MenuQTitle.java │ │ ├── MenuQuit.java │ │ ├── NewAddon.java │ │ ├── NewGame.java │ │ ├── PSButton.java │ │ ├── PSMenuAudio.java │ │ ├── PSMenuJoystick.java │ │ ├── PSMenuLoad.java │ │ ├── PSMenuMenuKeyboard.java │ │ ├── PSMenuMouse.java │ │ ├── PSMenuSave.java │ │ ├── PSMenuUserContent.java │ │ ├── PSMenuVideoMode.java │ │ └── PSTitle.java │ ├── Object.java │ ├── Palette.java │ ├── Player.java │ ├── Random.java │ ├── RunList.java │ ├── Screens │ │ ├── CinemaScreen.java │ │ ├── DemoScreen.java │ │ ├── GameScreen.java │ │ ├── LoadingScreen.java │ │ ├── LogoScreen2.java │ │ ├── MapScreen.java │ │ ├── MenuScreen.java │ │ ├── MovieScreen.java │ │ ├── PSLogoScreen.java │ │ └── PrecacheScreen.java │ ├── Sector.java │ ├── Seq.java │ ├── Slide.java │ ├── Snake.java │ ├── Sound.java │ ├── SpiritHead.java │ ├── Sprites.java │ ├── Switch.java │ ├── Type │ │ ├── AnimStruct.java │ │ ├── BlockInfo.java │ │ ├── BobStruct.java │ │ ├── BubbleMachineStruct.java │ │ ├── BubbleStruct.java │ │ ├── BulletInfo.java │ │ ├── BulletStruct.java │ │ ├── Channel.java │ │ ├── DemoFile.java │ │ ├── DripStruct.java │ │ ├── ElevStruct.java │ │ ├── EpisodeInfo.java │ │ ├── FishChunk.java │ │ ├── FlashStruct.java │ │ ├── FlickerStruct.java │ │ ├── FlowStruct.java │ │ ├── FuncProc.java │ │ ├── GrenadeStruct.java │ │ ├── GrowStruct.java │ │ ├── Input.java │ │ ├── ItemAnimStruct.java │ │ ├── LSInfo.java │ │ ├── MapInfo.java │ │ ├── MoveSectStruct.java │ │ ├── ObjectStruct.java │ │ ├── PLocation.java │ │ ├── PlayerSave.java │ │ ├── PlayerStruct.java │ │ ├── RaStruct.java │ │ ├── RunData.java │ │ ├── SafeLoader.java │ │ ├── SnakeStruct.java │ │ ├── StatusAnim.java │ │ ├── SwitchStruct.java │ │ ├── TrailPointStruct.java │ │ ├── TrailStruct.java │ │ ├── TrapStruct.java │ │ ├── VOC.java │ │ ├── WallFaceStruct.java │ │ └── WeaponInfo.java │ ├── View.java │ ├── Weapons.java │ └── desktop │ │ └── DesktopLauncher.java │ ├── Redneck │ ├── Actors.java │ ├── Animate.java │ ├── Cheats.java │ ├── Config.java │ ├── Factory │ │ ├── RREngine.java │ │ ├── RRFactory.java │ │ ├── RRInput.java │ │ ├── RRMapSettings.java │ │ ├── RRMenuHandler.java │ │ ├── RRNetwork.java │ │ ├── RROSDFunc.java │ │ ├── RRSliderDrawable.java │ │ └── RRSoftware.java │ ├── Fonts │ │ ├── GameFont.java │ │ ├── MenuFont.java │ │ ├── MiniFont.java │ │ └── StandartFont.java │ ├── Gamedef.java │ ├── Gameutils.java │ ├── Globals.java │ ├── Input.java │ ├── LoadSave.java │ ├── Main.java │ ├── Menus │ │ ├── CreditsMenu.java │ │ ├── DifficultyMenu.java │ │ ├── EpisodeButton.java │ │ ├── GameMenu.java │ │ ├── HelpMenu.java │ │ ├── InterfaceMenu.java │ │ ├── MainMenu.java │ │ ├── MenuControls.java │ │ ├── MenuCorruptGame.java │ │ ├── MenuGameSetup.java │ │ ├── MenuPage.java │ │ ├── NetworkMenu.java │ │ ├── NewAddonMenu.java │ │ ├── NewGameMenu.java │ │ ├── OptionsMenu.java │ │ ├── QTitleMenu.java │ │ ├── QuitMenu.java │ │ ├── RMenuCreate.java │ │ ├── RMenuJoin.java │ │ ├── RMenuJoystick.java │ │ ├── RMenuLoad.java │ │ ├── RMenuMenuKeyboard.java │ │ ├── RMenuMouse.java │ │ ├── RMenuMultiplayer.java │ │ ├── RMenuSave.java │ │ ├── RMenuVideoMode.java │ │ ├── RRTitle.java │ │ ├── RUserContent.java │ │ ├── SoundMenu.java │ │ └── TrackPlayerMenu.java │ ├── Names.java │ ├── Player.java │ ├── Premap.java │ ├── ResourceHandler.java │ ├── Screen.java │ ├── Screens │ │ ├── AnmScreen.java │ │ ├── DemoScreen.java │ │ ├── DisconnectScreen.java │ │ ├── EndScreen.java │ │ ├── GameScreen.java │ │ ├── LoadingScreen.java │ │ ├── MVEScreen.java │ │ ├── MenuScreen.java │ │ ├── NetScreen.java │ │ ├── PrecacheScreen.java │ │ └── StatisticScreen.java │ ├── Sector.java │ ├── SoundDefs.java │ ├── Sounds.java │ ├── Spawn.java │ ├── Types │ │ ├── ANIMATION.java │ │ ├── AnimFile.java │ │ ├── Animwalltype.java │ │ ├── DemoFile.java │ │ ├── EpisodeInfo.java │ │ ├── GameInfo.java │ │ ├── LSInfo.java │ │ ├── LumpInfo.java │ │ ├── MVEFile.java │ │ ├── MapInfo.java │ │ ├── NetInfo.java │ │ ├── PLocation.java │ │ ├── PlayerOrig.java │ │ ├── PlayerStruct.java │ │ ├── RTS.java │ │ ├── SafeLoader.java │ │ ├── Sample.java │ │ ├── Script.java │ │ ├── SoundOwner.java │ │ ├── UserDefs.java │ │ ├── VOC.java │ │ └── Weaponhit.java │ ├── View.java │ ├── Weapons.java │ └── desktop │ │ └── DesktopLauncher.java │ ├── Tekwar │ ├── Animate.java │ ├── Config.java │ ├── Factory │ │ ├── TekControl.java │ │ ├── TekEngine.java │ │ ├── TekFactory.java │ │ ├── TekMapSettings.java │ │ ├── TekMenuHandler.java │ │ ├── TekNetwork.java │ │ ├── TekSoftware.java │ │ └── TekwarOSDFunc.java │ ├── Fonts │ │ ├── MenuFont.java │ │ ├── StandartFont.java │ │ ├── TekFontA.java │ │ └── TekFontB.java │ ├── Globals.java │ ├── Main.java │ ├── Menus │ │ ├── MainMenu.java │ │ ├── MenuAbort.java │ │ ├── MenuCorruptGame.java │ │ ├── MenuGame.java │ │ ├── MenuGameSet.java │ │ ├── MenuHelp.java │ │ ├── MenuInterfaceSet.java │ │ ├── MenuLastLoad.java │ │ ├── MenuOptions.java │ │ ├── MenuQuit.java │ │ ├── MenuUserContent.java │ │ ├── TekMenuAudio.java │ │ ├── TekMenuControls.java │ │ ├── TekMenuJoystick.java │ │ ├── TekMenuKeyboard.java │ │ ├── TekMenuLoad.java │ │ ├── TekMenuMouse.java │ │ ├── TekMenuSave.java │ │ ├── TekMenuVideoMode.java │ │ └── TekSliderDrawable.java │ ├── Names.java │ ├── Player.java │ ├── Screens │ │ ├── CreditsScreen.java │ │ ├── CutsceneScreen.java │ │ ├── GameScreen.java │ │ ├── LoadingScreen.java │ │ ├── MissionScreen.java │ │ ├── PracticScreen.java │ │ ├── PrecacheScreen.java │ │ └── SmkMenu.java │ ├── Tekchng.java │ ├── Tekgun.java │ ├── Tekldsv.java │ ├── Tekmap.java │ ├── Tekprep.java │ ├── Teksnd.java │ ├── Tekspr.java │ ├── Tekstat.java │ ├── Tektag.java │ ├── Types │ │ ├── ANIMATION.java │ │ ├── Animpic.java │ │ ├── Delayfunc.java │ │ ├── Demo.java │ │ ├── Doortype.java │ │ ├── Elevatortype.java │ │ ├── Floordoor.java │ │ ├── Guntype.java │ │ ├── Input.java │ │ ├── LSInfo.java │ │ ├── Mapsndfxtype.java │ │ ├── SafeLoader.java │ │ ├── Sectoreffect.java │ │ ├── Sectorvehicle.java │ │ ├── Songtype.java │ │ ├── Soundtype.java │ │ ├── SpriteXT.java │ │ ├── Spriteelev.java │ │ ├── Startspottype.java │ │ ├── XTsavetype.java │ │ └── XTtrailertype.java │ ├── View.java │ └── desktop │ │ └── DesktopLauncher.java │ ├── Wang │ ├── Actor.java │ ├── Ai.java │ ├── Border.java │ ├── Break.java │ ├── Cheats.java │ ├── Config.java │ ├── CopySect.java │ ├── Digi.java │ ├── Draw.java │ ├── Enemies │ │ ├── Bunny.java │ │ ├── Coolg.java │ │ ├── Coolie.java │ │ ├── Decision.java │ │ ├── Eel.java │ │ ├── GirlNinj.java │ │ ├── Goro.java │ │ ├── Hornet.java │ │ ├── Lava.java │ │ ├── Ninja.java │ │ ├── Personality.java │ │ ├── Ripper.java │ │ ├── Ripper2.java │ │ ├── Serp.java │ │ ├── Skel.java │ │ ├── Skull.java │ │ ├── Sumo.java │ │ ├── Zilla.java │ │ └── Zombie.java │ ├── Factory │ │ ├── WangEngine.java │ │ ├── WangFactory.java │ │ ├── WangInput.java │ │ ├── WangInterpolation.java │ │ ├── WangMapSettings.java │ │ ├── WangMenuHandler.java │ │ ├── WangNetwork.java │ │ ├── WangOSDFunc.java │ │ ├── WangSliderDrawable.java │ │ └── WangSoftware.java │ ├── Fonts │ │ ├── GameFont.java │ │ ├── MenuFont.java │ │ ├── MiniFont.java │ │ └── StandartFont.java │ ├── Game.java │ ├── Gameutils.java │ ├── Inv.java │ ├── JPlayer.java │ ├── JSector.java │ ├── JTags.java │ ├── JWeapon.java │ ├── Light.java │ ├── LoadSave.java │ ├── MClip.java │ ├── Main.java │ ├── Menus │ │ ├── MenuControls.java │ │ ├── MenuCorruptGame.java │ │ ├── MenuCredits.java │ │ ├── MenuDifficulty.java │ │ ├── MenuGame.java │ │ ├── MenuGameSetup.java │ │ ├── MenuInterface.java │ │ ├── MenuJoystick.java │ │ ├── MenuLastLoad.java │ │ ├── MenuLoad.java │ │ ├── MenuMain.java │ │ ├── MenuMenuKeyboard.java │ │ ├── MenuMouse.java │ │ ├── MenuNewAddon.java │ │ ├── MenuNewGame.java │ │ ├── MenuOptions.java │ │ ├── MenuPage.java │ │ ├── MenuQuit.java │ │ ├── MenuSave.java │ │ ├── MenuSound.java │ │ ├── MenuUserContent.java │ │ ├── MenuVideoMode.java │ │ ├── Network │ │ │ ├── MenuCreate.java │ │ │ ├── MenuJoin.java │ │ │ ├── MenuMultiplayer.java │ │ │ ├── MenuNetwork.java │ │ │ └── NetInfo.java │ │ ├── WangEpisodeButton.java │ │ ├── WangSwitch.java │ │ └── WangTitle.java │ ├── MiscActr.java │ ├── Morth.java │ ├── Names.java │ ├── Palette.java │ ├── Panel.java │ ├── Player.java │ ├── Quake.java │ ├── Rooms.java │ ├── Rotator.java │ ├── Screens │ │ ├── AnmScreen.java │ │ ├── CreditsScreen.java │ │ ├── DemoScreen.java │ │ ├── DisconnectScreen.java │ │ ├── GameScreen.java │ │ ├── LoadingScreen.java │ │ ├── LogoAScreen.java │ │ ├── MenuScreen.java │ │ ├── NetScreen.java │ │ ├── PrecacheScreen.java │ │ └── StatisticScreen.java │ ├── Sector.java │ ├── Shrap.java │ ├── Slidor.java │ ├── Sound.java │ ├── Spike.java │ ├── Sprites.java │ ├── Stag.java │ ├── Tags.java │ ├── Text.java │ ├── Track.java │ ├── Type │ │ ├── ATTRIBUTE.java │ │ ├── Actor_Action_Set.java │ │ ├── Amb_Info.java │ │ ├── Anim.java │ │ ├── AnimFile.java │ │ ├── Animator.java │ │ ├── Break_Info.java │ │ ├── CustomScript.java │ │ ├── DAMAGE_DATA.java │ │ ├── DemoFile.java │ │ ├── EpisodeInfo.java │ │ ├── GameInfo.java │ │ ├── INVENTORY_DATA.java │ │ ├── Input.java │ │ ├── LONGp.java │ │ ├── LSInfo.java │ │ ├── LastLevelUser.java │ │ ├── LevelInfo.java │ │ ├── List.java │ │ ├── LumpInfo.java │ │ ├── MirrorType.java │ │ ├── MyTypes.java │ │ ├── NEAR_TAG_INFO.java │ │ ├── OrgTile.java │ │ ├── PANEL_SPRITE_OVERLAY.java │ │ ├── Panel_Sprite.java │ │ ├── Panel_Sprite_Func.java │ │ ├── Panel_State.java │ │ ├── ParentalStruct.java │ │ ├── PlayerStr.java │ │ ├── Predict.java │ │ ├── RTS.java │ │ ├── Remote_Control.java │ │ ├── ResourceHandler.java │ │ ├── RotatorStr.java │ │ ├── SHRAP.java │ │ ├── SINE_WALL.java │ │ ├── SINE_WAVE_FLOOR.java │ │ ├── SafeLoader.java │ │ ├── Save.java │ │ ├── Saveable.java │ │ ├── Sect_User.java │ │ ├── Sector_Object.java │ │ ├── Spring_Board.java │ │ ├── State.java │ │ ├── TRACK.java │ │ ├── TRACK_POINT.java │ │ ├── Target_Sort.java │ │ ├── USER.java │ │ ├── VOC.java │ │ ├── VOC3D.java │ │ ├── VOC_INFO.java │ │ ├── Vector2i.java │ │ ├── Vector3i.java │ │ └── VoxelScript.java │ ├── Vator.java │ ├── Vis.java │ ├── WallMove.java │ ├── Warp.java │ ├── Weapon.java │ ├── Weapons │ │ ├── Chops.java │ │ ├── Fist.java │ │ ├── Grenade.java │ │ ├── Heart.java │ │ ├── HotHead.java │ │ ├── Micro.java │ │ ├── Mine.java │ │ ├── Rail.java │ │ ├── Shotgun.java │ │ ├── Star.java │ │ ├── Sword.java │ │ └── Uzi.java │ └── desktop │ │ └── DesktopLauncher.java │ └── Witchaven │ ├── AI │ ├── AIDemon.java │ ├── AIDevil.java │ ├── AIDragon.java │ ├── AIFatwitch.java │ ├── AIFish.java │ ├── AIFred.java │ ├── AIGoblin.java │ ├── AIGonzo.java │ ├── AIGron.java │ ├── AIGuardian.java │ ├── AIImp.java │ ├── AIJudy.java │ ├── AIKatie.java │ ├── AIKobold.java │ ├── AIKurt.java │ ├── AIMinotaur.java │ ├── AINewguy.java │ ├── AIRat.java │ ├── AISkeleton.java │ ├── AISkully.java │ ├── AISpider.java │ ├── AIState.java │ ├── AIWillow.java │ ├── Ai.java │ ├── Enemy.java │ └── EnemyInfo.java │ ├── Animate.java │ ├── Config.java │ ├── Factory │ ├── WH2MenuHandler.java │ ├── WHControl.java │ ├── WHEngine.java │ ├── WHFactory.java │ ├── WHMapSettings.java │ ├── WHMenuHandler.java │ ├── WHNetwork.java │ ├── WHOSDFunc.java │ ├── WHSliderDrawable.java │ └── WHSoftware.java │ ├── Fonts │ ├── HealthFont.java │ ├── MenuFont.java │ ├── PotionFont.java │ ├── ScoreFont.java │ ├── StandartFont.java │ ├── TheFont.java │ └── WH2Fonts.java │ ├── Globals.java │ ├── Items.java │ ├── Main.java │ ├── Menu │ ├── GameMenu.java │ ├── MainMenu.java │ ├── MenuCorruptGame.java │ ├── MenuGameSetup.java │ ├── MenuInterfaceSet.java │ ├── MenuOptions.java │ ├── MenuQuit.java │ ├── WHMenuAudio.java │ ├── WHMenuControls.java │ ├── WHMenuJoystick.java │ ├── WHMenuKeyboard.java │ ├── WHMenuLoad.java │ ├── WHMenuMouse.java │ ├── WHMenuNewGame.java │ ├── WHMenuQTitle.java │ ├── WHMenuSave.java │ ├── WHMenuUserContent.java │ ├── WHMenuVideoMode.java │ ├── WHSwitch.java │ └── WHTitle.java │ ├── Names.java │ ├── Potions.java │ ├── Screens │ ├── CutsceneScreen.java │ ├── GameScreen.java │ ├── LoadingScreen.java │ ├── MenuScreen.java │ ├── PrecacheScreen.java │ ├── StatisticsScreen.java │ └── VictoryScreen.java │ ├── Spellbooks.java │ ├── Types │ ├── ANIMATION.java │ ├── Ambsounds.java │ ├── Delayitem.java │ ├── EpisodeInfo.java │ ├── Input.java │ ├── Item.java │ ├── LSInfo.java │ ├── MapInfo.java │ ├── PLAYER.java │ ├── PLOCATION.java │ ├── SWINGDOOR.java │ ├── SafeLoader.java │ ├── Songtype.java │ ├── Soundtype.java │ └── WEAPON.java │ ├── WH1Names.java │ ├── WH2MUS.java │ ├── WH2Names.java │ ├── WHANI.java │ ├── WHFX.java │ ├── WHOBJ.java │ ├── WHPLR.java │ ├── WHSND.java │ ├── WHScreen.java │ ├── WHTAG.java │ ├── Weapons.java │ ├── Whldsv.java │ ├── Whmap.java │ └── desktop │ └── DesktopLauncher.java ├── swgdx.dat ├── twgdx.dat └── whgdx.dat /.gitignore: -------------------------------------------------------------------------------- 1 | ### IntelliJ IDEA ### 2 | out/ 3 | !**/src/main/**/out/ 4 | !**/src/test/**/out/ 5 | 6 | ### Eclipse ### 7 | .apt_generated 8 | .classpath 9 | .factorypath 10 | .project 11 | .settings 12 | .springBeans 13 | .sts4-cache 14 | bin/ 15 | !**/src/main/**/bin/ 16 | !**/src/test/**/bin/ 17 | 18 | ### NetBeans ### 19 | /nbproject/private/ 20 | /nbbuild/ 21 | /dist/ 22 | /nbdist/ 23 | /.nb-gradle/ 24 | 25 | ### VS Code ### 26 | .vscode/ 27 | 28 | ### Mac OS ### 29 | .DS_Store -------------------------------------------------------------------------------- /.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | -------------------------------------------------------------------------------- /.idea/.name: -------------------------------------------------------------------------------- 1 | NuBuildGDX.iml -------------------------------------------------------------------------------- /.idea/libraries/annotations_24_0_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/libraries/gdx_1_9_14.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/libraries/gdx_backend_lwjgl3_1_9_14.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/libraries/gdx_platform_1_9_14_natives_desktop.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/libraries/jinput_2_0_10_natives_all.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/libraries/jinput_2_0_9.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/libraries/jna_5_15_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/libraries/jna_platform_5_15_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/libraries/lwjgl_3_3_4.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/libraries/lwjgl_3_3_4_natives_freebsd.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/libraries/lwjgl_3_3_4_natives_linux.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/libraries/lwjgl_3_3_4_natives_linux_arm64.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/libraries/lwjgl_3_3_4_natives_macos.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/libraries/lwjgl_3_3_4_natives_macos_arm64.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/libraries/lwjgl_3_3_4_natives_windows.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/libraries/lwjgl_3_3_4_natives_windows_arm64.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/libraries/lwjgl_glfw_3_3_4.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/libraries/lwjgl_glfw_3_3_4_natives_freebsd.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/libraries/lwjgl_glfw_3_3_4_natives_linux.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/libraries/lwjgl_glfw_3_3_4_natives_linux_arm64.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/libraries/lwjgl_glfw_3_3_4_natives_macos.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/libraries/lwjgl_glfw_3_3_4_natives_macos_arm64.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/libraries/lwjgl_glfw_3_3_4_natives_windows.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/libraries/lwjgl_glfw_3_3_4_natives_windows_arm64.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Games/Blood/blood128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Games/Blood/blood128.png -------------------------------------------------------------------------------- /Games/Blood/blood16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Games/Blood/blood16.png -------------------------------------------------------------------------------- /Games/Blood/blood32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Games/Blood/blood32.png -------------------------------------------------------------------------------- /Games/Duke3D/duke128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Games/Duke3D/duke128.png -------------------------------------------------------------------------------- /Games/Duke3D/duke16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Games/Duke3D/duke16.png -------------------------------------------------------------------------------- /Games/Duke3D/duke32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Games/Duke3D/duke32.png -------------------------------------------------------------------------------- /Games/Lot7P/lot7p128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Games/Lot7P/lot7p128.png -------------------------------------------------------------------------------- /Games/Lot7P/lot7p16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Games/Lot7P/lot7p16.png -------------------------------------------------------------------------------- /Games/Lot7P/lot7p32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Games/Lot7P/lot7p32.png -------------------------------------------------------------------------------- /Games/Nam/nam128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Games/Nam/nam128.png -------------------------------------------------------------------------------- /Games/Nam/nam16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Games/Nam/nam16.png -------------------------------------------------------------------------------- /Games/Nam/nam32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Games/Nam/nam32.png -------------------------------------------------------------------------------- /Games/PS/ps128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Games/PS/ps128.png -------------------------------------------------------------------------------- /Games/PS/ps16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Games/PS/ps16.png -------------------------------------------------------------------------------- /Games/PS/ps32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Games/PS/ps32.png -------------------------------------------------------------------------------- /Games/RR/rr128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Games/RR/rr128.png -------------------------------------------------------------------------------- /Games/RR/rr16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Games/RR/rr16.png -------------------------------------------------------------------------------- /Games/RR/rr32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Games/RR/rr32.png -------------------------------------------------------------------------------- /Games/RRRA/rr128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Games/RRRA/rr128.png -------------------------------------------------------------------------------- /Games/RRRA/rr16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Games/RRRA/rr16.png -------------------------------------------------------------------------------- /Games/RRRA/rr32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Games/RRRA/rr32.png -------------------------------------------------------------------------------- /Games/SW/sw128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Games/SW/sw128.png -------------------------------------------------------------------------------- /Games/SW/sw16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Games/SW/sw16.png -------------------------------------------------------------------------------- /Games/SW/sw32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Games/SW/sw32.png -------------------------------------------------------------------------------- /Games/Tekwar/tekwar128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Games/Tekwar/tekwar128.png -------------------------------------------------------------------------------- /Games/Tekwar/tekwar16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Games/Tekwar/tekwar16.png -------------------------------------------------------------------------------- /Games/Tekwar/tekwar32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Games/Tekwar/tekwar32.png -------------------------------------------------------------------------------- /Games/WH/wh128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Games/WH/wh128.png -------------------------------------------------------------------------------- /Games/WH/wh16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Games/WH/wh16.png -------------------------------------------------------------------------------- /Games/WH/wh32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Games/WH/wh32.png -------------------------------------------------------------------------------- /Games/WH2/whii128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Games/WH2/whii128.png -------------------------------------------------------------------------------- /Games/WH2/whii16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Games/WH2/whii16.png -------------------------------------------------------------------------------- /Games/WH2/whii32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Games/WH2/whii32.png -------------------------------------------------------------------------------- /Games/build128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Games/build128.png -------------------------------------------------------------------------------- /Games/build16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Games/build16.png -------------------------------------------------------------------------------- /Games/build32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Games/build32.png -------------------------------------------------------------------------------- /Games/iconopen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Games/iconopen.png -------------------------------------------------------------------------------- /Games/iconsettings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Games/iconsettings.png -------------------------------------------------------------------------------- /Games/logodiscord.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Games/logodiscord.png -------------------------------------------------------------------------------- /Games/logoduke4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Games/logoduke4.png -------------------------------------------------------------------------------- /Games/logom210.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Games/logom210.png -------------------------------------------------------------------------------- /Games/logopaypal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Games/logopaypal.png -------------------------------------------------------------------------------- /Headers/headerblood.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Headers/headerblood.png -------------------------------------------------------------------------------- /Headers/headerbuild.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Headers/headerbuild.png -------------------------------------------------------------------------------- /Headers/headerduke.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Headers/headerduke.png -------------------------------------------------------------------------------- /Headers/headerlot7p.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Headers/headerlot7p.png -------------------------------------------------------------------------------- /Headers/headernam.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Headers/headernam.png -------------------------------------------------------------------------------- /Headers/headernapalm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Headers/headernapalm.png -------------------------------------------------------------------------------- /Headers/headerps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Headers/headerps.png -------------------------------------------------------------------------------- /Headers/headerra.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Headers/headerra.png -------------------------------------------------------------------------------- /Headers/headerrr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Headers/headerrr.png -------------------------------------------------------------------------------- /Headers/headersw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Headers/headersw.png -------------------------------------------------------------------------------- /Headers/headertw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Headers/headertw.png -------------------------------------------------------------------------------- /Headers/headerwh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Headers/headerwh.png -------------------------------------------------------------------------------- /Headers/headerwh2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Headers/headerwh2.png -------------------------------------------------------------------------------- /Headers/headerwwii.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/Headers/headerwwii.png -------------------------------------------------------------------------------- /META-INF/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | Main-Class: ru.m210projects.Launcher.desktop.Main 3 | 4 | -------------------------------------------------------------------------------- /META-INF/MANIFEST.manifest: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | Main-Class: ru.m210projects.Launcher.desktop.Main 3 | 4 | -------------------------------------------------------------------------------- /bloodgdx.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/bloodgdx.dat -------------------------------------------------------------------------------- /dukegdx.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/dukegdx.dat -------------------------------------------------------------------------------- /libs/annotations-24.0.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/libs/annotations-24.0.1.jar -------------------------------------------------------------------------------- /libs/arm64linux/libgdxarm64.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/libs/arm64linux/libgdxarm64.so -------------------------------------------------------------------------------- /libs/arm64linux/libglfw.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/libs/arm64linux/libglfw.so -------------------------------------------------------------------------------- /libs/arm64linux/liblwjgl.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/libs/arm64linux/liblwjgl.so -------------------------------------------------------------------------------- /libs/gdx-1.9.14.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/libs/gdx-1.9.14.jar -------------------------------------------------------------------------------- /libs/gdx-backend-lwjgl3-1.9.14.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/libs/gdx-backend-lwjgl3-1.9.14.jar -------------------------------------------------------------------------------- /libs/gdx-platform-1.9.14-natives-desktop.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/libs/gdx-platform-1.9.14-natives-desktop.jar -------------------------------------------------------------------------------- /libs/jinput-2.0.10-natives-all.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/libs/jinput-2.0.10-natives-all.jar -------------------------------------------------------------------------------- /libs/jinput-2.0.9.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/libs/jinput-2.0.9.jar -------------------------------------------------------------------------------- /libs/jna-5.15.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/libs/jna-5.15.0.jar -------------------------------------------------------------------------------- /libs/jna-platform-5.15.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/libs/jna-platform-5.15.0.jar -------------------------------------------------------------------------------- /libs/libopenal64.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/libs/libopenal64.so -------------------------------------------------------------------------------- /libs/libopenalarm64.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/libs/libopenalarm64.so -------------------------------------------------------------------------------- /libs/lwjgl-3.3.4-natives-freebsd.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/libs/lwjgl-3.3.4-natives-freebsd.jar -------------------------------------------------------------------------------- /libs/lwjgl-3.3.4-natives-linux-arm32.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/libs/lwjgl-3.3.4-natives-linux-arm32.jar -------------------------------------------------------------------------------- /libs/lwjgl-3.3.4-natives-linux-arm64.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/libs/lwjgl-3.3.4-natives-linux-arm64.jar -------------------------------------------------------------------------------- /libs/lwjgl-3.3.4-natives-linux.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/libs/lwjgl-3.3.4-natives-linux.jar -------------------------------------------------------------------------------- /libs/lwjgl-3.3.4-natives-macos-arm64.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/libs/lwjgl-3.3.4-natives-macos-arm64.jar -------------------------------------------------------------------------------- /libs/lwjgl-3.3.4-natives-macos.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/libs/lwjgl-3.3.4-natives-macos.jar -------------------------------------------------------------------------------- /libs/lwjgl-3.3.4-natives-windows-arm64.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/libs/lwjgl-3.3.4-natives-windows-arm64.jar -------------------------------------------------------------------------------- /libs/lwjgl-3.3.4-natives-windows.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/libs/lwjgl-3.3.4-natives-windows.jar -------------------------------------------------------------------------------- /libs/lwjgl-3.3.4.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/libs/lwjgl-3.3.4.jar -------------------------------------------------------------------------------- /libs/lwjgl-glfw-3.3.4-natives-freebsd.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/libs/lwjgl-glfw-3.3.4-natives-freebsd.jar -------------------------------------------------------------------------------- /libs/lwjgl-glfw-3.3.4-natives-linux-arm32.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/libs/lwjgl-glfw-3.3.4-natives-linux-arm32.jar -------------------------------------------------------------------------------- /libs/lwjgl-glfw-3.3.4-natives-linux-arm64.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/libs/lwjgl-glfw-3.3.4-natives-linux-arm64.jar -------------------------------------------------------------------------------- /libs/lwjgl-glfw-3.3.4-natives-linux.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/libs/lwjgl-glfw-3.3.4-natives-linux.jar -------------------------------------------------------------------------------- /libs/lwjgl-glfw-3.3.4-natives-macos-arm64.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/libs/lwjgl-glfw-3.3.4-natives-macos-arm64.jar -------------------------------------------------------------------------------- /libs/lwjgl-glfw-3.3.4-natives-macos.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/libs/lwjgl-glfw-3.3.4-natives-macos.jar -------------------------------------------------------------------------------- /libs/lwjgl-glfw-3.3.4-natives-windows-arm64.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/libs/lwjgl-glfw-3.3.4-natives-windows-arm64.jar -------------------------------------------------------------------------------- /libs/lwjgl-glfw-3.3.4-natives-windows.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/libs/lwjgl-glfw-3.3.4-natives-windows.jar -------------------------------------------------------------------------------- /libs/lwjgl-glfw-3.3.4.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/libs/lwjgl-glfw-3.3.4.jar -------------------------------------------------------------------------------- /libs/soft_oal.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/libs/soft_oal.dll -------------------------------------------------------------------------------- /lspgdx.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/lspgdx.dat -------------------------------------------------------------------------------- /nuclear.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/nuclear.ico -------------------------------------------------------------------------------- /psgdx.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/psgdx.dat -------------------------------------------------------------------------------- /rrgdx.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/rrgdx.dat -------------------------------------------------------------------------------- /src/META-INF/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | Main-Class: ru.m210projects.Launcher.desktop.Main 3 | 4 | -------------------------------------------------------------------------------- /src/com/jcraft/jorbis/Util.java: -------------------------------------------------------------------------------- 1 | package com.jcraft.jorbis; 2 | 3 | class Util{ 4 | static int ilog(int v){ 5 | int ret=0; 6 | while(v!=0){ 7 | ret++; 8 | v>>>=1; 9 | } 10 | return (ret); 11 | } 12 | 13 | static int ilog2(int v){ 14 | int ret=0; 15 | while(v>1){ 16 | ret++; 17 | v>>>=1; 18 | } 19 | return (ret); 20 | } 21 | 22 | static int icount(int v){ 23 | int ret=0; 24 | while(v!=0){ 25 | ret+=(v&1); 26 | v>>>=1; 27 | } 28 | return (ret); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/ru/m210projects/Blood/AI/AISTATEFUNC.java: -------------------------------------------------------------------------------- 1 | // This file is part of BloodGDX. 2 | // Copyright (C) 2017-2019 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // BloodGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // BloodGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with BloodGDX. If not, see . 16 | 17 | package ru.m210projects.Blood.AI; 18 | 19 | import ru.m210projects.Blood.Types.XSPRITE; 20 | import ru.m210projects.Build.Types.SPRITE; 21 | 22 | public interface AISTATEFUNC { 23 | enum Type { none, idle, recoil, search, tgoto, attack, other } 24 | 25 | void enter(SPRITE sprite, XSPRITE xsprite); 26 | void move(SPRITE sprite, XSPRITE xsprite); 27 | void think(SPRITE sprite, XSPRITE xsprite); 28 | void callback(int nXSprite); 29 | } 30 | -------------------------------------------------------------------------------- /src/ru/m210projects/Blood/Factory/BloodSoftware.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Blood.Factory; 2 | 3 | import ru.m210projects.Build.Engine; 4 | import ru.m210projects.Build.Render.Software.Software; 5 | 6 | public class BloodSoftware extends Software { 7 | 8 | public BloodSoftware(Engine engine) { 9 | super(engine, new BloodMapSettings()); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/ru/m210projects/Blood/Menus/MenuCredits.java: -------------------------------------------------------------------------------- 1 | // This file is part of BloodGDX. 2 | // Copyright (C) 2017-2019 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // BloodGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // BloodGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with BloodGDX. If not, see . 16 | 17 | package ru.m210projects.Blood.Menus; 18 | 19 | import ru.m210projects.Build.Pattern.MenuItems.BuildMenu; 20 | 21 | public class MenuCredits extends BuildMenu { 22 | 23 | public MenuCredits() 24 | { 25 | MenuQav QAVCredits = new MenuQav(160, 100, "CREDITS.QAV"); 26 | QAVCredits.clearScreen = true; 27 | QAVCredits.flags |= (8 | 2); 28 | 29 | addItem(QAVCredits, true); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /src/ru/m210projects/Blood/PriorityQueue/IPriorityQueue.java: -------------------------------------------------------------------------------- 1 | // This file is part of BloodGDX. 2 | // Copyright (C) 2017-2019 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // BloodGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // BloodGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with BloodGDX. If not, see . 16 | 17 | package ru.m210projects.Blood.PriorityQueue; 18 | 19 | public interface IPriorityQueue { 20 | 21 | void flush(); 22 | 23 | void Insert(long time, int event); 24 | 25 | int Remove(); 26 | 27 | void checkList(int nIndex, int nType); 28 | 29 | void checkList(int nIndex, int nType, int funcId); 30 | 31 | boolean Check(long time); 32 | 33 | int getSize(); 34 | 35 | PriorityItem getItem(int i); 36 | } 37 | -------------------------------------------------------------------------------- /src/ru/m210projects/Blood/Types/AMMOINFO.java: -------------------------------------------------------------------------------- 1 | // This file is part of BloodGDX. 2 | // Copyright (C) 2017-2019 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // BloodGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // BloodGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with BloodGDX. If not, see . 16 | 17 | package ru.m210projects.Blood.Types; 18 | 19 | public class AMMOINFO { 20 | public int max; 21 | public int vectorType; 22 | 23 | public AMMOINFO(int max, int vectorType, int unk) { 24 | this.max = max; 25 | this.vectorType = vectorType; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/ru/m210projects/Blood/Types/ARMORITEMDATA.java: -------------------------------------------------------------------------------- 1 | // This file is part of BloodGDX. 2 | // Copyright (C) 2017-2019 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // BloodGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // BloodGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with BloodGDX. If not, see . 16 | 17 | package ru.m210projects.Blood.Types; 18 | 19 | public class ARMORITEMDATA { 20 | public int[] count; 21 | public int[] max; 22 | 23 | public ARMORITEMDATA(int[] count, int[] max) { 24 | this.count = count; 25 | this.max = max; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/ru/m210projects/Blood/Types/BURN.java: -------------------------------------------------------------------------------- 1 | // This file is part of BloodGDX. 2 | // Copyright (C) 2017-2019 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // BloodGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // BloodGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with BloodGDX. If not, see . 16 | 17 | package ru.m210projects.Blood.Types; 18 | 19 | public class BURN { 20 | public int nTile; 21 | public int nFlags; 22 | public int nPal; 23 | public int zoom; 24 | public int x, y; 25 | 26 | public BURN(int nTile, int nFlags, int nPal, int zoom, int x, int y) { 27 | this.nTile = nTile; 28 | this.nFlags = nFlags; 29 | this.nPal = nPal; 30 | this.zoom = zoom; 31 | this.x = x; 32 | this.y = y; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/ru/m210projects/Blood/Types/BUSY.java: -------------------------------------------------------------------------------- 1 | // This file is part of BloodGDX. 2 | // Copyright (C) 2017-2019 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // BloodGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // BloodGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with BloodGDX. If not, see . 16 | 17 | package ru.m210projects.Blood.Types; 18 | 19 | public class BUSY { 20 | public int nIndex; 21 | public int nDelta; 22 | public int nBusy; 23 | public int busyProc; 24 | 25 | public void clear() 26 | { 27 | nIndex = 0; 28 | nDelta = 0; 29 | nBusy = 0; 30 | busyProc = 0; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/ru/m210projects/Blood/Types/BUSYPROC.java: -------------------------------------------------------------------------------- 1 | // This file is part of BloodGDX. 2 | // Copyright (C) 2017-2019 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // BloodGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // BloodGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with BloodGDX. If not, see . 16 | 17 | package ru.m210projects.Blood.Types; 18 | 19 | public interface BUSYPROC { 20 | int run(int nIndex, int nBusy); 21 | } 22 | -------------------------------------------------------------------------------- /src/ru/m210projects/Blood/Types/CALLPROC.java: -------------------------------------------------------------------------------- 1 | // This file is part of BloodGDX. 2 | // Copyright (C) 2017-2019 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // BloodGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // BloodGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with BloodGDX. If not, see . 16 | 17 | package ru.m210projects.Blood.Types; 18 | 19 | public interface CALLPROC { 20 | void run(int nIndex); 21 | } -------------------------------------------------------------------------------- /src/ru/m210projects/Blood/Types/DAMAGEINFO.java: -------------------------------------------------------------------------------- 1 | // This file is part of BloodGDX. 2 | // Copyright (C) 2017-2019 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // BloodGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // BloodGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with BloodGDX. If not, see . 16 | 17 | package ru.m210projects.Blood.Types; 18 | 19 | public class DAMAGEINFO { 20 | public int nArmorType; 21 | public int[] nSoundID; 22 | public DAMAGEINFO(int nArmorType, int[] nSoundID) 23 | { 24 | this.nArmorType = nArmorType; 25 | this.nSoundID = nSoundID; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/ru/m210projects/Blood/Types/FragInfo.java: -------------------------------------------------------------------------------- 1 | // This file is part of BloodGDX. 2 | // Copyright (C) 2017-2019 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // BloodGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // BloodGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with BloodGDX. If not, see . 16 | 17 | package ru.m210projects.Blood.Types; 18 | 19 | public class FragInfo { 20 | 21 | public String text; 22 | public String text2; 23 | public int nSound; 24 | 25 | public FragInfo(int nSound, String text, String text2) 26 | { 27 | this.nSound = nSound; 28 | this.text = text; 29 | this.text2 = text2; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/ru/m210projects/Blood/Types/GENDUDESND.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Blood.Types; 2 | 3 | public class GENDUDESND { 4 | public int defaultSndId; 5 | public int randomRange; 6 | public int sndIdOffset; // relative to data3 7 | public boolean aiPlaySound; // false = sfxStart3DSound(); 8 | 9 | public GENDUDESND (int defSnd, int rndRange, int sndOffs, boolean aiSnd) { 10 | 11 | this.defaultSndId = defSnd; 12 | this.randomRange = rndRange; 13 | this.sndIdOffset = sndOffs; 14 | this.aiPlaySound = aiSnd; 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/ru/m210projects/Blood/Types/HANDANIM.java: -------------------------------------------------------------------------------- 1 | // This file is part of BloodGDX. 2 | // Copyright (C) 2017-2019 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // BloodGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // BloodGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with BloodGDX. If not, see . 16 | 17 | package ru.m210projects.Blood.Types; 18 | 19 | import ru.m210projects.Blood.QAV; 20 | 21 | public class HANDANIM { 22 | public QAV pQAV; 23 | public int duration; 24 | public int clock; 25 | } 26 | -------------------------------------------------------------------------------- /src/ru/m210projects/Blood/Types/INVITEM.java: -------------------------------------------------------------------------------- 1 | // This file is part of BloodGDX. 2 | // Copyright (C) 2017-2019 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // BloodGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // BloodGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with BloodGDX. If not, see . 16 | 17 | package ru.m210projects.Blood.Types; 18 | 19 | public class INVITEM { 20 | public boolean activated; 21 | public int amount; 22 | } 23 | -------------------------------------------------------------------------------- /src/ru/m210projects/Blood/Types/LOADITEM.java: -------------------------------------------------------------------------------- 1 | // This file is part of BloodGDX. 2 | // Copyright (C) 2017-2019 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // BloodGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // BloodGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with BloodGDX. If not, see . 16 | 17 | package ru.m210projects.Blood.Types; 18 | 19 | public class LOADITEM { 20 | public int index; 21 | public String name; 22 | public LOADITEM(int index, String name ) { 23 | this.name = name; 24 | this.index = index; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/ru/m210projects/Blood/Types/POSTPONE.java: -------------------------------------------------------------------------------- 1 | // This file is part of BloodGDX. 2 | // Copyright (C) 2017-2019 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // BloodGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // BloodGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with BloodGDX. If not, see . 16 | 17 | package ru.m210projects.Blood.Types; 18 | 19 | public class POSTPONE { 20 | public short nSprite; 21 | public short nStatus; 22 | 23 | public void clear() { 24 | nSprite = 0; 25 | nStatus = 0; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/ru/m210projects/Blood/Types/POWERUPINFO.java: -------------------------------------------------------------------------------- 1 | // This file is part of BloodGDX. 2 | // Copyright (C) 2017-2019 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // BloodGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // BloodGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with BloodGDX. If not, see . 16 | 17 | package ru.m210projects.Blood.Types; 18 | 19 | public class POWERUPINFO { 20 | public int addPower; 21 | public int maxPower; 22 | public int picnum; 23 | public boolean isUnique; 24 | 25 | public POWERUPINFO(int picnum, boolean isUnique, int addPower, int maxPower) { 26 | this.addPower = addPower; 27 | this.maxPower = maxPower; 28 | this.picnum = picnum; 29 | this.isUnique = isUnique; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/ru/m210projects/Blood/Types/QAVCALLBACKFUNC.java: -------------------------------------------------------------------------------- 1 | // This file is part of BloodGDX. 2 | // Copyright (C) 2017-2019 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // BloodGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // BloodGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with BloodGDX. If not, see . 16 | 17 | package ru.m210projects.Blood.Types; 18 | 19 | public interface QAVCALLBACKFUNC { 20 | void run(int triggerId, Object data); 21 | } 22 | -------------------------------------------------------------------------------- /src/ru/m210projects/Blood/Types/QUOTE.java: -------------------------------------------------------------------------------- 1 | // This file is part of BloodGDX. 2 | // Copyright (C) 2017-2019 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // BloodGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // BloodGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with BloodGDX. If not, see . 16 | 17 | package ru.m210projects.Blood.Types; 18 | 19 | public class QUOTE { 20 | public String messageText; 21 | public int messageTime; 22 | public int pal; 23 | } 24 | -------------------------------------------------------------------------------- /src/ru/m210projects/Blood/Types/SAMPLE2D.java: -------------------------------------------------------------------------------- 1 | // This file is part of BloodGDX. 2 | // Copyright (C) 2017-2019 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // BloodGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // BloodGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with BloodGDX. If not, see . 16 | 17 | package ru.m210projects.Blood.Types; 18 | 19 | import java.nio.ByteBuffer; 20 | 21 | import ru.m210projects.Build.Audio.Source; 22 | 23 | public class SAMPLE2D { 24 | public Source hVoice; 25 | public int loop; 26 | public ByteBuffer hResource; 27 | 28 | public SAMPLE2D() 29 | { 30 | hVoice = null; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/ru/m210projects/Blood/Types/SPRITEHIT.java: -------------------------------------------------------------------------------- 1 | // This file is part of BloodGDX. 2 | // Copyright (C) 2017-2019 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // BloodGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // BloodGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with BloodGDX. If not, see . 16 | 17 | package ru.m210projects.Blood.Types; 18 | 19 | public class SPRITEHIT { 20 | public int moveHit; 21 | public int ceilHit; 22 | public int floorHit; 23 | 24 | public void clear() { 25 | moveHit = 0; 26 | ceilHit = 0; 27 | floorHit = 0; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/ru/m210projects/Blood/Types/SPRITEMASS.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Blood.Types; 2 | 3 | public class SPRITEMASS { 4 | public int seqId; 5 | public int mass; 6 | public short xrepeat; 7 | public short yrepeat; 8 | public int clipdist; // mass multiplier 9 | } 10 | -------------------------------------------------------------------------------- /src/ru/m210projects/Blood/Types/SURFACE.java: -------------------------------------------------------------------------------- 1 | // This file is part of BloodGDX. 2 | // Copyright (C) 2017-2019 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // BloodGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // BloodGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with BloodGDX. If not, see . 16 | 17 | package ru.m210projects.Blood.Types; 18 | 19 | public class SURFACE { 20 | public int nEffect1; 21 | public int nEffect2; 22 | public int nEffect3; 23 | public int nSoundId; 24 | 25 | public SURFACE(int nEffect1, int nEffect2, int nEffect3, int nSoundId) { 26 | this.nEffect1 = nEffect1; 27 | this.nEffect2 = nEffect2; 28 | this.nEffect3 = nEffect3; 29 | this.nSoundId = nSoundId; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/ru/m210projects/Blood/Types/Seq/CeilingInst.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Blood.Types.Seq; 2 | 3 | import static ru.m210projects.Blood.DB.kMaxXSectors; 4 | import static ru.m210projects.Blood.DB.xsector; 5 | import static ru.m210projects.Blood.Globals.kMaxSectors; 6 | import static ru.m210projects.Blood.Main.game; 7 | import static ru.m210projects.Build.Engine.sector; 8 | 9 | import ru.m210projects.Build.Types.SECTOR; 10 | 11 | public class CeilingInst extends SeqInst { 12 | @Override 13 | protected void updateInstance(int index) { 14 | if(!(index > 0 && index < kMaxXSectors)) 15 | game.dassert("nXSector > 0 && nXSector < kMaxXSectors"); 16 | int nSector = xsector[index].reference; 17 | if(!(nSector >= 0 && nSector < kMaxSectors)) 18 | game.dassert("nSector >= 0 && nSector < kMaxSectors"); 19 | SECTOR pSector = sector[nSector]; 20 | if(pSector.extra != index) 21 | game.dassert("pSector.extra == nXSector"); 22 | 23 | SeqFrame pFrame = pSequence.getFrame(frameIndex); 24 | 25 | pSector.ceilingpicnum = (short)pFrame.nTile; 26 | pSector.ceilingshade = pFrame.shade; 27 | pSector.ceilingpal = (short)pFrame.pal; 28 | } 29 | } -------------------------------------------------------------------------------- /src/ru/m210projects/Blood/Types/Seq/FloorInst.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Blood.Types.Seq; 2 | 3 | import static ru.m210projects.Blood.DB.kMaxXSectors; 4 | import static ru.m210projects.Blood.DB.xsector; 5 | import static ru.m210projects.Blood.Globals.kMaxSectors; 6 | import static ru.m210projects.Blood.Main.game; 7 | import static ru.m210projects.Build.Engine.sector; 8 | 9 | import ru.m210projects.Build.Types.SECTOR; 10 | 11 | public class FloorInst extends SeqInst { 12 | 13 | @Override 14 | protected void updateInstance(int index) { 15 | if(!(index > 0 && index < kMaxXSectors)) 16 | game.dassert("nXSector > 0 && nXSector < kMaxXSectors"); 17 | int nSector = xsector[index].reference; 18 | if(!(nSector >= 0 && nSector < kMaxSectors)) 19 | game.dassert("nSector >= 0 && nSector < kMaxSectors"); 20 | SECTOR pSector = sector[nSector]; 21 | if(pSector.extra != index) 22 | game.dassert("pSector.extra == nXSector"); 23 | 24 | SeqFrame pFrame = pSequence.getFrame(frameIndex); 25 | 26 | pSector.floorpicnum = (short)pFrame.nTile; 27 | pSector.floorshade = pFrame.shade; 28 | pSector.floorpal = (short)pFrame.pal; 29 | } 30 | } -------------------------------------------------------------------------------- /src/ru/m210projects/Blood/Types/WEAPONDATA.java: -------------------------------------------------------------------------------- 1 | // This file is part of BloodGDX. 2 | // Copyright (C) 2017-2019 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // BloodGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // BloodGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with BloodGDX. If not, see . 16 | 17 | package ru.m210projects.Blood.Types; 18 | 19 | public class WEAPONDATA { 20 | public int update; 21 | public int ammoType; 22 | 23 | public WEAPONDATA(int update, int ammoType) { 24 | this.update = update; 25 | this.ammoType = ammoType; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/ru/m210projects/Blood/Types/ZONE.java: -------------------------------------------------------------------------------- 1 | // This file is part of BloodGDX. 2 | // Copyright (C) 2017-2019 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // BloodGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // BloodGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with BloodGDX. If not, see . 16 | 17 | package ru.m210projects.Blood.Types; 18 | 19 | public class ZONE { 20 | public long x; 21 | public long y; 22 | public long z; 23 | public short sector; 24 | public short angle; 25 | 26 | public void clear() { 27 | x = y = z = 0; 28 | sector = angle = 0; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/ru/m210projects/Build/Architecture/BuildInput.java: -------------------------------------------------------------------------------- 1 | // This file is part of BuildGDX. 2 | // Copyright (C) 2017-2020 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // BuildGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // BuildGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with BuildGDX. If not, see . 16 | 17 | package ru.m210projects.Build.Architecture; 18 | 19 | import com.badlogic.gdx.Input; 20 | 21 | public interface BuildInput extends Input { 22 | 23 | void init(BuildFrame frame); 24 | 25 | void dispose(); 26 | 27 | void update(); 28 | 29 | void processEvents(); 30 | 31 | void processMessages(); 32 | 33 | boolean cursorHandler(); 34 | 35 | int getDWheel(); 36 | 37 | } 38 | -------------------------------------------------------------------------------- /src/ru/m210projects/Build/Architecture/BuildMessage.java: -------------------------------------------------------------------------------- 1 | //This file is part of BuildGDX. 2 | //Copyright (C) 2017-2020 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | //BuildGDX is free software: you can redistribute it and/or modify 5 | //it under the terms of the GNU General Public License as published by 6 | //the Free Software Foundation, either version 3 of the License, or 7 | //(at your option) any later version. 8 | // 9 | //BuildGDX is distributed in the hope that it will be useful, 10 | //but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | //MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | //GNU General Public License for more details. 13 | // 14 | //You should have received a copy of the GNU General Public License 15 | //along with BuildGDX. If not, see . 16 | 17 | package ru.m210projects.Build.Architecture; 18 | 19 | public interface BuildMessage { 20 | 21 | enum MessageType { Question, Info, Crash } 22 | 23 | void setFrame(BuildFrame frame); 24 | 25 | boolean show(String header, String text, MessageType type); 26 | 27 | void dispose(); 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/ru/m210projects/Build/Audio/Music.java: -------------------------------------------------------------------------------- 1 | // This file is part of BuildGDX. 2 | // Copyright (C) 2017-2018 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // BuildGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // BuildGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with BuildGDX. If not, see . 16 | 17 | 18 | package ru.m210projects.Build.Audio; 19 | 20 | public interface Music { 21 | MusicSource newMusic(byte[] data); 22 | MusicSource newMusic(String name); 23 | 24 | void setVolume(float volume); 25 | boolean init(); 26 | boolean isInited(); 27 | String getName(); 28 | void update(); 29 | void dispose(); 30 | } 31 | -------------------------------------------------------------------------------- /src/ru/m210projects/Build/Audio/MusicSource.java: -------------------------------------------------------------------------------- 1 | //This file is part of BuildGDX. 2 | //Copyright (C) 2017-2018 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | //BuildGDX is free software: you can redistribute it and/or modify 5 | //it under the terms of the GNU General Public License as published by 6 | //the Free Software Foundation, either version 3 of the License, or 7 | //(at your option) any later version. 8 | // 9 | //BuildGDX is distributed in the hope that it will be useful, 10 | //but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | //MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | //GNU General Public License for more details. 13 | // 14 | //You should have received a copy of the GNU General Public License 15 | //along with BuildGDX. If not, see . 16 | 17 | package ru.m210projects.Build.Audio; 18 | 19 | public abstract class MusicSource { 20 | 21 | public abstract void play(boolean loop); 22 | public abstract void stop(); 23 | public abstract void pause(); 24 | public abstract void resume(); 25 | public abstract void dispose(); 26 | public abstract void update(); 27 | 28 | public abstract boolean isLooping(); 29 | public abstract boolean isPlaying(); 30 | 31 | } 32 | -------------------------------------------------------------------------------- /src/ru/m210projects/Build/Audio/SoundData.java: -------------------------------------------------------------------------------- 1 | // This file is part of BuildGDX. 2 | // Copyright (C) 2017-2020 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // BuildGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // BuildGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with BuildGDX. If not, see . 16 | 17 | package ru.m210projects.Build.Audio; 18 | 19 | import java.nio.ByteBuffer; 20 | 21 | public class SoundData { 22 | 23 | public int rate; 24 | public int channels; 25 | public int bits; 26 | public ByteBuffer data; 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/ru/m210projects/Build/Audio/SourceCallback.java: -------------------------------------------------------------------------------- 1 | // This file is part of BuildGDX. 2 | // Copyright (C) 2017-2018 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // BuildGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // BuildGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with BuildGDX. If not, see . 16 | 17 | package ru.m210projects.Build.Audio; 18 | 19 | public interface SourceCallback { 20 | void run(T ch); 21 | } 22 | -------------------------------------------------------------------------------- /src/ru/m210projects/Build/Input/InputCallback.java: -------------------------------------------------------------------------------- 1 | //This file is part of BuildGDX. 2 | //Copyright (C) 2017-2018 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | //BuildGDX is free software: you can redistribute it and/or modify 5 | //it under the terms of the GNU General Public License as published by 6 | //the Free Software Foundation, either version 3 of the License, or 7 | //(at your option) any later version. 8 | // 9 | //BuildGDX is distributed in the hope that it will be useful, 10 | //but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | //MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | //GNU General Public License for more details. 13 | // 14 | //You should have received a copy of the GNU General Public License 15 | //along with BuildGDX. If not, see . 16 | 17 | package ru.m210projects.Build.Input; 18 | 19 | public interface InputCallback { 20 | int run(int ch); 21 | } 22 | -------------------------------------------------------------------------------- /src/ru/m210projects/Build/Net/ISocket.java: -------------------------------------------------------------------------------- 1 | // This file is part of BuildGDX. 2 | // Copyright (C) 2017-2018 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // BuildGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // BuildGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with BuildGDX. If not, see . 16 | 17 | package ru.m210projects.Build.Net; 18 | 19 | public interface ISocket { 20 | Object recvfrom(byte[] dabuf, int bufsiz); 21 | void sendto(Object sockaddr, byte[] dabuf, int bufsiz); 22 | void dispose(); 23 | } 24 | -------------------------------------------------------------------------------- /src/ru/m210projects/Build/Net/NetInfo.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Build.Net; 2 | 3 | public class NetInfo { 4 | public String myip; 5 | public String extip; 6 | public String serverip; 7 | public String message; 8 | public int port; 9 | public int netready; 10 | public int plready = 1; 11 | public Thread waitThread; 12 | public boolean useUPnP; 13 | public int uPnPPort = -1; 14 | 15 | private String lastMessage; 16 | 17 | public void clear() 18 | { 19 | myip = extip = serverip = message = null; 20 | port = netready = 0; 21 | plready = 1; 22 | } 23 | 24 | public boolean waiting() 25 | { 26 | return waitThread.isAlive(); 27 | } 28 | 29 | public boolean IsNewMessage() 30 | { 31 | boolean out = !message.equals(lastMessage); 32 | lastMessage = message; 33 | return out; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/ru/m210projects/Build/Net/UDPServer.java: -------------------------------------------------------------------------------- 1 | // This file is part of BuildGDX. 2 | // Copyright (C) 2017-2018 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // BuildGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // BuildGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with BuildGDX. If not, see . 16 | 17 | package ru.m210projects.Build.Net; 18 | 19 | import java.net.InetSocketAddress; 20 | 21 | public class UDPServer extends UDPSocket { 22 | public UDPServer(int port) throws Throwable { 23 | super(port); 24 | sock.bind(new InetSocketAddress(port)); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/ru/m210projects/Build/OnSceenDisplay/OSDCVARFUNC.java: -------------------------------------------------------------------------------- 1 | //This file is part of BuildGDX. 2 | //Copyright (C) 2017-2018 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | //BuildGDX is free software: you can redistribute it and/or modify 5 | //it under the terms of the GNU General Public License as published by 6 | //the Free Software Foundation, either version 3 of the License, or 7 | //(at your option) any later version. 8 | // 9 | //BuildGDX is distributed in the hope that it will be useful, 10 | //but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | //MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | //GNU General Public License for more details. 13 | // 14 | //You should have received a copy of the GNU General Public License 15 | //along with BuildGDX. If not, see . 16 | 17 | package ru.m210projects.Build.OnSceenDisplay; 18 | 19 | public interface OSDCVARFUNC { 20 | void execute(); 21 | } 22 | -------------------------------------------------------------------------------- /src/ru/m210projects/Build/Pattern/FontHandler.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Build.Pattern; 2 | 3 | public abstract class FontHandler { 4 | 5 | protected BuildFont[] fonts; 6 | protected final int nFonts; 7 | 8 | public FontHandler(int nFonts) 9 | { 10 | this.nFonts = nFonts; 11 | fonts = new BuildFont[nFonts]; 12 | } 13 | 14 | protected abstract BuildFont init(int i); 15 | 16 | public BuildFont getFont(int i) { 17 | if(i < 0 && i >= nFonts) 18 | throw new IllegalArgumentException("Wrong font number"); 19 | 20 | if(fonts[i] == null) 21 | fonts[i] = init(i); 22 | return fonts[i]; 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/ru/m210projects/Build/Pattern/MenuItems/DummyItem.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Build.Pattern.MenuItems; 2 | 3 | import ru.m210projects.Build.Pattern.MenuItems.MenuHandler.MenuOpt; 4 | 5 | public class DummyItem extends MenuItem { 6 | 7 | public DummyItem() { 8 | super(null, null); 9 | } 10 | 11 | @Override 12 | public void draw(MenuHandler handler) { 13 | } 14 | 15 | @Override 16 | public boolean callback(MenuHandler handler, MenuOpt opt) { 17 | return false; 18 | } 19 | 20 | @Override 21 | public boolean mouseAction(int mx, int my) { 22 | return false; 23 | } 24 | 25 | @Override 26 | public void open() { 27 | } 28 | 29 | @Override 30 | public void close() { 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/ru/m210projects/Build/Pattern/MenuItems/MenuProc.java: -------------------------------------------------------------------------------- 1 | //This file is part of BuildGDX. 2 | //Copyright (C) 2017-2018 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | //BuildGDX is free software: you can redistribute it and/or modify 5 | //it under the terms of the GNU General Public License as published by 6 | //the Free Software Foundation, either version 3 of the License, or 7 | //(at your option) any later version. 8 | // 9 | //BuildGDX is distributed in the hope that it will be useful, 10 | //but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | //MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | //GNU General Public License for more details. 13 | // 14 | //You should have received a copy of the GNU General Public License 15 | //along with BuildGDX. If not, see . 16 | 17 | package ru.m210projects.Build.Pattern.MenuItems; 18 | 19 | public interface MenuProc { 20 | void run(MenuHandler handler, MenuItem pItem); 21 | } 22 | -------------------------------------------------------------------------------- /src/ru/m210projects/Build/Render/IOverheadMapSettings.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Build.Render; 2 | 3 | public interface IOverheadMapSettings { 4 | 5 | enum MapView { 6 | Polygons, Lines 7 | } 8 | 9 | boolean isFullMap(); 10 | 11 | boolean isScrollMode(); 12 | 13 | int getViewPlayer(); 14 | 15 | boolean isShowSprites(MapView view); 16 | 17 | boolean isShowFloorSprites(); 18 | 19 | boolean isShowRedWalls(); 20 | 21 | boolean isShowAllPlayers(); 22 | 23 | boolean isSpriteVisible(MapView view, int index); 24 | 25 | boolean isWallVisible(int w, int ses); 26 | 27 | int getWallColor(int w, int sec); 28 | 29 | int getWallX(int w); 30 | 31 | int getWallY(int w); 32 | 33 | int getSpriteColor(int s); 34 | 35 | int getSpriteX(int spr); 36 | 37 | int getSpriteY(int spr); 38 | 39 | int getSpritePicnum(int spr); 40 | 41 | int getPlayerSprite(int player); 42 | 43 | int getPlayerPicnum(int player); 44 | 45 | int getPlayerZoom(int player, int czoom); 46 | 47 | } 48 | -------------------------------------------------------------------------------- /src/ru/m210projects/Build/Render/ModelHandle/GLModel.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Build.Render.ModelHandle; 2 | 3 | import java.util.Iterator; 4 | 5 | import com.badlogic.gdx.graphics.glutils.ShaderProgram; 6 | 7 | import ru.m210projects.Build.Render.ModelHandle.ModelInfo.Type; 8 | import ru.m210projects.Build.Render.TextureHandle.GLTile; 9 | 10 | public interface GLModel { 11 | 12 | boolean render(int pal, int shade, int skinnum, int visibility, float alpha); 13 | 14 | ShaderProgram getShader(); 15 | 16 | void dispose(); 17 | 18 | Iterator getSkins(); 19 | 20 | void clearSkins(); 21 | 22 | Type getType(); 23 | 24 | boolean isRotating(); 25 | 26 | boolean isTintAffected(); 27 | 28 | float getScale(); 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/ru/m210projects/Build/Render/ModelHandle/MDModel/MD2/MD2Frame.java: -------------------------------------------------------------------------------- 1 | // This file is part of BuildGDX. 2 | // Copyright (C) 2017-2018 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // BuildGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // BuildGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with BuildGDX. If not, see . 16 | 17 | package ru.m210projects.Build.Render.ModelHandle.MDModel.MD2; 18 | 19 | public class MD2Frame { 20 | public float[][] vertices; 21 | public String name; 22 | } 23 | -------------------------------------------------------------------------------- /src/ru/m210projects/Build/Render/ModelHandle/MDModel/MD2/MD2Triangle.java: -------------------------------------------------------------------------------- 1 | // This file is part of BuildGDX. 2 | // Copyright (C) 2017-2018 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // BuildGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // BuildGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with BuildGDX. If not, see . 16 | 17 | package ru.m210projects.Build.Render.ModelHandle.MDModel.MD2; 18 | 19 | public class MD2Triangle { 20 | public short[] vertices = new short[3]; 21 | public short[] texCoords = new short[3]; 22 | } 23 | -------------------------------------------------------------------------------- /src/ru/m210projects/Build/Render/ModelHandle/MDModel/MD3/MD3Frame.java: -------------------------------------------------------------------------------- 1 | // This file is part of BuildGDX. 2 | // Copyright (C) 2017-2018 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // BuildGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // BuildGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with BuildGDX. If not, see . 16 | 17 | package ru.m210projects.Build.Render.ModelHandle.MDModel.MD3; 18 | 19 | import com.badlogic.gdx.math.Vector3; 20 | 21 | public class MD3Frame{ 22 | public Vector3 min; 23 | public Vector3 max; 24 | public Vector3 origin; 25 | public Float radius; 26 | public String name; 27 | } -------------------------------------------------------------------------------- /src/ru/m210projects/Build/Render/ModelHandle/MDModel/MD3/MD3Header.java: -------------------------------------------------------------------------------- 1 | // This file is part of BuildGDX. 2 | // Copyright (C) 2017-2018 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // BuildGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // BuildGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with BuildGDX. If not, see . 16 | 17 | package ru.m210projects.Build.Render.ModelHandle.MDModel.MD3; 18 | 19 | public class MD3Header 20 | { 21 | public int ident; 22 | public int version; 23 | public String filename; 24 | public int flags; 25 | public int numFrames; 26 | public int numTags; 27 | public int numSurfaces; 28 | public int numSkins; 29 | public int offsetFrames; 30 | public int offsetTags; 31 | public int offsetSurfaces; 32 | public int offsetEnd; 33 | } 34 | -------------------------------------------------------------------------------- /src/ru/m210projects/Build/Render/ModelHandle/MDModel/MD3/MD3Shader.java: -------------------------------------------------------------------------------- 1 | // This file is part of BuildGDX. 2 | // Copyright (C) 2017-2018 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // BuildGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // BuildGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with BuildGDX. If not, see . 16 | 17 | package ru.m210projects.Build.Render.ModelHandle.MDModel.MD3; 18 | 19 | public class MD3Shader { 20 | String name; 21 | int index; 22 | } 23 | -------------------------------------------------------------------------------- /src/ru/m210projects/Build/Render/ModelHandle/MDModel/MD3/MD3Vertice.java: -------------------------------------------------------------------------------- 1 | // This file is part of BuildGDX. 2 | // Copyright (C) 2017-2018 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // BuildGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // BuildGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with BuildGDX. If not, see . 16 | 17 | package ru.m210projects.Build.Render.ModelHandle.MDModel.MD3; 18 | 19 | public class MD3Vertice { 20 | public short x, y, z, nlat, nlng; 21 | } 22 | -------------------------------------------------------------------------------- /src/ru/m210projects/Build/Render/ModelHandle/MDModel/MDAnimation.java: -------------------------------------------------------------------------------- 1 | /* 2 | * MDAnimation for Polymost 3 | * by Jonathon Fowler 4 | * See the included license file "BUILDLIC.TXT" for license info. 5 | * 6 | * This file has been ported to Java by Alexander Makarov-[M210] (m210-2007@mail.ru) 7 | */ 8 | 9 | package ru.m210projects.Build.Render.ModelHandle.MDModel; 10 | 11 | public class MDAnimation { 12 | 13 | public static final int MDANIM_LOOP = 0; 14 | public static final int MDANIM_ONESHOT = 1; 15 | public static long mdtims, omdtims; 16 | public static int mdpause; 17 | 18 | public int startframe, endframe; 19 | public int fpssc, flags; 20 | public MDAnimation next; 21 | } 22 | -------------------------------------------------------------------------------- /src/ru/m210projects/Build/Render/ModelHandle/MDModel/MDSkinmap.java: -------------------------------------------------------------------------------- 1 | /* 2 | * MDSkinmap for Polymost 3 | * by Jonathon Fowler 4 | * See the included license file "BUILDLIC.TXT" for license info. 5 | * 6 | * This file has been ported to Java by Alexander Makarov-[M210] (m210-2007@mail.ru) 7 | */ 8 | 9 | package ru.m210projects.Build.Render.ModelHandle.MDModel; 10 | 11 | import ru.m210projects.Build.Render.TextureHandle.GLTile; 12 | 13 | public class MDSkinmap { 14 | public int palette; // Build palette number 15 | public int skinnum, surfnum; // Skin identifier, surface number 16 | 17 | public GLTile texid; 18 | public String fn; // Skin filename 19 | public MDSkinmap next; 20 | public float param, specpower, specfactor; 21 | } 22 | -------------------------------------------------------------------------------- /src/ru/m210projects/Build/Render/ModelHandle/ModelInfo.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Build.Render.ModelHandle; 2 | 3 | public class ModelInfo { 4 | 5 | public static final int MD_ROTATE = 2; 6 | 7 | public enum Type { 8 | Voxel, Md2, Md3 9 | } 10 | 11 | protected final String filename; 12 | protected final Type type; 13 | 14 | protected int flags; 15 | protected float scale; 16 | // yoffset differs from zadd in that it does not follow cstat&8 y-flipping 17 | protected float yoffset, zadd; 18 | 19 | public ModelInfo(String filename, Type type) { 20 | this.filename = filename; 21 | this.type = type; 22 | } 23 | 24 | public String getFilename() { 25 | return filename; 26 | } 27 | 28 | public Type getType() { 29 | return type; 30 | } 31 | 32 | public int getFlags() { 33 | return flags; 34 | } 35 | 36 | public void setMisc(float scale, float zadd, float yoffset, int flags) { 37 | this.scale = scale; 38 | this.zadd = zadd; 39 | this.yoffset = yoffset; 40 | this.flags = flags; 41 | } 42 | 43 | public boolean isRotating() { 44 | return (flags & MD_ROTATE) != 0; 45 | } 46 | 47 | public float getScale() { 48 | return scale; 49 | } 50 | 51 | public float getYOffset(boolean yflipping) { 52 | return !yflipping ? yoffset : zadd; 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /src/ru/m210projects/Build/Render/ModelHandle/Voxel/VoxelSkin.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Build.Render.ModelHandle.Voxel; 2 | 3 | import static ru.m210projects.Build.Engine.curpalette; 4 | import static ru.m210projects.Build.Engine.palookup; 5 | 6 | import ru.m210projects.Build.Render.TextureHandle.DummyTileData; 7 | import ru.m210projects.Build.Types.Tile; 8 | 9 | public class VoxelSkin extends DummyTileData { 10 | 11 | public VoxelSkin(PixelFormat fmt, Tile tile, int dapal) { 12 | super(fmt, tile.getWidth(), tile.getHeight()); 13 | 14 | if (fmt != PixelFormat.Pal8) { 15 | int wpptr, wp, dacol; 16 | for (int x, y = 0; y < height; y++) { 17 | wpptr = y * width; 18 | for (x = 0; x < width; x++, wpptr++) { 19 | wp = wpptr << 2; 20 | dacol = tile.data[wpptr] & 0xFF; 21 | dacol = palookup[dapal][dacol] & 0xFF; 22 | 23 | data.putInt(wp, curpalette.getRGB(dacol) + (255 << 24)); 24 | } 25 | } 26 | } else 27 | data.put(tile.data, 0, width * height); 28 | } 29 | 30 | @Override 31 | public boolean isClamped() { 32 | return true; 33 | } 34 | 35 | @Override 36 | public boolean hasAlpha() { 37 | return false; 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /src/ru/m210projects/Build/Render/ModelHandle/VoxelInfo.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Build.Render.ModelHandle; 2 | 3 | import ru.m210projects.Build.Render.ModelHandle.Voxel.VoxelData; 4 | 5 | public class VoxelInfo extends ModelInfo { 6 | 7 | protected VoxelData vox; 8 | public VoxelInfo(VoxelData vox) { 9 | super(null, Type.Voxel); 10 | this.vox = vox; 11 | this.scale = 65536.0f; 12 | } 13 | 14 | public VoxelData getData() { 15 | return vox; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/ru/m210projects/Build/Render/Software/PermFifo.java: -------------------------------------------------------------------------------- 1 | // "Build Engine & Tools" Copyright (c) 1993-1997 Ken Silverman 2 | // Ken Silverman's official web site: "http://www.advsys.net/ken" 3 | // See the included license file "BUILDLIC.TXT" for license info. 4 | // 5 | // This file has been modified from Ken Silverman's original release 6 | // by Jonathon Fowler (jf@jonof.id.au) 7 | // by Alexander Makarov-[M210] (m210-2007@mail.ru) 8 | 9 | package ru.m210projects.Build.Render.Software; 10 | 11 | public class PermFifo { 12 | public int sx, sy, z; 13 | public short a, picnum; 14 | public short dashade; 15 | public short dapalnum, dastat, pagesleft; 16 | public int cx1, cy1, cx2, cy2; 17 | public int uniqid; //JF extension 18 | } 19 | -------------------------------------------------------------------------------- /src/ru/m210projects/Build/Render/Types/Hudtyp.java: -------------------------------------------------------------------------------- 1 | /* 2 | * High-colour textures support for Polymost 3 | * by Jonathon Fowler 4 | * See the included license file "BUILDLIC.TXT" for license info. 5 | */ 6 | 7 | package ru.m210projects.Build.Render.Types; 8 | 9 | public class Hudtyp { 10 | public float xadd, yadd, zadd; 11 | public short angadd, flags, fov; 12 | 13 | @Override 14 | public Hudtyp clone() { 15 | Hudtyp out = new Hudtyp(); 16 | 17 | out.xadd = xadd; 18 | out.yadd = yadd; 19 | out.zadd = zadd; 20 | 21 | out.angadd = angadd; 22 | out.flags = flags; 23 | out.fov = fov; 24 | 25 | return out; 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/ru/m210projects/Build/StringUtils.java: -------------------------------------------------------------------------------- 1 | // This file is part of BuildGDX. 2 | // Copyright (C) 2017-2020 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // BuildGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // BuildGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with BuildGDX. If not, see . 16 | 17 | package ru.m210projects.Build; 18 | 19 | public class StringUtils { 20 | 21 | public static String toUnicode(String t) { 22 | if(t == null) 23 | return null; 24 | return t.replaceAll("[^\\p{L}\\p{Nd}\\W_]+|\0", ""); //return t.replaceAll("[^a-zA-Z0-9_. /-]", ""); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/ru/m210projects/Build/Types/BuildPos.java: -------------------------------------------------------------------------------- 1 | // This file is part of BuildGDX. 2 | // Copyright (C) 2019 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // BuildGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // BuildGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with BuildGDX. If not, see . 16 | 17 | package ru.m210projects.Build.Types; 18 | 19 | public class BuildPos { 20 | 21 | public int x, y, z; 22 | public short ang, sectnum; 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/ru/m210projects/Build/Types/Hitscan.java: -------------------------------------------------------------------------------- 1 | //This file is part of BuildGDX. 2 | //Copyright (C) 2017-2018 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | //BuildGDX is free software: you can redistribute it and/or modify 5 | //it under the terms of the GNU General Public License as published by 6 | //the Free Software Foundation, either version 3 of the License, or 7 | //(at your option) any later version. 8 | // 9 | //BuildGDX is distributed in the hope that it will be useful, 10 | //but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | //MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | //GNU General Public License for more details. 13 | // 14 | //You should have received a copy of the GNU General Public License 15 | //along with BuildGDX. If not, see . 16 | 17 | package ru.m210projects.Build.Types; 18 | 19 | public class Hitscan { 20 | public int hitx = -1, hity = -1, hitz = -1; 21 | public short hitsect = -1, hitwall = -1, hitsprite = -1; 22 | } 23 | -------------------------------------------------------------------------------- /src/ru/m210projects/Build/Types/Neartag.java: -------------------------------------------------------------------------------- 1 | //This file is part of BuildGDX. 2 | //Copyright (C) 2017-2018 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | //BuildGDX is free software: you can redistribute it and/or modify 5 | //it under the terms of the GNU General Public License as published by 6 | //the Free Software Foundation, either version 3 of the License, or 7 | //(at your option) any later version. 8 | // 9 | //BuildGDX is distributed in the hope that it will be useful, 10 | //but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | //MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | //GNU General Public License for more details. 13 | // 14 | //You should have received a copy of the GNU General Public License 15 | //along with BuildGDX. If not, see . 16 | 17 | package ru.m210projects.Build.Types; 18 | 19 | public class Neartag { 20 | public int taghitdist; 21 | public short tagsector, tagwall, tagsprite; 22 | } 23 | -------------------------------------------------------------------------------- /src/ru/m210projects/Build/desktop/audio/nopenal/ALCcontext.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Build.desktop.audio.nopenal; 2 | 3 | import java.nio.IntBuffer; 4 | 5 | import org.lwjgl.BufferUtils; 6 | 7 | import com.sun.jna.PointerType; 8 | 9 | public class ALCcontext extends PointerType { 10 | 11 | /** 12 | * Creates an attribute list in a ByteBuffer 13 | * @param contextFrequency Frequency to add 14 | * @param contextRefresh Refresh rate to add 15 | * @param contextSynchronized Whether to synchronize the context 16 | * @return attribute list 17 | */ 18 | static IntBuffer createAttributeList(int contextFrequency, int contextRefresh, int contextSynchronized) { 19 | IntBuffer attribList = BufferUtils.createIntBuffer(7); 20 | 21 | attribList.put(ALC10.ALC_FREQUENCY); 22 | attribList.put(contextFrequency); 23 | attribList.put(ALC10.ALC_REFRESH); 24 | attribList.put(contextRefresh); 25 | attribList.put(ALC10.ALC_SYNC); 26 | attribList.put(contextSynchronized); 27 | attribList.put(0); //terminating int 28 | 29 | return attribList; 30 | } 31 | } -------------------------------------------------------------------------------- /src/ru/m210projects/Build/desktop/audio/nopenal/ALCdevice.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Build.desktop.audio.nopenal; 2 | 3 | import com.sun.jna.PointerType; 4 | 5 | public class ALCdevice extends PointerType {} -------------------------------------------------------------------------------- /src/ru/m210projects/Build/desktop/audio/nopenal/EXTAlaw.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright LWJGL. All rights reserved. 3 | * License terms: https://www.lwjgl.org/license 4 | * MACHINE GENERATED FILE, DO NOT EDIT 5 | */ 6 | package ru.m210projects.Build.desktop.audio.nopenal; 7 | 8 | /** Native bindings to the {@code AL_EXT_ALAW} extension. */ 9 | public final class EXTAlaw { 10 | 11 | /** Buffer formats. */ 12 | public static final int 13 | AL_FORMAT_MONO_ALAW_EXT = 0x10016, 14 | AL_FORMAT_STEREO_ALAW_EXT = 0x10017; 15 | 16 | private EXTAlaw() {} 17 | 18 | } -------------------------------------------------------------------------------- /src/ru/m210projects/Build/desktop/audio/nopenal/EXTDefaultFilterOrder.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright LWJGL. All rights reserved. 3 | * License terms: https://www.lwjgl.org/license 4 | * MACHINE GENERATED FILE, DO NOT EDIT 5 | */ 6 | package ru.m210projects.Build.desktop.audio.nopenal; 7 | 8 | /** 9 | * Native bindings to the {@code ALC_EXT_DEFAULT_FILTER_ORDER} extension. 10 | * 11 | *

This extension allows the default filter order (i.e. slope) to be selected at context creation time. Attibute {@link #ALC_DEFAULT_FILTER_ORDER DEFAULT_FILTER_ORDER} can be used with a 12 | * value of 1 (for -6dB/oct) or 2 (for -12dB/oct).

13 | * 14 | *

{@link #ALC_DEFAULT_FILTER_ORDER DEFAULT_FILTER_ORDER} can also be used with {@link ALC10#alcGetIntegerv GetIntegerv} to find out the current default filter order.

15 | */ 16 | public final class EXTDefaultFilterOrder { 17 | 18 | /** {@code ALC_EXT_DEFAULT_FILTER_ORDER} tokens. */ 19 | public static final int ALC_DEFAULT_FILTER_ORDER = 0x1100; 20 | 21 | private EXTDefaultFilterOrder() {} 22 | 23 | } -------------------------------------------------------------------------------- /src/ru/m210projects/Build/desktop/audio/nopenal/EXTDouble.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright LWJGL. All rights reserved. 3 | * License terms: https://www.lwjgl.org/license 4 | * MACHINE GENERATED FILE, DO NOT EDIT 5 | */ 6 | package ru.m210projects.Build.desktop.audio.nopenal; 7 | 8 | /** Native bindings to the {@code AL_EXT_DOUBLE} extension. */ 9 | public final class EXTDouble { 10 | 11 | /** Buffer formats. */ 12 | public static final int 13 | AL_FORMAT_MONO_DOUBLE_EXT = 0x10012, 14 | AL_FORMAT_STEREO_DOUBLE_EXT = 0x10013; 15 | 16 | private EXTDouble() {} 17 | 18 | } -------------------------------------------------------------------------------- /src/ru/m210projects/Build/desktop/audio/nopenal/EXTExponentDistance.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright LWJGL. All rights reserved. 3 | * License terms: https://www.lwjgl.org/license 4 | * MACHINE GENERATED FILE, DO NOT EDIT 5 | */ 6 | package ru.m210projects.Build.desktop.audio.nopenal; 7 | 8 | /** 9 | * Native bindings to the {@code AL_EXT_EXPONENT_DISTANCE} extension. 10 | * 11 | *

An OpenAL 1.1 implementation will always support the {@code AL_EXT_EXPONENT_DISTANCE} extension. This allows an application written to the OpenAL 1.0 specification to 12 | * access the exponent distance abilities.

13 | */ 14 | public final class EXTExponentDistance { 15 | 16 | /** {@code AL_EXT_EXPONENT_DISTANCE} tokens. */ 17 | public static final int 18 | AL_EXPONENT_DISTANCE = 0xD005, 19 | AL_EXPONENT_DISTANCE_CLAMPED = 0xD006; 20 | 21 | private EXTExponentDistance() {} 22 | 23 | } -------------------------------------------------------------------------------- /src/ru/m210projects/Build/desktop/audio/nopenal/EXTFloat32.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright LWJGL. All rights reserved. 3 | * License terms: https://www.lwjgl.org/license 4 | * MACHINE GENERATED FILE, DO NOT EDIT 5 | */ 6 | package ru.m210projects.Build.desktop.audio.nopenal; 7 | 8 | /** Native bindings to the {@code AL_EXT_FLOAT32} extension. */ 9 | public final class EXTFloat32 { 10 | 11 | /** Buffer formats. */ 12 | public static final int 13 | AL_FORMAT_MONO_FLOAT32 = 0x10010, 14 | AL_FORMAT_STEREO_FLOAT32 = 0x10011; 15 | 16 | private EXTFloat32() {} 17 | 18 | } -------------------------------------------------------------------------------- /src/ru/m210projects/Build/desktop/audio/nopenal/EXTIma4.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright LWJGL. All rights reserved. 3 | * License terms: https://www.lwjgl.org/license 4 | * MACHINE GENERATED FILE, DO NOT EDIT 5 | */ 6 | package ru.m210projects.Build.desktop.audio.nopenal; 7 | 8 | /** Native bindings to the {@code AL_EXT_IMA4} extension. */ 9 | public final class EXTIma4 { 10 | 11 | /** Buffer formats. */ 12 | public static final int 13 | AL_FORMAT_MONO_IMA4 = 0x1300, 14 | AL_FORMAT_STEREO_IMA4 = 0x1301; 15 | 16 | private EXTIma4() {} 17 | 18 | } -------------------------------------------------------------------------------- /src/ru/m210projects/Build/desktop/audio/nopenal/EXTLinearDistance.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright LWJGL. All rights reserved. 3 | * License terms: https://www.lwjgl.org/license 4 | * MACHINE GENERATED FILE, DO NOT EDIT 5 | */ 6 | package ru.m210projects.Build.desktop.audio.nopenal; 7 | 8 | /** 9 | * Native bindings to the {@code AL_EXT_LINEAR_DISTANCE} extension. 10 | * 11 | *

An OpenAL 1.1 implementation will always support the {@code AL_EXT_LINEAR_DISTANCE} extension. This allows an application written to the OpenAL 1.0 specification to 12 | * access the offset abilities.

13 | */ 14 | public final class EXTLinearDistance { 15 | 16 | /** {@code AL_EXT_LINEAR_DISTANCE} tokens. */ 17 | public static final int 18 | AL_LINEAR_DISTANCE = 0xD003, 19 | AL_LINEAR_DISTANCE_CLAMPED = 0xD004; 20 | 21 | private EXTLinearDistance() {} 22 | 23 | } -------------------------------------------------------------------------------- /src/ru/m210projects/Build/desktop/audio/nopenal/EXTMCFormats.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright LWJGL. All rights reserved. 3 | * License terms: https://www.lwjgl.org/license 4 | * MACHINE GENERATED FILE, DO NOT EDIT 5 | */ 6 | package ru.m210projects.Build.desktop.audio.nopenal; 7 | 8 | /** Native bindings to the {@code AL_EXT_MCFORMATS} extension. */ 9 | public final class EXTMCFormats { 10 | 11 | /** Buffer formats. */ 12 | public static final int 13 | AL_FORMAT_QUAD8 = 0x1204, 14 | AL_FORMAT_QUAD16 = 0x1205, 15 | AL_FORMAT_QUAD32 = 0x1206, 16 | AL_FORMAT_REAR8 = 0x1207, 17 | AL_FORMAT_REAR16 = 0x1208, 18 | AL_FORMAT_REAR32 = 0x1209, 19 | AL_FORMAT_51CHN8 = 0x120A, 20 | AL_FORMAT_51CHN16 = 0x120B, 21 | AL_FORMAT_51CHN32 = 0x120C, 22 | AL_FORMAT_61CHN8 = 0x120D, 23 | AL_FORMAT_61CHN16 = 0x120E, 24 | AL_FORMAT_61CHN32 = 0x120F, 25 | AL_FORMAT_71CHN8 = 0x1210, 26 | AL_FORMAT_71CHN16 = 0x1211, 27 | AL_FORMAT_71CHN32 = 0x1212; 28 | 29 | private EXTMCFormats() {} 30 | 31 | } -------------------------------------------------------------------------------- /src/ru/m210projects/Build/desktop/audio/nopenal/EXTMulaw.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright LWJGL. All rights reserved. 3 | * License terms: https://www.lwjgl.org/license 4 | * MACHINE GENERATED FILE, DO NOT EDIT 5 | */ 6 | package ru.m210projects.Build.desktop.audio.nopenal; 7 | 8 | /** Native bindings to the {@code AL_EXT_MULAW} extension. */ 9 | public final class EXTMulaw { 10 | 11 | /** Buffer formats. */ 12 | public static final int 13 | AL_FORMAT_MONO_MULAW_EXT = 0x10014, 14 | AL_FORMAT_STEREO_MULAW_EXT = 0x10015; 15 | 16 | private EXTMulaw() {} 17 | 18 | } -------------------------------------------------------------------------------- /src/ru/m210projects/Build/desktop/audio/nopenal/EXTMulawBFormat.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright LWJGL. All rights reserved. 3 | * License terms: https://www.lwjgl.org/license 4 | * MACHINE GENERATED FILE, DO NOT EDIT 5 | */ 6 | package ru.m210projects.Build.desktop.audio.nopenal; 7 | 8 | /** 9 | * Native bindings to the {@code AL_EXT_MULAW_BFORMAT} extension. 10 | * 11 | *

This extension implies two MULAW formats are available, based on 2D and 3D Ambisonic B-Format.

12 | * 13 | *

See {@link EXTBFormat EXT_BFORMAT} for a discussion of the channel numberings and meanings.

14 | */ 15 | public final class EXTMulawBFormat { 16 | 17 | /** Buffer formats. */ 18 | public static final int 19 | AL_FORMAT_BFORMAT2D_MULAW = 0x10031, 20 | AL_FORMAT_BFORMAT3D_MULAW = 0x10032; 21 | 22 | private EXTMulawBFormat() {} 23 | 24 | } -------------------------------------------------------------------------------- /src/ru/m210projects/Build/desktop/audio/nopenal/EXTMulawMCFormats.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright LWJGL. All rights reserved. 3 | * License terms: https://www.lwjgl.org/license 4 | * MACHINE GENERATED FILE, DO NOT EDIT 5 | */ 6 | package ru.m210projects.Build.desktop.audio.nopenal; 7 | 8 | /** Native bindings to the {@code AL_EXT_MULAW_MCFORMATS} extension. */ 9 | public final class EXTMulawMCFormats { 10 | 11 | /** Buffer formats. */ 12 | public static final int 13 | AL_FORMAT_MONO_MULAW = 0x10014, 14 | AL_FORMAT_STEREO_MULAW = 0x10015, 15 | AL_FORMAT_QUAD_MULAW = 0x10021, 16 | AL_FORMAT_REAR_MULAW = 0x10022, 17 | AL_FORMAT_51CHN_MULAW = 0x10023, 18 | AL_FORMAT_61CHN_MULAW = 0x10024, 19 | AL_FORMAT_71CHN_MULAW = 0x10025; 20 | 21 | private EXTMulawMCFormats() {} 22 | 23 | } -------------------------------------------------------------------------------- /src/ru/m210projects/Build/desktop/audio/nopenal/EXTOffset.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright LWJGL. All rights reserved. 3 | * License terms: https://www.lwjgl.org/license 4 | * MACHINE GENERATED FILE, DO NOT EDIT 5 | */ 6 | package ru.m210projects.Build.desktop.audio.nopenal; 7 | 8 | /** 9 | * Native bindings to the {@code AL_EXT_OFFSET} extension. 10 | * 11 | *

An OpenAL 1.1 implementation will always support the {@code AL_EXT_OFFSET} extension. This allows an application written to the OpenAL 1.0 specification to 12 | * access the offset abilities.

13 | */ 14 | public final class EXTOffset { 15 | 16 | /** {@code AL_EXT_OFFSET} tokens. */ 17 | public static final int 18 | AL_SEC_OFFSET = 0x1024, 19 | AL_SAMPLE_OFFSET = 0x1025, 20 | AL_BYTE_OFFSET = 0x1026; 21 | 22 | private EXTOffset() {} 23 | 24 | } -------------------------------------------------------------------------------- /src/ru/m210projects/Build/desktop/audio/nopenal/EXTSourceDistanceModel.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright LWJGL. All rights reserved. 3 | * License terms: https://www.lwjgl.org/license 4 | * MACHINE GENERATED FILE, DO NOT EDIT 5 | */ 6 | package ru.m210projects.Build.desktop.audio.nopenal; 7 | 8 | /** 9 | * Native bindings to the EXT_source_distance_model extension. 10 | * 11 | *

This extension allows each source to specify a distance model, instead of being restricted to one distance model for every source in the context. It 12 | * provides a mechanism for applications to apply different models to each source, without the burden of manually applying the attenuation through the 13 | * source gain.

14 | */ 15 | public final class EXTSourceDistanceModel { 16 | 17 | /** Accepted by the {@code target} parameter of {@link AL10#alEnable Enable}, {@link AL10#alDisable Disable}, and {@link AL10#alIsEnabled IsEnabled}. */ 18 | public static final int AL_SOURCE_DISTANCE_MODEL = 0x200; 19 | 20 | private EXTSourceDistanceModel() {} 21 | 22 | } -------------------------------------------------------------------------------- /src/ru/m210projects/Build/desktop/audio/nopenal/EXTSourceRadius.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright LWJGL. All rights reserved. 3 | * License terms: https://www.lwjgl.org/license 4 | * MACHINE GENERATED FILE, DO NOT EDIT 5 | */ 6 | package ru.m210projects.Build.desktop.audio.nopenal; 7 | 8 | /** 9 | * Native bindings to the {@code AL_EXT_SOURCE_RADIUS} extension. 10 | * 11 | *

This extension allows any mono source to be changed to be a "large" source with a radius. The source has a raised cosine shape.

12 | */ 13 | public final class EXTSourceRadius { 14 | 15 | /** 16 | * Can be used with {@link AL10#alSourcef Sourcef} to set the source radius. Units are consistent with the coordinate system in use. The value must be at least zero. Use 17 | * a value of zero to reset to a point source. 18 | */ 19 | public static final int AL_SOURCE_RADIUS = 0x1031; 20 | 21 | private EXTSourceRadius() {} 22 | 23 | } -------------------------------------------------------------------------------- /src/ru/m210projects/Build/desktop/audio/nopenal/EXTStereoAngles.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright LWJGL. All rights reserved. 3 | * License terms: https://www.lwjgl.org/license 4 | * MACHINE GENERATED FILE, DO NOT EDIT 5 | */ 6 | package ru.m210projects.Build.desktop.audio.nopenal; 7 | 8 | /** 9 | * Native bindings to the {@code AL_EXT_STEREO_ANGLES} extension. 10 | * 11 | *

This extension allows any stereo source to be "steered" by setting the angles at which the left and right channels should play.

12 | */ 13 | public final class EXTStereoAngles { 14 | 15 | /** 16 | * Can be used with {@link AL10#alSourcefv Sourcefv} and two angles. The angles are specified anticlockwise relative to the real front, so a normal 60degree front stage is 17 | * specified with {@code alSourcefv(sid,AL_STEREO_ANGLES,+M_PI/6,-M_PI/6)}. 18 | * 19 | *

Angles are always specified in radians, anticlockwise relative to the real front ({@link AL10#AL_SOURCE_RELATIVE SOURCE_RELATIVE} is not supported).

20 | */ 21 | public static final int AL_STEREO_ANGLES = 0x1030; 22 | 23 | private EXTStereoAngles() {} 24 | 25 | } -------------------------------------------------------------------------------- /src/ru/m210projects/Build/desktop/audio/nopenal/EXTVorbis.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright LWJGL. All rights reserved. 3 | * License terms: https://www.lwjgl.org/license 4 | * MACHINE GENERATED FILE, DO NOT EDIT 5 | */ 6 | package ru.m210projects.Build.desktop.audio.nopenal; 7 | 8 | /** Native bindings to the {@code AL_EXT_vorbis} extension. */ 9 | public final class EXTVorbis { 10 | 11 | /** {@code AL_EXT_vorbis} tokens. */ 12 | public static final int AL_FORMAT_VORBIS_EXT = 0x10003; 13 | 14 | private EXTVorbis() {} 15 | 16 | } -------------------------------------------------------------------------------- /src/ru/m210projects/Build/desktop/audio/nopenal/LOKIAudioChannel.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright LWJGL. All rights reserved. 3 | * License terms: https://www.lwjgl.org/license 4 | * MACHINE GENERATED FILE, DO NOT EDIT 5 | */ 6 | package ru.m210projects.Build.desktop.audio.nopenal; 7 | 8 | /** Native bindings to the {@code ALC_LOKI_audio_channel} extension. */ 9 | public final class LOKIAudioChannel { 10 | 11 | /** {@code ALC_LOKI_audio_channel} tokens. */ 12 | public static final int 13 | ALC_CHAN_MAIN_LOKI = 0x500001, 14 | ALC_CHAN_PCM_LOKI = 0x500002, 15 | ALC_CHAN_CD_LOKI = 0x500003; 16 | 17 | private LOKIAudioChannel() {} 18 | 19 | } -------------------------------------------------------------------------------- /src/ru/m210projects/Build/desktop/audio/nopenal/LOKIIMAADPCM.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright LWJGL. All rights reserved. 3 | * License terms: https://www.lwjgl.org/license 4 | * MACHINE GENERATED FILE, DO NOT EDIT 5 | */ 6 | package ru.m210projects.Build.desktop.audio.nopenal; 7 | 8 | /** Native bindings to the {@code AL_LOKI_IMA_ADPCM} extension. */ 9 | public final class LOKIIMAADPCM { 10 | 11 | /** Buffer formats. */ 12 | public static final int 13 | AL_FORMAT_IMA_ADPCM_MONO16_EXT = 0x10000, 14 | AL_FORMAT_IMA_ADPCM_STEREO16_EXT = 0x10001; 15 | 16 | private LOKIIMAADPCM() {} 17 | 18 | } -------------------------------------------------------------------------------- /src/ru/m210projects/Build/desktop/audio/nopenal/LOKIQuadriphonic.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright LWJGL. All rights reserved. 3 | * License terms: https://www.lwjgl.org/license 4 | * MACHINE GENERATED FILE, DO NOT EDIT 5 | */ 6 | package ru.m210projects.Build.desktop.audio.nopenal; 7 | 8 | /** Native bindings to the {@code AL_LOKI_quadriphonic} extension. */ 9 | public final class LOKIQuadriphonic { 10 | 11 | /** Buffer formats. */ 12 | public static final int 13 | AL_FORMAT_QUAD8_LOKI = 0x10004, 14 | AL_FORMAT_QUAD16_LOKI = 0x10005; 15 | 16 | private LOKIQuadriphonic() {} 17 | 18 | } -------------------------------------------------------------------------------- /src/ru/m210projects/Build/desktop/audio/nopenal/LOKIWAVEFormat.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright LWJGL. All rights reserved. 3 | * License terms: https://www.lwjgl.org/license 4 | * MACHINE GENERATED FILE, DO NOT EDIT 5 | */ 6 | package ru.m210projects.Build.desktop.audio.nopenal; 7 | 8 | /** Native bindings to the {@code AL_LOKI_WAVE_format} extension. */ 9 | public final class LOKIWAVEFormat { 10 | 11 | /** Buffer formats. */ 12 | public static final int AL_FORMAT_WAVE_EXT = 0x10002; 13 | 14 | private LOKIWAVEFormat() {} 15 | 16 | } -------------------------------------------------------------------------------- /src/ru/m210projects/Build/desktop/audio/nopenal/SOFTBlockAlignment.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright LWJGL. All rights reserved. 3 | * License terms: https://www.lwjgl.org/license 4 | * MACHINE GENERATED FILE, DO NOT EDIT 5 | */ 6 | package ru.m210projects.Build.desktop.audio.nopenal; 7 | 8 | /** 9 | * Native bindings to the SOFT_block_alignment extension. 10 | * 11 | *

This extension provides a mechanism for specifying block alignment properties for sample data. This is useful for, though not strictly limited to, 12 | * ADPCM compression where the block alignment is specified in the media file header instead of the data stream, and controls the decoding process.

13 | */ 14 | public final class SOFTBlockAlignment { 15 | 16 | /** Accepted by the {@code paramName} parameter of {@link AL11#alBufferi Bufferi}, {@link AL11#alBufferiv Bufferiv}, {@link AL10#alGetBufferi GetBufferi}, and {@link AL11#alGetBufferiv GetBufferiv}. */ 17 | public static final int 18 | AL_UNPACK_BLOCK_ALIGNMENT_SOFT = 0x200C, 19 | AL_PACK_BLOCK_ALIGNMENT_SOFT = 0x200D; 20 | 21 | private SOFTBlockAlignment() {} 22 | 23 | } -------------------------------------------------------------------------------- /src/ru/m210projects/Build/desktop/audio/nopenal/SOFTLoopPoints.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright LWJGL. All rights reserved. 3 | * License terms: https://www.lwjgl.org/license 4 | * MACHINE GENERATED FILE, DO NOT EDIT 5 | */ 6 | package ru.m210projects.Build.desktop.audio.nopenal; 7 | 8 | /** 9 | * Native bindings to the SOFT_loop_points extension. 10 | * 11 | *

This extension allows an application to specify the offsets at which a buffer loops. Unextended OpenAL only allows for a source to loop a whole buffer, 12 | * or all buffers of a queue, which is not desirable for sounds that may want a lead-in or lead-out along with the looping portion.

13 | */ 14 | public final class SOFTLoopPoints { 15 | 16 | /** Accepted by the {@code paramName} parameter of {@link AL11#alBufferiv Bufferiv} and {@link AL11#alGetBufferiv GetBufferiv}. */ 17 | public static final int AL_LOOP_POINTS_SOFT = 0x2015; 18 | 19 | private SOFTLoopPoints() {} 20 | 21 | } -------------------------------------------------------------------------------- /src/ru/m210projects/Build/desktop/audio/nopenal/SOFTMSADPCM.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright LWJGL. All rights reserved. 3 | * License terms: https://www.lwjgl.org/license 4 | * MACHINE GENERATED FILE, DO NOT EDIT 5 | */ 6 | package ru.m210projects.Build.desktop.audio.nopenal; 7 | 8 | /** 9 | * Native bindings to the SOFT_MSADPCM extension. 10 | * 11 | *

This extension adds support for MSADPCM compressed sample formats.

12 | */ 13 | public final class SOFTMSADPCM { 14 | 15 | /** Accepted by the {@code format} parameter of {@link AL10#alBufferData BufferData}. */ 16 | public static final int 17 | AL_FORMAT_MONO_MSADPCM_SOFT = 0x1302, 18 | AL_FORMAT_STEREO_MSADPCM_SOFT = 0x1303; 19 | 20 | private SOFTMSADPCM() {} 21 | 22 | } -------------------------------------------------------------------------------- /src/ru/m210projects/Build/desktop/audio/nopenal/SOFTOutputLimiter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright LWJGL. All rights reserved. 3 | * License terms: https://www.lwjgl.org/license 4 | * MACHINE GENERATED FILE, DO NOT EDIT 5 | */ 6 | package ru.m210projects.Build.desktop.audio.nopenal; 7 | 8 | /** 9 | * Native bindings to the SOFT_output_limiter extension. 10 | * 11 | *

This extension allows an application to control OpenAL Soft's output limiter. OpenAL Soft 1.18 adds an output limiter to prevent excessive clipping on 12 | * the output, and this extension allows applications to turn it off or on.

13 | */ 14 | public final class SOFTOutputLimiter { 15 | 16 | /** Accepted as part of the {@code attrList} parameter of {@link ALC10#alcCreateContext CreateContext} and {@link SOFTHRTF#alcResetDeviceSOFT ResetDeviceSOFT}, and as the {@code paramName} parameter of {@link AL10#alGetIntegerv GetIntegerv}. */ 17 | public static final int ALC_OUTPUT_LIMITER_SOFT = 0x199A; 18 | 19 | private SOFTOutputLimiter() {} 20 | 21 | } -------------------------------------------------------------------------------- /src/ru/m210projects/BuildSmacker/Frame.java: -------------------------------------------------------------------------------- 1 | // This file is part of BuildSmacker. 2 | // Copyright (C) 2020 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // BuildSmacker is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // BuildSmacker is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with BuildSmacker. If not, see . 16 | 17 | package ru.m210projects.BuildSmacker; 18 | 19 | import java.nio.ByteBuffer; 20 | 21 | public class Frame { 22 | 23 | public ByteBuffer buf; 24 | public int size; 25 | public byte flags; 26 | 27 | public Frame(int size) 28 | { 29 | this.size = size; 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /src/ru/m210projects/Duke3D/Factory/DukeSoftware.java: -------------------------------------------------------------------------------- 1 | // This file is part of DukeGDX. 2 | // Copyright (C) 2019 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // DukeGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // DukeGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with DukeGDX. If not, see . 16 | 17 | package ru.m210projects.Duke3D.Factory; 18 | 19 | import ru.m210projects.Build.Engine; 20 | import ru.m210projects.Build.Render.Software.Software; 21 | 22 | public class DukeSoftware extends Software { 23 | 24 | public DukeSoftware(Engine engine) { 25 | super(engine, new DukeMapSettings()); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/ru/m210projects/Duke3D/Types/Animwalltype.java: -------------------------------------------------------------------------------- 1 | // This file is part of DukeGDX. 2 | // Copyright (C) 2019 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // DukeGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // DukeGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with DukeGDX. If not, see . 16 | 17 | package ru.m210projects.Duke3D.Types; 18 | 19 | public class Animwalltype { 20 | public short wallnum; 21 | public int tag; 22 | } 23 | -------------------------------------------------------------------------------- /src/ru/m210projects/Duke3D/Types/LumpInfo.java: -------------------------------------------------------------------------------- 1 | // This file is part of DukeGDX. 2 | // Copyright (C) 2019 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // DukeGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // DukeGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with DukeGDX. If not, see . 16 | 17 | package ru.m210projects.Duke3D.Types; 18 | 19 | import ru.m210projects.Build.FileHandle.Resource; 20 | 21 | public class LumpInfo { 22 | 23 | public String name; 24 | public Resource handle; 25 | public int position, size; 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/ru/m210projects/Duke3D/Types/Sample.java: -------------------------------------------------------------------------------- 1 | // This file is part of DukeGDX. 2 | // Copyright (C) 2019 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // DukeGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // DukeGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with DukeGDX. If not, see . 16 | 17 | package ru.m210projects.Duke3D.Types; 18 | 19 | import java.nio.ByteBuffer; 20 | 21 | public class Sample { 22 | public ByteBuffer ptr; 23 | public int lock; 24 | public int length, num; 25 | 26 | public int bits, rate; 27 | } 28 | -------------------------------------------------------------------------------- /src/ru/m210projects/Duke3D/Types/SoundOwner.java: -------------------------------------------------------------------------------- 1 | // This file is part of DukeGDX. 2 | // Copyright (C) 2019 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // DukeGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // DukeGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with DukeGDX. If not, see . 16 | 17 | package ru.m210projects.Duke3D.Types; 18 | 19 | import ru.m210projects.Build.Audio.Source; 20 | 21 | public class SoundOwner { 22 | public int i; 23 | public Source voice; 24 | } 25 | -------------------------------------------------------------------------------- /src/ru/m210projects/LSP/Factory/LSPSoftware.java: -------------------------------------------------------------------------------- 1 | // This file is part of LSPGDX. 2 | // Copyright (C) 2020 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // LSPGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // LSPGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with LSPGDX. If not, see . 16 | 17 | package ru.m210projects.LSP.Factory; 18 | 19 | import ru.m210projects.Build.Engine; 20 | import ru.m210projects.Build.Render.Software.Software; 21 | 22 | public class LSPSoftware extends Software { 23 | 24 | public LSPSoftware(Engine engine) { 25 | super(engine, new LSPMapSettings()); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/ru/m210projects/LSP/GdxResources.java: -------------------------------------------------------------------------------- 1 | // This file is part of LSPGDX. 2 | // Copyright (C) 2020 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // LSPGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // LSPGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with LSPGDX. If not, see . 16 | 17 | package ru.m210projects.LSP; 18 | 19 | public class GdxResources { 20 | 21 | public static final int BACKBUTTON = 9216; 22 | public static final int BACKSCALE = 16384; 23 | public static final int MOUSECURSOR = 9217; 24 | public static final int RESERVED1 = 9218; 25 | public static final int RESERVED2 = 9219; 26 | 27 | public static final int LOGO = 9220; 28 | public static final int MENUFONT = 9221; 29 | 30 | public static final String appdef = "lspgdx.def"; 31 | } 32 | -------------------------------------------------------------------------------- /src/ru/m210projects/Launcher/desktop/CheckFiles.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Launcher.desktop; 2 | 3 | public class CheckFiles { 4 | private boolean value; 5 | private String label; 6 | 7 | public CheckFiles(boolean value, String label) { 8 | this.value = value; 9 | this.label = label; 10 | } 11 | 12 | public boolean getValue() { 13 | return this.value; 14 | } 15 | 16 | public String getLabel() { 17 | return this.label; 18 | } 19 | } -------------------------------------------------------------------------------- /src/ru/m210projects/Launcher/desktop/ComboItem.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Launcher.desktop; 2 | 3 | public class ComboItem { 4 | private String value; 5 | private String label; 6 | 7 | public ComboItem(String value, String label) { 8 | this.value = value; 9 | this.label = label; 10 | } 11 | 12 | public String getValue() { 13 | return this.value; 14 | } 15 | 16 | public String getLabel() { 17 | return this.label; 18 | } 19 | 20 | @Override 21 | public String toString() { 22 | return label; 23 | } 24 | } -------------------------------------------------------------------------------- /src/ru/m210projects/Launcher/desktop/GameEntries/DisabledEntry.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Launcher.desktop.GameEntries; 2 | 3 | import ru.m210projects.Build.Pattern.BuildGame; 4 | import ru.m210projects.Build.Settings.BuildConfig; 5 | 6 | public abstract class DisabledEntry extends GameEntry { 7 | 8 | public DisabledEntry(String appname) { 9 | super(appname, "v0.0"); 10 | } 11 | 12 | @Override 13 | public ResFile[] getResourceFiles() { 14 | ResFile[] resources = { 15 | new ResFile("") 16 | }; 17 | return resources; 18 | } 19 | 20 | @Override 21 | public String[] getIcons() { 22 | return null; 23 | } 24 | 25 | @Override 26 | public BuildConfig buildConfig(String path) { 27 | return null; 28 | } 29 | 30 | @Override 31 | public BuildGame getGame(String[] args) { 32 | return null; 33 | } 34 | 35 | @Override 36 | public void startGame(String gamePath) { 37 | 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /src/ru/m210projects/Launcher/desktop/GameEntries/ResFile.java: -------------------------------------------------------------------------------- 1 | //This file is part of BuildGDX. 2 | //Copyright (C) 2017-2019 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | //BuildGDX is free software: you can redistribute it and/or modify 5 | //it under the terms of the GNU General Public License as published by 6 | //the Free Software Foundation, either version 3 of the License, or 7 | //(at your option) any later version. 8 | // 9 | //BuildGDX is distributed in the hope that it will be useful, 10 | //but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | //MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | //GNU General Public License for more details. 13 | // 14 | //You should have received a copy of the GNU General Public License 15 | //along with BuildGDX. If not, see . 16 | 17 | package ru.m210projects.Launcher.desktop.GameEntries; 18 | 19 | public class ResFile { 20 | 21 | public int checksum = -1; 22 | public long date = -1; //file.lastModified() 23 | public String name; 24 | 25 | public ResFile(String name) 26 | { 27 | this.name = name; 28 | } 29 | 30 | public ResFile(String name, long date, int checksum) 31 | { 32 | this.name = name; 33 | this.date = date; 34 | this.checksum = checksum; 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /src/ru/m210projects/Launcher/desktop/PopupActionListener.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Launcher.desktop; 2 | 3 | import java.awt.event.ActionEvent; 4 | import java.awt.event.ActionListener; 5 | 6 | import javax.swing.event.PopupMenuEvent; 7 | import javax.swing.event.PopupMenuListener; 8 | 9 | class PopupActionListener implements ActionListener { 10 | public void actionPerformed(ActionEvent actionEvent) { 11 | System.out.println("Selected: " + actionEvent.getActionCommand()); 12 | } 13 | } 14 | 15 | class MyPopupMenuListener implements PopupMenuListener { 16 | public void popupMenuCanceled(PopupMenuEvent popupMenuEvent) { 17 | System.out.println("Canceled"); 18 | } 19 | 20 | public void popupMenuWillBecomeInvisible(PopupMenuEvent popupMenuEvent) { 21 | System.out.println("Becoming Invisible"); 22 | } 23 | 24 | public void popupMenuWillBecomeVisible(PopupMenuEvent popupMenuEvent) { 25 | System.out.println("Becoming Visible"); 26 | } 27 | } -------------------------------------------------------------------------------- /src/ru/m210projects/Powerslave/Factory/PSSoftware.java: -------------------------------------------------------------------------------- 1 | // This file is part of PowerslaveGDX. 2 | // Copyright (C) 2019 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // PowerslaveGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // PowerslaveGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with PowerslaveGDX. If not, see . 16 | 17 | package ru.m210projects.Powerslave.Factory; 18 | 19 | import ru.m210projects.Build.Engine; 20 | import ru.m210projects.Build.Render.Software.Software; 21 | 22 | public class PSSoftware extends Software { 23 | 24 | public PSSoftware(Engine engine) { 25 | super(engine, new PSMapSettings()); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/ru/m210projects/Powerslave/Type/FuncProc.java: -------------------------------------------------------------------------------- 1 | // This file is part of PowerslaveGDX. 2 | // Copyright (C) 2019 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // PowerslaveGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // PowerslaveGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with PowerslaveGDX. If not, see . 16 | package ru.m210projects.Powerslave.Type; 17 | 18 | public interface FuncProc { 19 | 20 | public void run(int a1, int a2, int RunPtr); 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/ru/m210projects/Powerslave/Type/ItemAnimStruct.java: -------------------------------------------------------------------------------- 1 | // This file is part of PowerslaveGDX. 2 | // Copyright (C) 2019 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // PowerslaveGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // PowerslaveGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with PowerslaveGDX. If not, see . 16 | 17 | package ru.m210projects.Powerslave.Type; 18 | 19 | public class ItemAnimStruct { 20 | public short field_0; 21 | public short field_2; 22 | 23 | public ItemAnimStruct(int field_0, int field_2) 24 | { 25 | this.field_0 = (short) field_0; 26 | this.field_2 = (short) field_2; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/ru/m210projects/Powerslave/Type/PlayerSave.java: -------------------------------------------------------------------------------- 1 | // This file is part of PowerslaveGDX. 2 | // Copyright (C) 2019 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // PowerslaveGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // PowerslaveGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with PowerslaveGDX. If not, see . 16 | 17 | package ru.m210projects.Powerslave.Type; 18 | 19 | public class PlayerSave { 20 | public int x, y, z; 21 | public short sect, ang; 22 | } 23 | -------------------------------------------------------------------------------- /src/ru/m210projects/Redneck/Factory/RRSoftware.java: -------------------------------------------------------------------------------- 1 | // This file is part of DukeGDX. 2 | // Copyright (C) 2019 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // DukeGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // DukeGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with DukeGDX. If not, see . 16 | 17 | package ru.m210projects.Redneck.Factory; 18 | 19 | import ru.m210projects.Build.Engine; 20 | import ru.m210projects.Build.Render.Software.Software; 21 | 22 | public class RRSoftware extends Software { 23 | 24 | public RRSoftware(Engine engine) { 25 | super(engine, new RRMapSettings()); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/ru/m210projects/Redneck/Types/Animwalltype.java: -------------------------------------------------------------------------------- 1 | // This file is part of RedneckGDX. 2 | // Copyright (C) 2017-2018 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // RedneckGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // RedneckGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with RedneckGDX. If not, see . 16 | 17 | package ru.m210projects.Redneck.Types; 18 | 19 | public class Animwalltype { 20 | public short wallnum; 21 | public int tag; 22 | } 23 | -------------------------------------------------------------------------------- /src/ru/m210projects/Redneck/Types/LumpInfo.java: -------------------------------------------------------------------------------- 1 | // This file is part of RedneckGDX. 2 | // Copyright (C) 2017-2018 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // RedneckGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // RedneckGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with RedneckGDX. If not, see . 16 | 17 | package ru.m210projects.Redneck.Types; 18 | 19 | import ru.m210projects.Build.FileHandle.Resource; 20 | 21 | public class LumpInfo { 22 | 23 | public String name; 24 | public int position, size; 25 | public Resource handle; 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/ru/m210projects/Redneck/Types/Sample.java: -------------------------------------------------------------------------------- 1 | // This file is part of RedneckGDX 2 | // Copyright (C) 2017-2018 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // RedneckGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // RedneckGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with RedneckGDX. If not, see . 16 | 17 | package ru.m210projects.Redneck.Types; 18 | 19 | import java.nio.ByteBuffer; 20 | 21 | public class Sample { 22 | public ByteBuffer ptr; 23 | public int lock; 24 | public int length, num; 25 | 26 | public int bits, rate; 27 | } 28 | -------------------------------------------------------------------------------- /src/ru/m210projects/Redneck/Types/SoundOwner.java: -------------------------------------------------------------------------------- 1 | // This file is part of RedneckGDX 2 | // Copyright (C) 2017-2018 Alexander Makarov-[M210] (m210-2007@mail.ru) 3 | // 4 | // RedneckGDX is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // RedneckGDX is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with RedneckGDX. If not, see . 16 | 17 | package ru.m210projects.Redneck.Types; 18 | 19 | import ru.m210projects.Build.Audio.Source; 20 | 21 | public class SoundOwner { 22 | public int i; 23 | public Source voice; 24 | } 25 | -------------------------------------------------------------------------------- /src/ru/m210projects/Tekwar/Factory/TekNetwork.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Tekwar.Factory; 2 | 3 | import ru.m210projects.Build.Pattern.BuildGame; 4 | import ru.m210projects.Build.Pattern.BuildNet; 5 | import ru.m210projects.Tekwar.Types.Input; 6 | 7 | public class TekNetwork extends BuildNet { 8 | 9 | public TekNetwork(BuildGame game) { 10 | super(game); 11 | } 12 | 13 | @Override 14 | public NetInput newInstance() { 15 | return new Input(); 16 | } 17 | 18 | @Override 19 | public int GetPackets(byte[] data, int ptr, int len, int nPlayer) { 20 | // TODO Auto-generated method stub 21 | return 0; 22 | } 23 | 24 | @Override 25 | public void UpdatePrediction(NetInput input) { 26 | // TODO Auto-generated method stub 27 | 28 | } 29 | 30 | @Override 31 | public void CalcChecksum() { 32 | // TODO Auto-generated method stub 33 | 34 | } 35 | 36 | @Override 37 | public void CorrectPrediction() { 38 | // TODO Auto-generated method stub 39 | 40 | } 41 | 42 | @Override 43 | public void ComputerInput(int i) { 44 | // TODO Auto-generated method stub 45 | 46 | } 47 | 48 | } 49 | -------------------------------------------------------------------------------- /src/ru/m210projects/Tekwar/Menus/MenuAbort.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Tekwar.Menus; 2 | 3 | import ru.m210projects.Build.Pattern.BuildGame; 4 | import ru.m210projects.Build.Pattern.MenuItems.BuildMenu; 5 | import ru.m210projects.Build.Pattern.MenuItems.MenuHandler; 6 | import ru.m210projects.Build.Pattern.MenuItems.MenuText; 7 | import ru.m210projects.Build.Pattern.MenuItems.MenuVariants; 8 | 9 | import static ru.m210projects.Tekwar.Tekmap.*; 10 | 11 | public class MenuAbort extends BuildMenu { 12 | 13 | public MenuAbort(final BuildGame game) 14 | { 15 | MenuText QuitQuestion = new MenuText("Abort mission?", game.getFont(0), 160, 50, 1); 16 | QuitQuestion.pal = 3; 17 | MenuVariants QuitVariants = new MenuVariants(game.pEngine, "[Y/N]", game.getFont(0), 160, 60) { 18 | @Override 19 | public void positive(MenuHandler menu) { 20 | gameover = 1; 21 | game.pInput.ctrlResetKeyStatus(); 22 | menu.mClose(); 23 | } 24 | }; 25 | QuitVariants.pal = 3; 26 | 27 | addItem(QuitQuestion, false); 28 | addItem(QuitVariants, true); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/ru/m210projects/Tekwar/Menus/MenuQuit.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Tekwar.Menus; 2 | 3 | import static ru.m210projects.Tekwar.Main.*; 4 | import ru.m210projects.Build.Pattern.BuildGame; 5 | import ru.m210projects.Build.Pattern.MenuItems.BuildMenu; 6 | import ru.m210projects.Build.Pattern.MenuItems.MenuHandler; 7 | import ru.m210projects.Build.Pattern.MenuItems.MenuText; 8 | import ru.m210projects.Build.Pattern.MenuItems.MenuTitle; 9 | import ru.m210projects.Build.Pattern.MenuItems.MenuVariants; 10 | 11 | public class MenuQuit extends BuildMenu { 12 | 13 | public MenuQuit(final BuildGame game) 14 | { 15 | MenuTitle QuitTitle = new MenuTitle(game.pEngine, "Quit game", game.getFont(0), 160, 15, -1); 16 | QuitTitle.pal = 3; 17 | MenuText QuitQuestion = new MenuText("Do you really want to quit?", game.getFont(0), 160, 50, 1); 18 | QuitQuestion.pal = 3; 19 | MenuVariants QuitVariants = new MenuVariants(game.pEngine, "[Y/N]", game.getFont(0), 160, 60) { 20 | @Override 21 | public void positive(MenuHandler menu) { 22 | game.changeScreen(gCreditsScreen); 23 | menu.mClose(); 24 | } 25 | }; 26 | QuitVariants.pal = 3; 27 | addItem(QuitTitle, false); 28 | addItem(QuitQuestion, false); 29 | addItem(QuitVariants, true); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/ru/m210projects/Tekwar/Menus/TekMenuMouse.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Tekwar.Menus; 2 | 3 | import ru.m210projects.Build.Pattern.BuildGame; 4 | import ru.m210projects.Build.Pattern.CommonMenus.MenuMouse; 5 | import ru.m210projects.Build.Pattern.MenuItems.MenuTitle; 6 | 7 | public class TekMenuMouse extends MenuMouse { 8 | 9 | public TekMenuMouse(BuildGame app) { 10 | super(app, 40, 20, 240, app.getFont(0).getHeight() + 4, app.getFont(0).getHeight(), app.getFont(0), 0); 11 | } 12 | 13 | @Override 14 | public MenuTitle getTitle(BuildGame app, String text) { 15 | MenuTitle title = new MenuTitle(app.pEngine, text, app.getFont(0), 160, 15, -1); 16 | title.pal = 3; 17 | 18 | return title; 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/ru/m210projects/Tekwar/Screens/LoadingScreen.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Tekwar.Screens; 2 | 3 | import static ru.m210projects.Build.Engine.xdim; 4 | import static ru.m210projects.Build.Engine.ydim; 5 | import static ru.m210projects.Tekwar.Names.BACKGROUND; 6 | 7 | import ru.m210projects.Build.Pattern.BuildFont.TextAlign; 8 | import ru.m210projects.Build.Pattern.BuildGame; 9 | import ru.m210projects.Build.Pattern.ScreenAdapters.LoadingAdapter; 10 | import ru.m210projects.Build.Types.Tile; 11 | 12 | public class LoadingScreen extends LoadingAdapter { 13 | 14 | public LoadingScreen(BuildGame game) { 15 | super(game); 16 | } 17 | 18 | @Override 19 | public void draw(String title, float delta) { 20 | Tile pic = engine.getTile(BACKGROUND); 21 | 22 | int frames = xdim / pic.getWidth(); 23 | int x = 160; 24 | for (int i = 0; i <= frames; i++) { 25 | engine.rotatesprite(x << 16, 100 << 16, 0x10000, 0, BACKGROUND, 0, 0, 2 + 8 + 256, 0, 0, xdim - 1, 26 | ydim - 1); 27 | x += pic.getWidth(); 28 | } 29 | 30 | game.getFont(0).drawText(160, 100, "Loading...".toCharArray(), 0, 0, TextAlign.Center, 0, false); 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /src/ru/m210projects/Tekwar/Types/ANIMATION.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Tekwar.Types; 2 | 3 | public class ANIMATION { 4 | 5 | public static final int WALLX = 1 << 0; 6 | public static final int WALLY = 1 << 1; 7 | public static final int FLOORZ = 1 << 2; 8 | public static final int CEILZ = 1 << 3; 9 | 10 | public Object ptr; 11 | public short id; 12 | public byte type; 13 | public int goal; 14 | public int vel; 15 | public int acc; 16 | 17 | public ANIMATION copy(ANIMATION src) 18 | { 19 | this.ptr = src.ptr; 20 | this.id = src.id; 21 | this.type = src.type; 22 | this.goal = src.goal; 23 | this.vel = src.vel; 24 | this.acc = src.acc; 25 | 26 | return this; 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/ru/m210projects/Tekwar/Types/Delayfunc.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Tekwar.Types; 2 | 3 | import java.nio.ByteBuffer; 4 | import java.nio.ByteOrder; 5 | 6 | import ru.m210projects.Build.FileHandle.Resource; 7 | 8 | public class Delayfunc { 9 | 10 | private static ByteBuffer buffer; 11 | public static final int sizeof = 8; 12 | 13 | public short func; 14 | public int tics; 15 | public short parm; 16 | 17 | public void set(Delayfunc src) { 18 | func = src.func; 19 | tics = src.tics; 20 | parm = src.parm; 21 | } 22 | 23 | public void load(Resource bb) { 24 | func = bb.readShort(); 25 | tics = bb.readInt(); 26 | parm = bb.readShort(); 27 | } 28 | 29 | public void set(int var) { 30 | func = (short) var; 31 | tics = var; 32 | parm = (short) var; 33 | } 34 | 35 | public byte[] getBytes() 36 | { 37 | if(buffer == null) { 38 | buffer = ByteBuffer.allocate(sizeof); 39 | buffer.order( ByteOrder.LITTLE_ENDIAN); 40 | } 41 | buffer.clear(); 42 | 43 | buffer.putShort(func); 44 | buffer.putInt(tics); 45 | buffer.putShort(parm); 46 | 47 | return buffer.array(); 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /src/ru/m210projects/Tekwar/Types/Demo.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Tekwar.Types; 2 | 3 | import static ru.m210projects.Build.Engine.*; 4 | 5 | 6 | public class Demo { 7 | 8 | public static boolean recstat; 9 | public static int reccnt; 10 | 11 | public static Input pDemoInput[][] = new Input[16384][MAXPLAYERS]; 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/ru/m210projects/Tekwar/Types/Elevatortype.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Tekwar.Types; 2 | 3 | import java.nio.ByteBuffer; 4 | import java.nio.ByteOrder; 5 | 6 | import ru.m210projects.Build.FileHandle.Resource; 7 | 8 | public class Elevatortype { 9 | 10 | private static ByteBuffer buffer; 11 | public static final byte sizeof = 8; 12 | 13 | public int hilevel; 14 | public int lolevel; 15 | 16 | public void reset() { 17 | hilevel = 0; 18 | lolevel = 0; 19 | } 20 | 21 | public void load(Resource bb) { 22 | hilevel = bb.readInt(); 23 | lolevel = bb.readInt(); 24 | } 25 | 26 | public byte[] getBytes() 27 | { 28 | if(buffer == null) { 29 | buffer = ByteBuffer.allocate(sizeof); 30 | buffer.order( ByteOrder.LITTLE_ENDIAN); 31 | } 32 | buffer.clear(); 33 | 34 | buffer.putInt(hilevel); 35 | buffer.putInt(lolevel); 36 | 37 | return buffer.array(); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /src/ru/m210projects/Tekwar/Types/Guntype.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Tekwar.Types; 2 | 3 | public class Guntype { 4 | public short pic; // gun frame when carrying weapon 5 | public short firepic; // 1st gun frame when firing weapon 6 | public short endfirepic; // last gun frame when firing weapon 7 | public byte rep; // 1=automatic weapon, 0=semi-automatic 8 | public byte[] action; // 8 frame action bytes - 1=shootgun() 9 | public byte pos; // position on screen 0=center, 1=left, 2=right 10 | public short tics; 11 | 12 | public Guntype(int pic, int firepic, int endfirepic, int rep, byte[] action, int pos, int tics) { 13 | this.pic = (short) pic; 14 | this.firepic = (short) firepic; 15 | this.endfirepic = (short) endfirepic; 16 | this.rep = (byte) rep; 17 | this.action = action; 18 | this.pos = (byte) pos; 19 | this.tics = (short) tics; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/ru/m210projects/Tekwar/Types/LSInfo.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Tekwar.Types; 2 | 3 | import ru.m210projects.Build.FileHandle.Resource; 4 | 5 | public class LSInfo { 6 | public int level; 7 | public int skill; 8 | public String info; 9 | public String date; 10 | 11 | public void read(Resource bb) 12 | { 13 | level = bb.readInt(); 14 | skill = bb.readInt(); 15 | update(); 16 | } 17 | 18 | public void update() 19 | { 20 | info = "Map:" + level + " / Skill:" + skill; 21 | } 22 | 23 | public void clear() 24 | { 25 | skill = 0; 26 | level = 0; 27 | info = "Empty slot"; 28 | date = null; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/ru/m210projects/Tekwar/Types/Songtype.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Tekwar.Types; 2 | 3 | import ru.m210projects.Build.Audio.MusicSource; 4 | 5 | public class Songtype { 6 | public MusicSource handle; 7 | // public int handle; 8 | public int offset; 9 | public byte[] buffer; 10 | public int length; 11 | } 12 | -------------------------------------------------------------------------------- /src/ru/m210projects/Tekwar/Types/Soundtype.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Tekwar.Types; 2 | 3 | import ru.m210projects.Build.Audio.Source; 4 | 5 | public class Soundtype { 6 | public Source hVoice; 7 | 8 | public int sndnum; 9 | public int x, y; 10 | public short type; 11 | public float loop; 12 | } 13 | -------------------------------------------------------------------------------- /src/ru/m210projects/Tekwar/Types/Startspottype.java: -------------------------------------------------------------------------------- 1 | 2 | package ru.m210projects.Tekwar.Types; 3 | 4 | public class Startspottype { 5 | public int x; 6 | public int y; 7 | public int z; 8 | public short sectnum; 9 | } 10 | -------------------------------------------------------------------------------- /src/ru/m210projects/Tekwar/Types/XTsavetype.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Tekwar.Types; 2 | 3 | import static ru.m210projects.Tekwar.Tekprep.spriteXT; 4 | 5 | import ru.m210projects.Build.FileHandle.Resource; 6 | 7 | public class XTsavetype { 8 | public static final int sizeof = 2 + SpriteXT.sizeof; 9 | public short XTnum; 10 | 11 | public boolean load(Resource data) { 12 | Short val = data.readShort(); 13 | if(val == null) return false; 14 | 15 | XTnum = val; 16 | spriteXT[XTnum].load(data); 17 | return true; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/ru/m210projects/Tekwar/Types/XTtrailertype.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Tekwar.Types; 2 | 3 | import ru.m210projects.Build.Types.LittleEndian; 4 | 5 | public class XTtrailertype { 6 | public static final int sizeof = 34; 7 | public int numXTs; //4 8 | public int start; //8 9 | public String mapname; //[13] 21 10 | public String ID; //[13] 34 11 | 12 | public void load(byte[] data) 13 | { 14 | numXTs = LittleEndian.getInt(data, 0); 15 | start = LittleEndian.getInt(data, 4); 16 | mapname = new String(data, 8, 13); 17 | ID = new String(data, 21, 13); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/ru/m210projects/Wang/Enemies/Decision.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Wang.Enemies; 2 | 3 | import ru.m210projects.Wang.Type.Animator; 4 | 5 | public class Decision { 6 | public short range; 7 | public Animator action; 8 | 9 | public Decision(int range, Animator action) 10 | { 11 | this.range = (short) range; 12 | this.action = action; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/ru/m210projects/Wang/Enemies/Personality.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Wang.Enemies; 2 | 3 | import ru.m210projects.Wang.Type.Saveable; 4 | 5 | public class Personality extends Saveable { 6 | 7 | public final Decision[] Battle; 8 | public final Decision[] Offense; 9 | public final Decision[] Broadcast; 10 | public final Decision[] Surprised; 11 | public final Decision[] Evasive; 12 | public final Decision[] LostTarget; 13 | public final Decision[] CloseRange; 14 | public final Decision[] TouchTarget; 15 | 16 | public Personality(Decision[] Battle, Decision[] Offense, Decision[] Broadcast, Decision[] Surprised, Decision[] Evasive, 17 | Decision[] LostTarget, Decision[] CloseRange, Decision[] TouchTarget) { 18 | this.Battle = Battle; 19 | this.Offense = Offense; 20 | this.Broadcast = Broadcast; 21 | this.Surprised = Surprised; 22 | this.Evasive = Evasive; 23 | this.LostTarget = LostTarget; 24 | this.CloseRange = CloseRange; 25 | this.TouchTarget = TouchTarget; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/ru/m210projects/Wang/Factory/WangInterpolation.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Wang.Factory; 2 | 3 | import ru.m210projects.Build.Pattern.Tools.Interpolation; 4 | import ru.m210projects.Build.Types.SPRITE; 5 | 6 | public abstract class WangInterpolation extends Interpolation { 7 | 8 | public abstract int getSkipValue(); 9 | 10 | public abstract int getSkipMax(); 11 | 12 | public void requestUpdating() { 13 | if(getSkipValue() != (getSkipMax() - 1)) return; 14 | requestUpdating = true; 15 | } 16 | 17 | @Override 18 | public void dospriteinterp(SPRITE tsp, int smoothratio) { 19 | smoothratio += getSkipValue() << 16; 20 | smoothratio /= getSkipMax(); 21 | 22 | super.dospriteinterp(tsp, smoothratio); 23 | } 24 | 25 | @Override 26 | public void dointerpolations(float smoothratio) { 27 | smoothratio += getSkipValue() << 16; 28 | smoothratio /= getSkipMax(); 29 | 30 | super.dointerpolations(smoothratio); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/ru/m210projects/Wang/Factory/WangSoftware.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Wang.Factory; 2 | 3 | import ru.m210projects.Build.Engine; 4 | import ru.m210projects.Build.Render.Software.Software; 5 | 6 | public class WangSoftware extends Software { 7 | 8 | public WangSoftware(Engine engine) { 9 | super(engine, new WangMapSettings()); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/ru/m210projects/Wang/Fonts/MiniFont.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Wang.Fonts; 2 | 3 | import static ru.m210projects.Wang.Names.MINIFONT; 4 | 5 | import ru.m210projects.Build.Engine; 6 | import ru.m210projects.Build.Pattern.BuildFont; 7 | 8 | public class MiniFont extends BuildFont { 9 | 10 | public MiniFont(Engine draw) { 11 | super(draw, draw.getTile(MINIFONT).getHeight() + 2, 65536, 8 | 16); 12 | 13 | this.addChar(' ', nSpace, 5, nScale, 0, 0); 14 | int nTile = MINIFONT; 15 | 16 | for(int i = 0; i < 64; i++) { 17 | char symbol = (char) (i + '!'); 18 | int w = draw.getTile(nTile + i).getWidth(); 19 | if(w != 0) 20 | this.addChar(symbol, nTile + i, w + 1, nScale, 0, 0); 21 | } 22 | for(int i = 64; i < 90; i++) { 23 | char symbol = (char) (i + '!'); 24 | int w = draw.getTile(nTile + i - 32).getWidth(); 25 | if(w != 0) 26 | this.addChar(symbol, nTile + i - 32, w + 1, nScale, 0, 0); 27 | } 28 | for(int i = 90; i < 95; i++) { 29 | char symbol = (char) (i + '!'); 30 | int w = draw.getTile(nTile + i).getWidth(); 31 | if(w != 0) 32 | this.addChar(symbol, nTile + i, w + 1, nScale, 0, 0); 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/ru/m210projects/Wang/Menus/MenuCredits.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Wang.Menus; 2 | 3 | import ru.m210projects.Build.Pattern.MenuItems.BuildMenu; 4 | import ru.m210projects.Wang.Main; 5 | 6 | public class MenuCredits extends BuildMenu { 7 | 8 | public MenuCredits(Main app) 9 | { 10 | MenuPage mPages[] = new MenuPage[6]; 11 | 12 | mPages[0] = new MenuPage(0, 0, 5262); 13 | mPages[1] = new MenuPage(0, 0, 5261); 14 | mPages[2] = new MenuPage(0, 0, 4979); 15 | 16 | mPages[3] = new MenuPage(0, 0, 5111); 17 | mPages[4] = new MenuPage(0, 0, 5118); 18 | mPages[5] = new MenuPage(0, 0, 5113); 19 | 20 | for(int i = 0; i < mPages.length; i++) { 21 | mPages[i].flags |= 10; 22 | addItem(mPages[i], i == 0); 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/ru/m210projects/Wang/Menus/MenuJoystick.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Wang.Menus; 2 | 3 | import ru.m210projects.Wang.Main; 4 | import ru.m210projects.Build.Input.Keymap; 5 | import ru.m210projects.Build.Pattern.BuildGame; 6 | import ru.m210projects.Build.Pattern.MenuItems.MenuTitle; 7 | 8 | public class MenuJoystick extends ru.m210projects.Build.Pattern.CommonMenus.MenuJoystick { 9 | 10 | public MenuJoystick(Main app) { 11 | super(app, 35, 50, 250, 10, 15, app.getFont(1), 14); 12 | 13 | mList.menupal = 19; 14 | 15 | mJoyKey.align = 0; 16 | mJoyKey.x = 35; 17 | 18 | mJoyDevices.listFont = app.getFont(0); 19 | mList.pal_left = mList.pal_right = 16; 20 | mText.font = mText2.font = app.getFont(1); 21 | mText.y -= 10; 22 | mText2.y -= 10; 23 | } 24 | 25 | @Override 26 | public MenuTitle getTitle(BuildGame app, String text) { 27 | return new WangTitle(text); 28 | } 29 | 30 | @Override 31 | public String keyNames(int keycode) { 32 | return Keymap.toString(keycode); 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /src/ru/m210projects/Wang/Menus/MenuMenuKeyboard.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Wang.Menus; 2 | 3 | import ru.m210projects.Wang.Main; 4 | 5 | import static com.badlogic.gdx.Input.Keys.BACKSPACE; 6 | 7 | import ru.m210projects.Build.Input.Keymap; 8 | import ru.m210projects.Build.Pattern.BuildGame; 9 | import ru.m210projects.Build.Pattern.CommonMenus.MenuKeyboard; 10 | import ru.m210projects.Build.Pattern.MenuItems.MenuTitle; 11 | 12 | public class MenuMenuKeyboard extends MenuKeyboard { 13 | 14 | public MenuMenuKeyboard(Main app) { 15 | super(app, 35, 40, 250, 14, app.getFont(1)); 16 | 17 | mList.pal_left = 20; 18 | mList.pal_right = 16; 19 | 20 | mText.y -= 10; 21 | mText.pal = 16; 22 | mText2.y -= 10; 23 | mText2.pal = 16; 24 | } 25 | 26 | @Override 27 | public MenuTitle getTitle(BuildGame app, String text) { 28 | return new WangTitle(text); 29 | } 30 | 31 | @Override 32 | public String keyNames(int keycode) { 33 | 34 | if(keycode == BACKSPACE) 35 | return "BkSpace"; 36 | 37 | return Keymap.toString(keycode); 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /src/ru/m210projects/Wang/Menus/MenuMouse.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Wang.Menus; 2 | 3 | import ru.m210projects.Wang.Main; 4 | import ru.m210projects.Build.Pattern.BuildGame; 5 | import ru.m210projects.Build.Pattern.MenuItems.MenuTitle; 6 | 7 | public class MenuMouse extends ru.m210projects.Build.Pattern.CommonMenus.MenuMouse { 8 | 9 | public MenuMouse(Main app) { 10 | super(app, 35, 40, 250, 10, 5, app.getFont(1), 0); 11 | 12 | mMove.text = "Forw/Backw speed".toCharArray(); 13 | mAdvance.align = 0; 14 | mAdvance.x = 35; 15 | } 16 | 17 | @Override 18 | public MenuTitle getTitle(BuildGame app, String text) { 19 | return new WangTitle(text); 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/ru/m210projects/Wang/Menus/MenuOptions.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Wang.Menus; 2 | 3 | import static ru.m210projects.Wang.Factory.WangMenuHandler.*; 4 | 5 | import ru.m210projects.Build.Pattern.MenuItems.BuildMenu; 6 | import ru.m210projects.Build.Pattern.MenuItems.MenuButton; 7 | import ru.m210projects.Wang.Main; 8 | import ru.m210projects.Wang.Factory.WangMenuHandler; 9 | 10 | public class MenuOptions extends BuildMenu { 11 | 12 | public MenuOptions(Main app) 13 | { 14 | final WangMenuHandler menu = (WangMenuHandler) app.menu; 15 | int pos = 30; 16 | 17 | addItem(new WangTitle("Options"), false); 18 | addItem(new MenuButton("GAME SETUP", app.getFont(2), 55, pos += 16, 320, 0, 0, new MenuGameSetup(app), 1, null, 0), true); 19 | addItem(new MenuButton("INTERFACE SETUP", app.getFont(2), 55, pos += 16, 320, 0, 0, new MenuInterface(app), 1, null, 0), false); 20 | addItem(new MenuButton("AUDIO SETUP", app.getFont(2), 55, pos += 16, 320, 0, 0, menu.mMenus[SOUNDSET], 1, null, 0), false); 21 | addItem(new MenuButton("VIDEO SETUP", app.getFont(2), 55, pos += 16, 320, 0, 0, new MenuVideoMode(app), 1, null, 0), false); 22 | addItem(new MenuButton("CONTROL SETUP", app.getFont(2), 55, pos += 16, 320, 0, 0, new MenuControls(app), 1, null, 0), false); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/ru/m210projects/Wang/Menus/MenuPage.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Wang.Menus; 2 | 3 | import static ru.m210projects.Build.Engine.xdim; 4 | import static ru.m210projects.Build.Engine.ydim; 5 | import static ru.m210projects.Wang.Main.engine; 6 | 7 | import ru.m210projects.Build.Pattern.MenuItems.MenuHandler; 8 | import ru.m210projects.Build.Pattern.MenuItems.MenuTitle; 9 | import ru.m210projects.Build.Pattern.MenuItems.MenuHandler.MenuOpt; 10 | 11 | public class MenuPage extends MenuTitle { 12 | 13 | public MenuPage(int x, int y, int nTile) { 14 | super(engine, null, null, x, y, nTile); 15 | } 16 | 17 | @Override 18 | public void draw(MenuHandler handler) { 19 | engine.rotatesprite(x << 16, y << 16, 65536, 0, nTile, -128, 0, 10 | 16, 0, 0, xdim - 1, ydim - 1); 20 | } 21 | 22 | @Override 23 | public boolean callback(MenuHandler handler, MenuOpt opt) { 24 | switch(opt) { 25 | case LEFT: 26 | case BSPACE: 27 | case RMB: 28 | m_pMenu.mNavUp(); 29 | return false; 30 | case RIGHT: 31 | case ENTER: 32 | case SPACE: 33 | case LMB: 34 | m_pMenu.mNavDown(); 35 | return false; 36 | case UP: 37 | case DW: 38 | case ESC: 39 | case DELETE: 40 | return m_pMenu.mNavigation(opt); 41 | default: 42 | return false; 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /src/ru/m210projects/Wang/Menus/Network/MenuMultiplayer.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Wang.Menus.Network; 2 | 3 | import ru.m210projects.Build.Pattern.MenuItems.BuildMenu; 4 | import ru.m210projects.Build.Pattern.MenuItems.MenuButton; 5 | import ru.m210projects.Wang.Main; 6 | import ru.m210projects.Wang.Menus.WangTitle; 7 | 8 | public class MenuMultiplayer extends BuildMenu { 9 | 10 | public MenuMultiplayer(Main app) { 11 | int pos = 45; 12 | 13 | addItem(new WangTitle("Multiplayer"), false); 14 | addItem(new MenuButton("New game", app.getFont(2), 55, pos += 17, 240, 0, 0, new MenuCreate(app), -1, null, 0), true); 15 | addItem(new MenuButton("Join a game", app.getFont(2), 55, pos += 17, 240, 0, 0, new MenuJoin(app), -1, null, 0), false); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/ru/m210projects/Wang/Menus/WangEpisodeButton.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Wang.Menus; 2 | 3 | import ru.m210projects.Build.Pattern.BuildFont.TextAlign; 4 | import ru.m210projects.Build.Pattern.MenuItems.MenuButton; 5 | import ru.m210projects.Build.Pattern.MenuItems.MenuHandler; 6 | import ru.m210projects.Build.Pattern.MenuItems.MenuProc; 7 | import ru.m210projects.Wang.Main; 8 | import ru.m210projects.Wang.Type.GameInfo; 9 | 10 | public class WangEpisodeButton extends MenuButton { 11 | 12 | private Main app; 13 | public GameInfo game; 14 | private String description; 15 | 16 | public WangEpisodeButton(Main app, int x, int y, GameInfo info, MenuProc newEpProc, int epnum) 17 | { 18 | super(info.episode[epnum].Title, app.getFont(2), x, y, 320, 0, 0, null, -1, newEpProc, epnum); 19 | 20 | this.app = app; 21 | this.description = info.episode[epnum].Description; 22 | game = info; 23 | } 24 | 25 | @Override 26 | public void draw(MenuHandler handler) { 27 | super.draw(handler); 28 | 29 | app.getFont(1).drawText(x, y + 17, description, 0, 4, TextAlign.Left, 2, false); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/ru/m210projects/Wang/Menus/WangSwitch.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Wang.Menus; 2 | 3 | 4 | import static ru.m210projects.Build.Engine.*; 5 | import static ru.m210projects.Wang.Main.*; 6 | 7 | import ru.m210projects.Build.Pattern.BuildFont; 8 | import ru.m210projects.Build.Pattern.BuildFont.TextAlign; 9 | import ru.m210projects.Build.Pattern.MenuItems.MenuHandler; 10 | import ru.m210projects.Build.Pattern.MenuItems.MenuProc; 11 | import ru.m210projects.Build.Pattern.MenuItems.MenuSwitch; 12 | import ru.m210projects.Build.Types.Tile; 13 | 14 | public class WangSwitch extends MenuSwitch { 15 | 16 | public WangSwitch(Object text, BuildFont font, int x, int y, int width, boolean value, MenuProc callback) { 17 | super(text, font, x, y, width, value, callback, null, null); 18 | } 19 | 20 | @Override 21 | public void draw(MenuHandler handler) { 22 | int shade = handler.getShade(this); 23 | if ( text != null ) 24 | font.drawText(x, y, text, shade, 16, TextAlign.Left, 2, fontShadow); 25 | 26 | Tile pic = engine.getTile(2849); 27 | engine.rotatesprite((x + width - 1 - pic.getWidth()) << 16, (y + (font.getHeight() - pic.getHeight()) / 2) << 16, 65536, 0, 2849, value ? 0 : 20, 0, 10, 0, 0, xdim-1, ydim-1); 28 | handler.mPostDraw(this); 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /src/ru/m210projects/Wang/Menus/WangTitle.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Wang.Menus; 2 | 3 | import static ru.m210projects.Build.Engine.*; 4 | import static ru.m210projects.Wang.Main.*; 5 | 6 | import ru.m210projects.Build.Pattern.BuildFont.TextAlign; 7 | import ru.m210projects.Build.Pattern.MenuItems.MenuHandler; 8 | import ru.m210projects.Build.Pattern.MenuItems.MenuTitle; 9 | 10 | public class WangTitle extends MenuTitle { 11 | 12 | public WangTitle(Object text) { 13 | super(engine, text, game.getFont(2), 160, 10, 2427); 14 | } 15 | 16 | @Override 17 | public void draw(MenuHandler handler) { 18 | if ( text != null ) 19 | { 20 | draw.rotatesprite(x << 16, y << 16, 65536, 0, nTile, 0, 0, 10, 0, 0, xdim - 1, ydim - 1); 21 | font.drawText(x, y - (draw.getTile(2427).getHeight() - font.getHeight()) / 2, text, -128, 0, TextAlign.Center, 2, fontShadow); 22 | } 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/ru/m210projects/Wang/Screens/LogoAScreen.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Wang.Screens; 2 | 3 | import static ru.m210projects.Wang.Main.gs; 4 | import static ru.m210projects.Wang.Names.THREED_REALMS_PIC; 5 | import static ru.m210projects.Wang.Sound.CDAudio_Play; 6 | import static ru.m210projects.Wang.Sound.StopSound; 7 | 8 | import ru.m210projects.Build.Architecture.BuildGdx; 9 | import ru.m210projects.Build.FileHandle.Resource; 10 | import ru.m210projects.Build.Pattern.BuildGame; 11 | import ru.m210projects.Build.Pattern.ScreenAdapters.LogoScreen; 12 | import ru.m210projects.Build.Render.GLRenderer.GLInvalidateFlag; 13 | 14 | public class LogoAScreen extends LogoScreen { 15 | 16 | public LogoAScreen(BuildGame game, float gShowTime) 17 | { 18 | super(game, gShowTime); 19 | this.setTile(THREED_REALMS_PIC); 20 | } 21 | 22 | @Override 23 | public void show() 24 | { 25 | super.show(); 26 | 27 | StopSound(); 28 | CDAudio_Play(2, true); 29 | 30 | Resource fil = BuildGdx.cache.open("3drealms.pal", 0); 31 | if(fil != null) { 32 | byte[] pal = new byte[768]; 33 | fil.read(pal); 34 | fil.close(); 35 | engine.setbrightness(gs.brightness, pal, GLInvalidateFlag.All); 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/ru/m210projects/Wang/Type/ATTRIBUTE.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Wang.Type; 2 | 3 | import ru.m210projects.Wang.Ai.Attrib_Snds; 4 | 5 | public class ATTRIBUTE extends Saveable { 6 | 7 | public final short[] Speed; 8 | public final short[] TicAdjust; 9 | public final int MaxWeapons; 10 | private final int[] Sounds; 11 | 12 | public ATTRIBUTE(short[] Speed, short[] TicAdjust, int MaxWeapons, int[] Sounds) { 13 | this.Speed = Speed; 14 | this.TicAdjust = TicAdjust; 15 | this.MaxWeapons = MaxWeapons; 16 | this.Sounds = Sounds; 17 | } 18 | 19 | public int getSound(Attrib_Snds ndx) 20 | { 21 | int index = ndx.ordinal(); 22 | if(index < Sounds.length) 23 | return Sounds[index]; 24 | return 0; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/ru/m210projects/Wang/Type/Amb_Info.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Wang.Type; 2 | 3 | public class Amb_Info { 4 | public int name; 5 | public int diginame; 6 | public int ambient_flags; 7 | public int maxtics; // When tics reaches this number next 8 | 9 | public Amb_Info(int name, int diginame, int ambient_flags, int maxtics) 10 | { 11 | this.name = name; 12 | this.diginame = diginame; 13 | this.ambient_flags = ambient_flags; 14 | this.maxtics = maxtics; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/ru/m210projects/Wang/Type/Animator.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Wang.Type; 2 | 3 | public abstract class Animator extends Saveable { 4 | 5 | public abstract boolean invoke(int spr); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /src/ru/m210projects/Wang/Type/Break_Info.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Wang.Type; 2 | 3 | public class Break_Info implements Comparable { 4 | public short picnum, breaknum, shrap_type; 5 | public short flags, shrap_amt; 6 | 7 | public Break_Info(int picnum, int breaknum, int shrap_type) 8 | { 9 | this.picnum = (short) picnum; 10 | this.breaknum = (short) breaknum; 11 | this.shrap_type = (short) shrap_type; 12 | } 13 | 14 | 15 | public Break_Info(int picnum, int breaknum, int shrap_type, int flags) 16 | { 17 | this(picnum, breaknum, shrap_type); 18 | this.flags = (short) flags; 19 | } 20 | 21 | public Break_Info(int picnum, int breaknum, int shrap_type, int flags, int shrap_amt) 22 | { 23 | this(picnum, breaknum, shrap_type, flags); 24 | this.shrap_amt = (short) shrap_amt; 25 | } 26 | 27 | 28 | @Override 29 | public int compareTo(Object info) { 30 | if(info instanceof Short) { 31 | return((short) info - this.picnum); 32 | } else if(info instanceof Break_Info) { 33 | return(((Break_Info) info).picnum - this.picnum); 34 | } 35 | 36 | return 0; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/ru/m210projects/Wang/Type/DAMAGE_DATA.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Wang.Type; 2 | 3 | import ru.m210projects.Wang.Player.Player_Action_Func; 4 | 5 | public class DAMAGE_DATA { 6 | public int id; 7 | public Player_Action_Func init; 8 | public short damage_lo; 9 | public short damage_hi; 10 | public int radius; 11 | public short max_ammo; 12 | public short min_ammo; 13 | public short with_weapon; 14 | 15 | public DAMAGE_DATA(int id, Player_Action_Func init, int damage_lo, int damage_hi, int radius, int max_ammo, int min_ammo, int with_weapon) { 16 | this.id = id; 17 | this.init = init; 18 | this.damage_lo = (short) damage_lo; 19 | this.damage_hi = (short) damage_hi; 20 | this.radius = radius; 21 | this.max_ammo = (short) max_ammo; 22 | this.min_ammo = (short) min_ammo; 23 | this.with_weapon = (short) with_weapon; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/ru/m210projects/Wang/Type/INVENTORY_DATA.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Wang.Type; 2 | 3 | import ru.m210projects.Wang.Inv.Inventory_Stop_Func; 4 | import ru.m210projects.Wang.Player.Player_Action_Func; 5 | 6 | public class INVENTORY_DATA { 7 | public String Name; 8 | public Player_Action_Func init; 9 | public Inventory_Stop_Func stop; 10 | public Panel_State State; 11 | public short DecPerSec; 12 | public short MaxInv; 13 | public int Scale; 14 | public short Flags; 15 | 16 | public INVENTORY_DATA(String name, Player_Action_Func init, Inventory_Stop_Func stop, Panel_State[] State, int DecPerSec, int MaxInv, int Scale, int Flags) 17 | { 18 | this.Name = name; 19 | this.init = init; 20 | this.stop = stop; 21 | this.State = State[0]; 22 | this.DecPerSec = (short)DecPerSec; 23 | this.MaxInv = (short)MaxInv; 24 | this.Scale = Scale; 25 | this.Flags = (short)Flags; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/ru/m210projects/Wang/Type/LONGp.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Wang.Type; 2 | 3 | public class LONGp { 4 | 5 | public int value; 6 | 7 | public LONGp set(int val) { 8 | value = val; 9 | return this; 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /src/ru/m210projects/Wang/Type/LSInfo.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Wang.Type; 2 | 3 | import ru.m210projects.Build.FileHandle.Resource; 4 | 5 | public class LSInfo { 6 | public int skill; 7 | public int level; 8 | 9 | public String info; 10 | public String date; 11 | public String addonfile; 12 | 13 | public void read(Resource bb) 14 | { 15 | level = bb.readInt(); 16 | skill = bb.readInt() + 1; 17 | update(); 18 | } 19 | 20 | public void update() 21 | { 22 | info = "Level:" + level + " / Skill:" + skill; 23 | } 24 | 25 | public void clear() 26 | { 27 | skill = 0; 28 | level = 0; 29 | info = "Empty slot"; 30 | date = null; 31 | addonfile = null; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/ru/m210projects/Wang/Type/LastLevelUser.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Wang.Type; 2 | 3 | public class LastLevelUser { 4 | 5 | public short WeaponNum; 6 | public short LastWeaponNum; 7 | public short Health; 8 | 9 | public void copy(USER p) { 10 | this.WeaponNum = p.WeaponNum; 11 | this.LastWeaponNum = p.LastWeaponNum; 12 | this.Health = p.Health; 13 | } 14 | 15 | public void reset() { 16 | this.WeaponNum = 0; 17 | this.LastWeaponNum = 0; 18 | this.Health = 0; 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/ru/m210projects/Wang/Type/LevelInfo.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Wang.Type; 2 | 3 | public class LevelInfo { 4 | public String LevelName; 5 | public String SongName; 6 | public String Description; 7 | public String BestTime; 8 | public String ParTime; 9 | public int CDtrack = -1; 10 | 11 | public LevelInfo(String LevelName, String SongName, String Description, String BestTime, String ParTime) { 12 | this.LevelName = LevelName; 13 | this.SongName = SongName; 14 | this.Description = Description; 15 | this.BestTime = BestTime; 16 | this.ParTime = ParTime; 17 | } 18 | 19 | public void clear() { 20 | this.LevelName = null; 21 | this.SongName = null; 22 | this.Description = null; 23 | this.BestTime = null; 24 | this.ParTime = null; 25 | } 26 | 27 | public String toString() 28 | { 29 | String txt = "Description: " + Description + "\r\n"; 30 | txt += "LevelName: " + LevelName + "\r\n"; 31 | txt += "SongName: " + SongName + "\r\n"; 32 | txt += "CDtrack: " + CDtrack + "\r\n"; 33 | txt += "BestTime: " + BestTime + "\r\n"; 34 | txt += "ParTime: " + ParTime + "\r\n"; 35 | 36 | return txt; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/ru/m210projects/Wang/Type/LumpInfo.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Wang.Type; 2 | 3 | import ru.m210projects.Build.FileHandle.Resource; 4 | 5 | public class LumpInfo { 6 | 7 | public String name; 8 | public Resource handle; 9 | public int position, size; 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/ru/m210projects/Wang/Type/NEAR_TAG_INFO.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Wang.Type; 2 | 3 | public class NEAR_TAG_INFO { 4 | public int dist; 5 | public short sectnum, wallnum, spritenum; 6 | 7 | public void reset() { 8 | dist = -1; 9 | sectnum = -1; 10 | wallnum = -1; 11 | spritenum = -1; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/ru/m210projects/Wang/Type/OrgTile.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Wang.Type; 2 | 3 | public class OrgTile { 4 | public short index; 5 | public short orgpicnum; 6 | } 7 | -------------------------------------------------------------------------------- /src/ru/m210projects/Wang/Type/PANEL_SPRITE_OVERLAY.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Wang.Type; 2 | 3 | import ru.m210projects.Build.FileHandle.BufferResource; 4 | import ru.m210projects.Build.FileHandle.Resource; 5 | 6 | public class PANEL_SPRITE_OVERLAY { 7 | public Panel_State State; 8 | public int flags; 9 | public short tics; 10 | public short pic; 11 | public short xoff; // from panel sprite center x 12 | public short yoff; // from panel sprite center y 13 | 14 | public void copy(PANEL_SPRITE_OVERLAY src) 15 | { 16 | this.State = src.State; 17 | this.flags = src.flags; 18 | 19 | this.tics = src.tics; 20 | this.pic = src.pic; 21 | this.xoff = src.xoff; 22 | this.yoff = src.yoff; 23 | } 24 | 25 | public void save(BufferResource fil) 26 | { 27 | fil.writeInt(State != null ? State.ordinal() : -1); 28 | fil.writeInt(flags); 29 | fil.writeShort(tics); 30 | fil.writeShort(pic); 31 | fil.writeShort(xoff); 32 | fil.writeShort(yoff); 33 | } 34 | 35 | public void load(Resource res) 36 | { 37 | State = (Panel_State) Saveable.valueOf(res.readInt()); 38 | flags = res.readInt(); 39 | 40 | tics = res.readShort(); 41 | pic = res.readShort(); 42 | xoff = res.readShort(); 43 | yoff = res.readShort(); 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /src/ru/m210projects/Wang/Type/Panel_Sprite_Func.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Wang.Type; 2 | 3 | public abstract class Panel_Sprite_Func extends Saveable { 4 | 5 | public abstract void invoke(Panel_Sprite p); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /src/ru/m210projects/Wang/Type/ParentalStruct.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Wang.Type; 2 | 3 | public class ParentalStruct { 4 | public short Voxel = -1; // Voxel Number to replace sprites with 5 | public short Parental; // Tile offset to replace adult tiles with when locked out 6 | // 0 = Invisible 7 | } 8 | -------------------------------------------------------------------------------- /src/ru/m210projects/Wang/Type/Predict.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Wang.Type; 2 | 3 | public class Predict { 4 | 5 | public int x, y, z; 6 | public float horiz, ang; 7 | 8 | public void copy(Predict src) 9 | { 10 | this.x = src.x; 11 | this.y = src.y; 12 | this.z = src.z; 13 | this.horiz = src.horiz; 14 | this.ang = src.ang; 15 | } 16 | 17 | public void set(PlayerStr p) { 18 | x = p.posx; 19 | y = p.posy; 20 | z = p.posz; 21 | ang = p.pang; 22 | horiz = p.horiz; 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/ru/m210projects/Wang/Type/Remote_Control.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Wang.Type; 2 | 3 | public class Remote_Control { 4 | public static final int sizeof = 54; 5 | 6 | public short cursectnum, lastcursectnum, pang; 7 | public int xvect, yvect, oxvect, oyvect, slide_xvect, slide_yvect; 8 | public int posx, posy, posz; 9 | public int oposx, oposy, oposz; 10 | 11 | public void copy(Remote_Control src) 12 | { 13 | this.cursectnum = src.cursectnum; 14 | this.lastcursectnum = src.lastcursectnum; 15 | this.pang = src.pang; 16 | 17 | this.xvect = src.xvect; 18 | this.yvect = src.yvect; 19 | this.oxvect = src.oxvect; 20 | this.oyvect = src.oyvect; 21 | this.slide_xvect = src.slide_xvect; 22 | this.slide_yvect = src.slide_yvect; 23 | 24 | this.posx = src.posx; 25 | this.posy = src.posy; 26 | this.posz = src.posz; 27 | 28 | this.oposx = src.oposx; 29 | this.oposy = src.oposy; 30 | this.oposz = src.oposz; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/ru/m210projects/Wang/Type/RotatorStr.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Wang.Type; 2 | 3 | public class RotatorStr { 4 | 5 | public int pos; // current position - always moves toward tgt 6 | public int open_dest; // destination of open position 7 | public int tgt; // current target 8 | public int speed; // speed of movement 9 | public int orig_speed; // original speed - vel jacks with speed 10 | public int vel; // velocity adjuments 11 | public int num_walls; // save off positions of walls for rotator 12 | public Vector2i[] orig; 13 | 14 | public void copy(RotatorStr src) { 15 | this.pos = src.pos; 16 | this.open_dest = src.open_dest; 17 | this.tgt = src.tgt; 18 | this.speed = src.speed; 19 | this.orig_speed = src.orig_speed; 20 | this.vel = src.vel; 21 | this.num_walls = src.num_walls; 22 | 23 | if (src.orig != null) { 24 | if (orig == null) 25 | orig = new Vector2i[src.orig.length]; 26 | 27 | for (int i = 0; i < src.orig.length; i++) { 28 | this.orig[i] = new Vector2i(); 29 | this.orig[i].x = src.orig[i].x; 30 | this.orig[i].y = src.orig[i].y; 31 | } 32 | } else 33 | this.orig = null; 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/ru/m210projects/Wang/Type/SHRAP.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Wang.Type; 2 | 3 | public class SHRAP { 4 | public State[] state; 5 | public short id, num, zlevel, min_jspeed, max_jspeed, min_vel, max_vel, ang_range; 6 | public boolean random_disperse; 7 | 8 | public SHRAP() {} 9 | 10 | public SHRAP(State[] state, int id, int num, int zlevel, int min_jspeed, int max_jspeed, int min_vel, int max_vel, 11 | boolean random_disperse, int ang_range) { 12 | 13 | this.state = state; 14 | this.id = (short) id; 15 | this.num = (short) num; 16 | this.zlevel = (short) zlevel; 17 | this.min_jspeed = (short) min_jspeed; 18 | this.max_jspeed = (short) max_jspeed; 19 | this.min_vel = (short) min_vel; 20 | this.max_vel = (short) max_vel; 21 | this.random_disperse = random_disperse; 22 | this.ang_range = (short) ang_range; 23 | } 24 | 25 | public void copy(SHRAP src) 26 | { 27 | this.state = src.state; 28 | 29 | this.id = src.id; 30 | this.num = src.num; 31 | this.zlevel = src.zlevel; 32 | this.min_jspeed = src.min_jspeed; 33 | this.max_jspeed = src.max_jspeed; 34 | this.min_vel = src.min_vel; 35 | this.max_vel = src.max_vel; 36 | this.random_disperse = src.random_disperse; 37 | this.ang_range = src.ang_range; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /src/ru/m210projects/Wang/Type/SINE_WALL.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Wang.Type; 2 | 3 | import ru.m210projects.Build.FileHandle.BufferResource; 4 | import ru.m210projects.Build.FileHandle.Resource; 5 | 6 | public class SINE_WALL { 7 | public int orig_xy, range; 8 | public short wall, sintable_ndx, speed_shift, type; 9 | 10 | public void reset() { 11 | orig_xy = -1; 12 | range = -1; 13 | wall = -1; 14 | sintable_ndx = -1; 15 | speed_shift = -1; 16 | type = -1; 17 | } 18 | 19 | public void save(BufferResource fil) { 20 | fil.writeInt(orig_xy); 21 | fil.writeInt(range); 22 | fil.writeShort(wall); 23 | fil.writeShort(sintable_ndx); 24 | fil.writeShort(speed_shift); 25 | fil.writeShort(type); 26 | } 27 | 28 | public void load(Resource res) { 29 | orig_xy = res.readInt(); 30 | range = res.readInt(); 31 | wall = res.readShort(); 32 | sintable_ndx = res.readShort(); 33 | speed_shift = res.readShort(); 34 | type = res.readShort(); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/ru/m210projects/Wang/Type/SINE_WAVE_FLOOR.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Wang.Type; 2 | 3 | import ru.m210projects.Build.FileHandle.BufferResource; 4 | import ru.m210projects.Build.FileHandle.Resource; 5 | 6 | public class SINE_WAVE_FLOOR { 7 | public int floor_origz, ceiling_origz, range; 8 | public short sector, sintable_ndx, speed_shift; 9 | public int flags; 10 | 11 | public void reset() { 12 | floor_origz = -1; 13 | range = -1; 14 | ceiling_origz = -1; 15 | 16 | sintable_ndx = -1; 17 | speed_shift = -1; 18 | sector = -1; 19 | 20 | flags = -1; 21 | } 22 | 23 | public void save(BufferResource fil) { 24 | fil.writeInt(floor_origz); 25 | fil.writeInt(ceiling_origz); 26 | fil.writeInt(range); 27 | 28 | fil.writeShort(sector); 29 | fil.writeShort(sintable_ndx); 30 | fil.writeShort(speed_shift); 31 | 32 | fil.writeInt(flags); 33 | } 34 | 35 | public void load(Resource res) { 36 | floor_origz = res.readInt(); 37 | ceiling_origz = res.readInt(); 38 | range = res.readInt(); 39 | 40 | sector = res.readShort(); 41 | sintable_ndx = res.readShort(); 42 | speed_shift = res.readShort(); 43 | 44 | flags = res.readInt(); 45 | } 46 | 47 | } 48 | -------------------------------------------------------------------------------- /src/ru/m210projects/Wang/Type/Save.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Wang.Type; 2 | 3 | import static ru.m210projects.Wang.Rooms.*; 4 | 5 | public class Save { 6 | public int[] zval = new int[ZMAX]; 7 | public short[] sectnum = new short[ZMAX]; 8 | public short[] pic = new short[ZMAX]; 9 | public short zcount; 10 | public short[] slope = new short[ZMAX]; 11 | } 12 | -------------------------------------------------------------------------------- /src/ru/m210projects/Wang/Type/Spring_Board.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Wang.Type; 2 | 3 | import ru.m210projects.Build.FileHandle.BufferResource; 4 | import ru.m210projects.Build.FileHandle.Resource; 5 | 6 | public class Spring_Board { 7 | public short Sector, TimeOut; 8 | 9 | public void reset() { 10 | Sector = -1; 11 | TimeOut = -1; 12 | } 13 | 14 | public void save(BufferResource fil) { 15 | fil.writeShort(Sector); 16 | fil.writeShort(TimeOut); 17 | } 18 | 19 | public void load(Resource res) { 20 | Sector = res.readShort(); 21 | TimeOut = res.readShort(); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/ru/m210projects/Wang/Type/State.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Wang.Type; 2 | 3 | import ru.m210projects.Wang.Sprites.StateGroup; 4 | 5 | public class State extends Saveable { 6 | 7 | public final short Pic; 8 | public final int Tics; 9 | public final Animator Animator; 10 | public int id; 11 | 12 | private State NextState; 13 | private StateGroup Nextgroup; 14 | 15 | public State(int pic, int tics, Animator anim) 16 | { 17 | this.id = 0; 18 | this.Pic = (short) pic; 19 | this.Tics = tics; 20 | this.Animator = anim; 21 | } 22 | 23 | public State setNext(State pState) { 24 | this.NextState = pState; 25 | return this; 26 | } 27 | 28 | public State setNext() { 29 | this.NextState = this; 30 | return this; 31 | } 32 | 33 | public State getNext() { 34 | return NextState; 35 | } 36 | 37 | public State setNextGroup(StateGroup group) { 38 | this.Nextgroup = group; 39 | return this; 40 | } 41 | 42 | public StateGroup getNextGroup() { 43 | return Nextgroup; 44 | } 45 | 46 | public static void InitState(State[] list) { 47 | int len = list.length; 48 | for (int st = 0; st < len; st++) { 49 | if (list[st].getNext() == null) 50 | list[st].setNext(list[(st + 1) % len]); 51 | list[st].id = st; 52 | } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /src/ru/m210projects/Wang/Type/TRACK.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Wang.Type; 2 | 3 | public class TRACK { 4 | public TRACK_POINT[] TrackPoint; 5 | public int ttflags; 6 | public short flags; 7 | public short NumPoints; 8 | 9 | public void reset() 10 | { 11 | TrackPoint = null; 12 | ttflags = 0; 13 | flags = 0; 14 | NumPoints = 0; 15 | } 16 | 17 | public void copy(TRACK src) { 18 | for(int i = 0; src.TrackPoint != null && i < src.TrackPoint.length; i++) 19 | { 20 | if(TrackPoint == null) 21 | TrackPoint = new TRACK_POINT[src.TrackPoint.length]; 22 | if(src.TrackPoint[i] != null) { 23 | if(TrackPoint[i] == null) 24 | TrackPoint[i] = new TRACK_POINT(); 25 | TrackPoint[i].copy(src.TrackPoint[i]); 26 | } 27 | } 28 | this.ttflags = src.ttflags; 29 | this.flags = src.flags; 30 | this.NumPoints = src.NumPoints; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/ru/m210projects/Wang/Type/TRACK_POINT.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Wang.Type; 2 | 3 | public class TRACK_POINT { 4 | public int x, y, z; 5 | public short ang, tag_low, tag_high; 6 | 7 | public void copy(TRACK_POINT src) { 8 | this.x = src.x; 9 | this.y = src.y; 10 | this.z = src.z; 11 | this.ang = src.ang; 12 | this.tag_low = src.tag_low; 13 | this.tag_high = src.tag_high; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/ru/m210projects/Wang/Type/Target_Sort.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Wang.Type; 2 | 3 | public class Target_Sort implements Comparable { 4 | public int sprite_num; 5 | public int dang; 6 | public int dist; 7 | public int weight; 8 | 9 | @Override 10 | public int compareTo(Target_Sort tgt) { 11 | // will return a number less than 0 if tgt1 < tgt2 12 | return (this.weight - tgt.weight); 13 | }} 14 | -------------------------------------------------------------------------------- /src/ru/m210projects/Wang/Type/VOC_INFO.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Wang.Type; 2 | 3 | public class VOC_INFO { 4 | public static final int MAXSOURCEINTICK = 32; 5 | 6 | public final String name; // name of voc file on disk 7 | public VOC data; // pointer to voc data 8 | public int datalen; // length of voc data 9 | public final int pitch_lo; // lo pitch value 10 | public final int pitch_hi; // hi pitch value 11 | public final int priority; // priority at which vocs are played 12 | public final int voc_num; // Backward reference to parent sound 13 | public final int voc_distance; // Sound's distance effectiveness 14 | public final int voc_flags; // Various allowable flag settings for voc 15 | public int playing; // number of this type of sound currently playing 16 | public int lock; 17 | 18 | public VOC_INFO(String name, int id, int id_num, int pri, int pitch_lo, int pitch_hi, int voc_num, int voc_dist, 19 | int voc_flags) { 20 | this.name = name; 21 | this.data = null; 22 | this.datalen = 0; 23 | this.pitch_lo = pitch_lo; 24 | this.pitch_hi = pitch_hi; 25 | this.priority = pri; 26 | this.voc_num = voc_num; 27 | this.voc_distance = voc_dist; 28 | this.voc_flags = voc_flags; 29 | this.playing = 0; 30 | this.lock = MAXSOURCEINTICK; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/ru/m210projects/Wang/Type/Vector2i.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Wang.Type; 2 | 3 | public class Vector2i { 4 | 5 | public int x, y; 6 | 7 | public Vector2i() 8 | { 9 | this(0, 0); 10 | } 11 | 12 | public Vector2i(int x, int y) 13 | { 14 | this.x = x; 15 | this.y = y; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/ru/m210projects/Wang/Type/Vector3i.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Wang.Type; 2 | 3 | public class Vector3i { 4 | 5 | public int x, y, z; 6 | 7 | public Vector3i() 8 | { 9 | this(0, 0, 0); 10 | } 11 | 12 | public Vector3i(int x, int y, int z) 13 | { 14 | this.x = x; 15 | this.y = y; 16 | this.z = z; 17 | } 18 | 19 | public Vector3i set(int x, int y, int z) { 20 | this.x = x; 21 | this.y = y; 22 | this.z = z; 23 | 24 | return this; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/ru/m210projects/Witchaven/AI/AIState.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Witchaven.AI; 2 | 3 | import ru.m210projects.Witchaven.Types.PLAYER; 4 | 5 | public abstract class AIState { 6 | 7 | public abstract void process(PLAYER plr, short i); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /src/ru/m210projects/Witchaven/AI/Enemy.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Witchaven.AI; 2 | 3 | public class Enemy { 4 | 5 | public EnemyInfo info; 6 | 7 | public AIState patrol; 8 | public AIState chase; 9 | public AIState resurect; 10 | public AIState nuked; 11 | public AIState frozen; 12 | public AIState pain; 13 | public AIState face; 14 | public AIState attack; 15 | public AIState flee; 16 | public AIState cast; 17 | public AIState die; 18 | public AIState skirmish; 19 | public AIState stand; 20 | public AIState search; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/ru/m210projects/Witchaven/Factory/WHNetwork.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Witchaven.Factory; 2 | 3 | import ru.m210projects.Build.Pattern.BuildGame; 4 | import ru.m210projects.Build.Pattern.BuildNet; 5 | import ru.m210projects.Witchaven.Types.Input; 6 | 7 | public class WHNetwork extends BuildNet { 8 | 9 | public WHNetwork(BuildGame game) { 10 | super(game); 11 | } 12 | 13 | @Override 14 | public NetInput newInstance() { 15 | return new Input(); 16 | } 17 | 18 | @Override 19 | public int GetPackets(byte[] data, int ptr, int len, int nPlayer) { 20 | // TODO Auto-generated method stub 21 | return 0; 22 | } 23 | 24 | @Override 25 | public void UpdatePrediction(NetInput input) { 26 | // TODO Auto-generated method stub 27 | 28 | } 29 | 30 | @Override 31 | public void CalcChecksum() { 32 | // TODO Auto-generated method stub 33 | 34 | } 35 | 36 | @Override 37 | public void CorrectPrediction() { 38 | // TODO Auto-generated method stub 39 | 40 | } 41 | 42 | @Override 43 | public void ComputerInput(int i) { 44 | } 45 | 46 | } 47 | -------------------------------------------------------------------------------- /src/ru/m210projects/Witchaven/Menu/MenuQuit.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Witchaven.Menu; 2 | 3 | import ru.m210projects.Build.Pattern.BuildGame; 4 | import ru.m210projects.Build.Pattern.MenuItems.BuildMenu; 5 | import ru.m210projects.Build.Pattern.MenuItems.MenuHandler; 6 | import ru.m210projects.Build.Pattern.MenuItems.MenuText; 7 | import ru.m210projects.Build.Pattern.MenuItems.MenuVariants; 8 | 9 | public class MenuQuit extends BuildMenu { 10 | 11 | public MenuQuit(final BuildGame game) 12 | { 13 | 14 | MenuText QuitQuestion = new MenuText("Are you sure?", game.getFont(0), 160, 85, 1); 15 | MenuVariants QuitVariants = new MenuVariants(game.pEngine, "[Y/N]", game.getFont(0), 160, 102) { 16 | @Override 17 | public void positive(MenuHandler menu) { 18 | game.gExit = true; 19 | menu.mClose(); 20 | } 21 | }; 22 | 23 | addItem(QuitQuestion, false); 24 | addItem(QuitVariants, true); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/ru/m210projects/Witchaven/Menu/WHMenuQTitle.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Witchaven.Menu; 2 | 3 | import static ru.m210projects.Witchaven.Main.*; 4 | import static ru.m210projects.Witchaven.WHSND.*; 5 | import static ru.m210projects.Witchaven.Globals.*; 6 | 7 | import ru.m210projects.Build.Pattern.BuildGame; 8 | import ru.m210projects.Build.Pattern.MenuItems.BuildMenu; 9 | import ru.m210projects.Build.Pattern.MenuItems.MenuHandler; 10 | import ru.m210projects.Build.Pattern.MenuItems.MenuText; 11 | import ru.m210projects.Build.Pattern.MenuItems.MenuVariants; 12 | 13 | public class WHMenuQTitle extends BuildMenu { 14 | 15 | public WHMenuQTitle(final BuildGame game) 16 | { 17 | MenuText QuitQuestion = new MenuText("Quit to title?", game.getFont(0), 160, 85, 1); 18 | MenuVariants QuitVariants = new MenuVariants(game.pEngine, "[Y/N]", game.getFont(0), 160, 102) { 19 | @Override 20 | public void positive(MenuHandler menu) { 21 | menu.mClose(); 22 | 23 | game.pNet.ready2send = false; 24 | boardfilename = null; 25 | sndStopMusic(); 26 | stopallsounds(); 27 | 28 | game.pInput.ctrlResetKeyStatus(); 29 | game.changeScreen(gMenuScreen); 30 | } 31 | }; 32 | 33 | addItem(QuitQuestion, false); 34 | addItem(QuitVariants, true); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/ru/m210projects/Witchaven/Types/ANIMATION.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Witchaven.Types; 2 | 3 | public class ANIMATION { 4 | 5 | public static final int WALLX = 1 << 0; 6 | public static final int WALLY = 1 << 1; 7 | public static final int FLOORZ = 1 << 2; 8 | public static final int CEILZ = 1 << 3; 9 | 10 | public Object ptr; 11 | public short id; 12 | public byte type; 13 | public int goal; 14 | public int vel; 15 | public int acc; 16 | 17 | public ANIMATION copy(ANIMATION src) 18 | { 19 | this.ptr = src.ptr; 20 | this.id = src.id; 21 | this.type = src.type; 22 | this.goal = src.goal; 23 | this.vel = src.vel; 24 | this.acc = src.acc; 25 | 26 | return this; 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/ru/m210projects/Witchaven/Types/Ambsounds.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Witchaven.Types; 2 | 3 | public class Ambsounds { 4 | public int soundnum; //the actual sound number S_x 5 | public int hsound; //the handle returned by hmi 6 | 7 | public Ambsounds(int soundnum) 8 | { 9 | this.soundnum = soundnum; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/ru/m210projects/Witchaven/Types/Delayitem.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Witchaven.Types; 2 | 3 | public class Delayitem { 4 | public int item; 5 | public int timer; 6 | public boolean func; 7 | 8 | public void memmove(Delayitem source) 9 | { 10 | this.item = source.item; 11 | this.timer = source.timer; 12 | this.func = source.func; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/ru/m210projects/Witchaven/Types/EpisodeInfo.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Witchaven.Types; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | public class EpisodeInfo { 7 | 8 | public String Title; 9 | public String path; 10 | public boolean packed; 11 | public List gMapInfo; 12 | 13 | public EpisodeInfo() { 14 | gMapInfo = new ArrayList(); 15 | } 16 | 17 | public EpisodeInfo(String title) { 18 | this(); 19 | this.Title = title; 20 | } 21 | 22 | public void clear() 23 | { 24 | Title = null; 25 | path = null; 26 | packed = false; 27 | gMapInfo.clear(); 28 | } 29 | 30 | public int maps() { 31 | return gMapInfo.size(); 32 | } 33 | 34 | public String getMapName(int num) 35 | { 36 | MapInfo map = getMap(num); 37 | if(map != null) 38 | return map.title; 39 | 40 | return null; 41 | } 42 | 43 | public MapInfo getMap(int num) 44 | { 45 | return (num - 1) < gMapInfo.size() ? gMapInfo.get(num - 1) : null; 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /src/ru/m210projects/Witchaven/Types/Item.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Witchaven.Types; 2 | 3 | public class Item { 4 | 5 | public interface Callback { 6 | public void pickup(PLAYER plr, short i); 7 | } 8 | 9 | public final int sizx, sizy; 10 | public final boolean treasures, cflag; 11 | private final Callback callback; 12 | 13 | public Item(int sizx, int sizy, boolean treasure, boolean cflag, Callback call) 14 | { 15 | this.sizx = sizx; 16 | this.sizy = sizy; 17 | this.treasures = treasure; 18 | this.cflag = cflag; 19 | this.callback = call; 20 | } 21 | 22 | public void pickup(PLAYER plr, short i) { 23 | callback.pickup(plr, i); 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /src/ru/m210projects/Witchaven/Types/LSInfo.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Witchaven.Types; 2 | 3 | import ru.m210projects.Build.FileHandle.Resource; 4 | 5 | public class LSInfo { 6 | public int level; 7 | public int skill; 8 | public String info; 9 | public String date; 10 | public String addonfile; 11 | 12 | public void read(Resource bb) 13 | { 14 | level = bb.readInt(); 15 | skill = bb.readInt(); 16 | update(); 17 | } 18 | 19 | public void update() 20 | { 21 | info = "Map:" + level + " / Skill:" + skill; 22 | } 23 | 24 | public void clear() 25 | { 26 | skill = 0; 27 | level = 0; 28 | info = "Empty slot"; 29 | date = null; 30 | addonfile = null; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/ru/m210projects/Witchaven/Types/MapInfo.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Witchaven.Types; 2 | 3 | public class MapInfo { 4 | 5 | public String path; 6 | public String title; 7 | 8 | public MapInfo(String path, String title) { 9 | this.path = path; 10 | this.title = title; 11 | } 12 | 13 | public void clear() 14 | { 15 | path = null; 16 | title = null; 17 | } 18 | 19 | public String toString() 20 | { 21 | String text = "path: " + path + ", "; 22 | text += "title: " + title; 23 | 24 | return text; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/ru/m210projects/Witchaven/Types/PLOCATION.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Witchaven.Types; 2 | 3 | public class PLOCATION { 4 | public int x; 5 | public int y; 6 | public int z; 7 | public float ang; 8 | public float horiz; 9 | } 10 | -------------------------------------------------------------------------------- /src/ru/m210projects/Witchaven/Types/SWINGDOOR.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Witchaven.Types; 2 | 3 | import ru.m210projects.Build.FileHandle.Resource; 4 | 5 | public class SWINGDOOR { 6 | public int[] wall = new int[8]; 7 | public int sector; 8 | public int angopen; 9 | public int angclosed; 10 | public int angopendir; 11 | public int ang; 12 | public int anginc; 13 | public int[] x = new int[8]; 14 | public int[] y = new int[8]; 15 | 16 | public void copy(SWINGDOOR src) 17 | { 18 | System.arraycopy(src.wall, 0, wall, 0, 8); 19 | 20 | sector = src.sector; 21 | angopen = src.angopen; 22 | angclosed = src.angclosed; 23 | angopendir = src.angopendir; 24 | ang = src.ang; 25 | anginc = src.anginc; 26 | 27 | System.arraycopy(src.x, 0, x, 0, 8); 28 | System.arraycopy(src.y, 0, y, 0, 8); 29 | } 30 | 31 | public void set(Resource bb) { 32 | for(int j = 0; j < 8; j++) 33 | wall[j] = bb.readShort(); 34 | sector = bb.readShort(); 35 | angopen = bb.readShort(); 36 | angclosed = bb.readShort(); 37 | angopendir = bb.readShort(); 38 | ang = bb.readShort(); 39 | anginc = bb.readShort(); 40 | for(int j = 0; j < 8; j++) 41 | x[j] = bb.readInt(); 42 | for(int j = 0; j < 8; j++) 43 | y[j] = bb.readInt(); 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /src/ru/m210projects/Witchaven/Types/Songtype.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Witchaven.Types; 2 | 3 | import ru.m210projects.Build.Audio.MusicSource; 4 | 5 | public class Songtype { 6 | public MusicSource handle; 7 | public int offset; 8 | public byte[] buffer; 9 | public int length; 10 | } 11 | -------------------------------------------------------------------------------- /src/ru/m210projects/Witchaven/Types/Soundtype.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Witchaven.Types; 2 | 3 | import ru.m210projects.Build.Audio.Source; 4 | 5 | public class Soundtype { 6 | public Source hVoice; 7 | 8 | public int priority; 9 | public int sndnum; 10 | public int x, y; 11 | public float loop; 12 | } 13 | -------------------------------------------------------------------------------- /src/ru/m210projects/Witchaven/Types/WEAPON.java: -------------------------------------------------------------------------------- 1 | package ru.m210projects.Witchaven.Types; 2 | 3 | public class WEAPON { 4 | public int daweapontics; 5 | public int daweaponframe; 6 | public int currx; 7 | public int curry; 8 | 9 | public WEAPON(int daweapontics, int daweaponframe, int currx, int curry) 10 | { 11 | this.daweapontics = daweapontics; 12 | this.daweaponframe = daweaponframe; 13 | this.currx = currx; 14 | this.curry = curry; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /swgdx.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/swgdx.dat -------------------------------------------------------------------------------- /twgdx.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/twgdx.dat -------------------------------------------------------------------------------- /whgdx.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atsb/NuBuildGDX/5cbf4d17e41cf0887885925b64259b2fc0592968/whgdx.dat --------------------------------------------------------------------------------