semi-working miami repack

This commit is contained in:
Stefanos Kornilios Mitsis Poiitidis 2025-02-22 15:36:37 +02:00
parent 14d270e72c
commit 72056d2f57
30 changed files with 14922 additions and 4584 deletions

View file

@ -12,19 +12,19 @@ IS_MAC := $(shell uname -s | grep -i "darwin" > /dev/null && echo "yes" || echo
MOD_NAME?= MOD_NAME?=
GTA_DIR?=../../gta3 GTA_DIR?=../../miami
GTA_MOD_DIR?=../../gta3_mod$(MOD_NAME) GTA_MOD_DIR?=../../miami_mod$(MOD_NAME)
GTA_MOD_IMG_DIR?=$(GTA_MOD_DIR)/img GTA_MOD_IMG_DIR?=$(GTA_MOD_DIR)/img
GTA_MOD_SFX_DIR?=$(GTA_MOD_DIR)/sfx GTA_MOD_SFX_DIR?=$(GTA_MOD_DIR)/sfx
GTA_MOD_LOOSE_DIR?=$(GTA_MOD_DIR)/loose GTA_MOD_LOOSE_DIR?=$(GTA_MOD_DIR)/loose
REPACK_DIR?=repack-data REPACK_DIR?=repack-data
REPACK_GTA_DIR?=$(REPACK_DIR)/gta3 REPACK_GTA_DIR?=$(REPACK_DIR)/miami
REPACK_IMG_ORIG_DIR?=$(REPACK_DIR)/img-orig REPACK_IMG_ORIG_DIR?=$(REPACK_DIR)/miami-img-orig
REPACK_IMG_DC_DIR?=$(REPACK_DIR)/img-dc REPACK_IMG_DC_DIR?=$(REPACK_DIR)/miami-img-dc
REPACK_SFX_ORIG_DIR?=$(REPACK_DIR)/sfx-orig REPACK_SFX_ORIG_DIR?=$(REPACK_DIR)/miami-sfx-orig
REPACK_SFX_DC_DIR?=$(REPACK_DIR)/sfx-dc REPACK_SFX_DC_DIR?=$(REPACK_DIR)/miami-sfx-dc
REPACK_STREAM_DECODED_DIR?=$(REPACK_DIR)/stream-decoded REPACK_STREAM_DECODED_DIR?=$(REPACK_DIR)/miami-stream-decoded
LIBS := LIBS :=
TEXCONV_FLAGS := TEXCONV_FLAGS :=
@ -45,7 +45,7 @@ all: $(TARGET)
include common.mk include common.mk
OBJS = $(RE3_OBJS) $(RW_OBJS) \ OBJS = $(RE3_OBJS) $(RW_OBJS) \
../src/audio/sampman_dc.o \ ../src/Audio/sampman_dc.o \
../src/prof/profiler.o ../src/prof/profiler.o
OBJS_TEXCONV = $(RW_OBJS:.o=.texconv.o) OBJS_TEXCONV = $(RW_OBJS:.o=.texconv.o)
@ -60,28 +60,33 @@ OBJS_TEXCONV += \
../vendor/koshle/hlepvr_irq.texconv.o \ ../vendor/koshle/hlepvr_irq.texconv.o \
../vendor/koshle/hlematrix3d.texconv.o \ ../vendor/koshle/hlematrix3d.texconv.o \
../vendor/librw/src/dc/vq.texconv.o \ ../vendor/librw/src/dc/vq.texconv.o \
../src/fakerw/fake.texconv.o \ ../miami/fakerw/fake.texconv.o \
../src/skel/crossplatform.texconv.o \ ../miami/skel/crossplatform.texconv.o \
../src/rw/TxdStore.texconv.o \ ../miami/rw/TxdStore.texconv.o \
../miami/rw/RwHelper.texconv.o \
texconv.texconv.o \ texconv.texconv.o \
../vendor/TriStripper/src/connectivity_graph.texconv.o \ ../vendor/TriStripper/src/connectivity_graph.texconv.o \
../vendor/TriStripper/src/policy.texconv.o \ ../vendor/TriStripper/src/policy.texconv.o \
../vendor/TriStripper/src/tri_stripper.texconv.o \ ../vendor/TriStripper/src/tri_stripper.texconv.o \
../src/rw/VisibilityPlugins.texconv.o \ ../miami/rw/VisibilityPlugins.texconv.o \
../src/rw/NodeName.texconv.o \ ../miami/rw/NodeName.texconv.o \
../src/animation/RpAnimBlend.texconv.o \ ../miami/animation/RpAnimBlend.texconv.o \
../src/animation/Bones.texconv.o \ ../miami/animation/Bones.texconv.o \
../src/animation/AnimBlendAssociation.texconv.o \ ../miami/animation/AnimBlendAssociation.texconv.o \
../src/animation/AnimBlendNode.texconv.o \ ../miami/animation/AnimBlendNode.texconv.o \
../src/animation/AnimBlendClumpData.texconv.o \ ../miami/animation/AnimBlendClumpData.texconv.o \
../src/rw/MemoryMgr.texconv.o \ ../miami/rw/MemoryMgr.texconv.o \
../src/math/Quaternion.texconv.o \ ../miami/math/Quaternion.texconv.o \
../vendor/librw/src/ps2-x/ps2.texconv.o \
../vendor/librw/src/ps2-x/ps2device.texconv.o \
../vendor/librw/src/ps2-x/ps2raster.texconv.o \
../vendor/librw/src/ps2-x/ps2skin.texconv.o \
../vendor/librw/src/d3d-x/d3d.texconv.o \ ../vendor/librw/src/d3d-x/d3d.texconv.o \
../vendor/librw/src/d3d-x/d3d8.texconv.o \ ../vendor/librw/src/d3d-x/d3d8.texconv.o \
../vendor/librw/src/d3d-x/d3d8render.texconv.o \ ../vendor/librw/src/d3d-x/d3d8render.texconv.o \
../vendor/librw/src/bmp.texconv.o \ ../vendor/librw/src/bmp.texconv.o \
../vendor/librw/src/png.texconv.o \ ../vendor/librw/src/png.texconv.o \
../vendor/librw/src/lodepng/lodepng.texconv.o ../vendor/librw/src/lodepng/lodepng.texconv.o
# Add compilation units to this list to explicity compile them with # Add compilation units to this list to explicity compile them with
# -O3 optimizations, while the rest get the default (-Os) treatment # -O3 optimizations, while the rest get the default (-Os) treatment
@ -278,7 +283,7 @@ texconv: $(OBJS_TEXCONV) | pvrtex # You'll have to rebuild pvrtex manually if yo
$(CXX) -o $@ $(OBJS_TEXCONV) $(CXX) -o $@ $(OBJS_TEXCONV)
%.texconv.o: %.cpp %.texconv.o: %.cpp
$(CXX) -std=c++2a -c -O3 -g -MMD -MP -o $@ -I../vendor/koshle $(INCLUDE) -I../vendor/emu -I../vendor/crypto -I../vendor/TriStripper/include $(DEFINES) -DDC_TEXCONV -DDC_SIM -D_INC_WINDOWS $(TEXCONV_FLAGS) $< $(CXX) -std=c++2a -c -O0 -g -MMD -MP -o $@ -I../vendor/koshle -I../vendor/librw/src $(INCLUDE) -I../vendor/emu -I../vendor/crypto -I../vendor/TriStripper/include $(DEFINES) -DDC_TEXCONV -DDC_SIM -D_INC_WINDOWS $(TEXCONV_FLAGS) $<
-include $(DEPS) -include $(DEPS)
@ -343,6 +348,7 @@ TEXTURE_DOWNSAMPLE_IMG ?= HALF
-include texlist.mk -include texlist.mk
-include modlist.mk -include modlist.mk
-include imgmisc.mk
-include gta3files.mk -include gta3files.mk
-include sfxlist.mk -include sfxlist.mk
-include sfxlooplist.mk -include sfxlooplist.mk
@ -351,6 +357,7 @@ TEXTURE_DOWNSAMPLE_IMG ?= HALF
IMG_TEXTURES_DC = $(addprefix $(REPACK_IMG_DC_DIR)/, $(IMG_TEXTURES)) IMG_TEXTURES_DC = $(addprefix $(REPACK_IMG_DC_DIR)/, $(IMG_TEXTURES))
IMG_MODELS_DC = $(addprefix $(REPACK_IMG_DC_DIR)/, $(IMG_MODELS)) IMG_MODELS_DC = $(addprefix $(REPACK_IMG_DC_DIR)/, $(IMG_MODELS))
IMG_MISC_DC = $(addprefix $(REPACK_IMG_DC_DIR)/, $(IMG_MISC))
LOOSE_FILES_DC = $(addprefix $(REPACK_GTA_DIR)/, $(MISC_FILES)) LOOSE_FILES_DC = $(addprefix $(REPACK_GTA_DIR)/, $(MISC_FILES))
SFX_DC_DIR = $(REPACK_GTA_DIR)/sfx SFX_DC_DIR = $(REPACK_GTA_DIR)/sfx
SFX_DC_RAW = $(SFX_DC_DIR)/sfx_all.raw SFX_DC_RAW = $(SFX_DC_DIR)/sfx_all.raw
@ -382,6 +389,7 @@ $(REPACK_DIR)/unpacked: imgtool $(GTA_DIR)/models/gta3.img $(GTA_DIR)/models/gta
@touch $@ @touch $@
$(IMG_TEXTURES_ORIG) $(IMG_MODELS_ORIG): $(REPACK_DIR)/unpacked $(IMG_TEXTURES_ORIG) $(IMG_MODELS_ORIG): $(REPACK_DIR)/unpacked
@test -f $@
@touch $@ @touch $@
# First try the mods img directory # First try the mods img directory
@ -416,6 +424,22 @@ $(REPACK_IMG_DC_DIR)/%.TXD: $(REPACK_IMG_ORIG_DIR)/%.TXD texconv
@mkdir -p $(@D) @mkdir -p $(@D)
./texconv $< $@ $(DEFAULT_RES) $(DEFAULT_RES) -e $(PVR_ENCODER) -d $(TEXTURE_DOWNSAMPLE_IMG) ./texconv $< $@ $(DEFAULT_RES) $(DEFAULT_RES) -e $(PVR_ENCODER) -d $(TEXTURE_DOWNSAMPLE_IMG)
# First try the mods img directory
$(REPACK_IMG_DC_DIR)/%.col: $(GTA_MOD_IMG_DIR)/%.col
@mkdir -p $(@D)
cp $< $@
$(REPACK_IMG_DC_DIR)/%.ifp: $(GTA_MOD_IMG_DIR)/%.ifp
@mkdir -p $(@D)
cp $< $@
# if not, the extracted img directory
$(REPACK_IMG_DC_DIR)/%.col: $(REPACK_IMG_ORIG_DIR)/%.col
@mkdir -p $(@D)
cp $< $@
$(REPACK_IMG_DC_DIR)/%.ifp: $(REPACK_IMG_ORIG_DIR)/%.ifp
@mkdir -p $(@D)
cp $< $@
# first try the mods loose directory # first try the mods loose directory
$(REPACK_GTA_DIR)/%.dff: $(GTA_MOD_LOOSE_DIR)/%.dff texconv $(REPACK_GTA_DIR)/%.dff: $(GTA_MOD_LOOSE_DIR)/%.dff texconv
@mkdir -p $(@D) @mkdir -p $(@D)
@ -449,7 +473,7 @@ $(REPACK_GTA_DIR)/%.TXD: $(GTA_DIR)/%.TXD texconv
@mkdir -p $(@D) @mkdir -p $(@D)
./texconv $< $@ $(TXD_OPTS_$(notdir $*)) -e $(PVR_ENCODER) -d $(TEXTURE_DOWNSAMPLE_TXD) ./texconv $< $@ $(TXD_OPTS_$(notdir $*)) -e $(PVR_ENCODER) -d $(TEXTURE_DOWNSAMPLE_TXD)
$(REPACK_DIR)/packed: $(IMG_TEXTURES_DC) $(IMG_MODELS_DC) $(REPACK_DIR)/packed: $(IMG_TEXTURES_DC) $(IMG_MODELS_DC) $(IMG_MISC_DC)
mkdir -p $(@D) mkdir -p $(@D)
mkdir -p "$(REPACK_GTA_DIR)/models/gta3" mkdir -p "$(REPACK_GTA_DIR)/models/gta3"
./imgtool pack "$(REPACK_GTA_DIR)/models/gta3" "$(REPACK_IMG_DC_DIR)" ./imgtool pack "$(REPACK_GTA_DIR)/models/gta3" "$(REPACK_IMG_DC_DIR)"
@ -459,16 +483,18 @@ $(REPACK_GTA_DIR)/models/gta3.img $(REPACK_GTA_DIR)/models/gta3.dir: $(REPACK_DI
@touch $@ @touch $@
# sfx processing # sfx processing
$(REPACK_DIR)/unpacked-sfx: extract-sfx $(GTA_DIR)/audio/sfx.SDT $(GTA_DIR)/audio/sfx.RAW $(REPACK_DIR)/unpacked-sfx: extract-sfx $(GTA_DIR)/Audio/sfx.SDT $(GTA_DIR)/Audio/sfx.RAW
mkdir -p $(@D) mkdir -p $(@D)
mkdir -p "$(REPACK_SFX_ORIG_DIR)" mkdir -p "$(REPACK_SFX_ORIG_DIR)"
./extract-sfx "$(GTA_DIR)/audio/sfx.SDT" "$(GTA_DIR)/audio/sfx.RAW" "$(REPACK_SFX_ORIG_DIR)" ./extract-sfx "$(GTA_DIR)/Audio/sfx.SDT" "$(GTA_DIR)/Audio/sfx.RAW" "$(REPACK_SFX_ORIG_DIR)"
@touch $@ @touch $@
$(SFX_ORIG): $(REPACK_DIR)/unpacked-sfx $(SFX_ORIG): $(REPACK_DIR)/unpacked-sfx
@test -f $@
@touch $@ @touch $@
$(SFX_ORIG_LOOP): $(SFX_ORIG) $(SFX_ORIG_LOOP): $(SFX_ORIG)
@test -f $@
@touch $@ @touch $@
# try first mods sfx directory # try first mods sfx directory
@ -484,20 +510,24 @@ $(REPACK_SFX_DC_DIR)/%.pcm: $(REPACK_SFX_ORIG_DIR)/%.wav aud2adpcm
# stream processing # stream processing
# first try the mods loose directory # first try the mods loose directory
$(REPACK_GTA_DIR)/stream/%.APM: $(GTA_MOD_LOOSE_DIR)/audio/%.wav aud2adpcm $(REPACK_GTA_DIR)/stream/%.APM: $(GTA_MOD_LOOSE_DIR)/Audio/%.wav aud2adpcm
@mkdir -p $(@D) @mkdir -p $(@D)
./aud2adpcm $(AUDIO_STREAM_OPTION) $< $@ ./aud2adpcm $(AUDIO_STREAM_OPTION) $< $@
$(REPACK_GTA_DIR)/stream/%.APM: $(GTA_MOD_LOOSE_DIR)/audio/%.mp3 aud2adpcm $(REPACK_GTA_DIR)/stream/%.APM: $(GTA_MOD_LOOSE_DIR)/Audio/%.mp3 aud2adpcm
@mkdir -p $(@D)
./aud2adpcm $(AUDIO_STREAM_OPTION) $< $@
$(REPACK_GTA_DIR)/stream/%.APM: $(GTA_MOD_LOOSE_DIR)/Audio/%.adf aud2adpcm
@mkdir -p $(@D) @mkdir -p $(@D)
./aud2adpcm $(AUDIO_STREAM_OPTION) $< $@ ./aud2adpcm $(AUDIO_STREAM_OPTION) $< $@
# then original folder # then original folder
$(REPACK_GTA_DIR)/stream/%.APM: $(GTA_DIR)/audio/%.wav aud2adpcm $(REPACK_GTA_DIR)/stream/%.APM: $(GTA_DIR)/Audio/%.wav aud2adpcm
@mkdir -p $(@D) @mkdir -p $(@D)
./aud2adpcm $(AUDIO_STREAM_OPTION) $< $@ ./aud2adpcm $(AUDIO_STREAM_OPTION) $< $@
$(REPACK_GTA_DIR)/stream/%.APM: $(GTA_DIR)/audio/%.mp3 aud2adpcm $(REPACK_GTA_DIR)/stream/%.APM: $(GTA_DIR)/Audio/%.mp3 aud2adpcm
@mkdir -p $(@D) @mkdir -p $(@D)
./aud2adpcm $(AUDIO_STREAM_OPTION) $< $@ ./aud2adpcm $(AUDIO_STREAM_OPTION) $< $@
@ -508,7 +538,7 @@ $(REPACK_GTA_DIR)/%: $(GTA_DIR)/%
$(SFX_DC_RAW): pack-sfx $(SFX_REPACK_DC) $(SFX_DC_RAW): pack-sfx $(SFX_REPACK_DC)
mkdir -p $(@D) mkdir -p $(@D)
./pack-sfx "$(GTA_DIR)/audio/sfx.SDT" $(SFX_DC_RAW) $(SFX_DC_DSC) $(REPACK_SFX_DC_DIR) ./pack-sfx "$(GTA_DIR)/Audio/sfx.SDT" $(SFX_DC_RAW) $(SFX_DC_DSC) $(REPACK_SFX_DC_DIR)
$(SFX_DC_DSC): $(SFX_DC_RAW) $(SFX_DC_DSC): $(SFX_DC_RAW)
ls -l $@ ls -l $@

View file

@ -21,264 +21,264 @@ git-version.h: git-version.tmp
.PHONY: git-version.tmp .PHONY: git-version.tmp
../src/skel/dc/dc.cpp: git-version.h ../miami/skel/dc/dc.cpp: git-version.h
# List all of your C files here, but change the extension to ".o" # List all of your C files here, but change the extension to ".o"
# Include "romdisk.o" if you want a rom disk. # Include "romdisk.o" if you want a rom disk.
RE3_OBJS = \ RE3_OBJS = \
../src/animation/AnimBlendAssocGroup.o \ ../miami/animation/AnimBlendAssocGroup.o \
../src/animation/AnimBlendAssociation.o \ ../miami/animation/AnimBlendAssociation.o \
../src/animation/AnimBlendClumpData.o \ ../miami/animation/AnimBlendClumpData.o \
../src/animation/AnimBlendHierarchy.o \ ../miami/animation/AnimBlendHierarchy.o \
../src/animation/AnimBlendNode.o \ ../miami/animation/AnimBlendNode.o \
../src/animation/AnimBlendSequence.o \ ../miami/animation/AnimBlendSequence.o \
../src/animation/AnimManager.o \ ../miami/animation/AnimManager.o \
../src/animation/Bones.o \ ../miami/animation/Bones.o \
../src/animation/CutsceneMgr.o \ ../miami/animation/CutsceneMgr.o \
../src/animation/FrameUpdate.o \ ../miami/animation/FrameUpdate.o \
../src/animation/RpAnimBlend.o \ ../miami/animation/RpAnimBlend.o \
\ \
../src/buildings/Building.o \ ../miami/buildings/Building.o \
../src/buildings/Treadable.o \ ../miami/buildings/Treadable.o \
\ \
../src/collision/ColBox.o \ ../miami/collision/ColBox.o \
../src/collision/ColLine.o \ ../miami/collision/ColLine.o \
../src/collision/Collision.o \ ../miami/collision/Collision.o \
../src/collision/ColModel.o \ ../miami/collision/ColModel.o \
../src/collision/ColPoint.o \ ../miami/collision/ColPoint.o \
../src/collision/ColSphere.o \ ../miami/collision/ColSphere.o \
../src/collision/ColTriangle.o \ ../miami/collision/ColTriangle.o \
../src/collision/TempColModels.o \ ../miami/collision/TempColModels.o \
../src/collision/VuCollision.o \ ../miami/collision/VuCollision.o \
\ \
../src/control/AutoPilot.o \ ../miami/control/AutoPilot.o \
../src/control/Bridge.o \ ../miami/control/Bridge.o \
../src/control/CarAI.o \ ../miami/control/CarAI.o \
../src/control/CarCtrl.o \ ../miami/control/CarCtrl.o \
../src/control/Curves.o \ ../miami/control/Curves.o \
../src/control/Darkel.o \ ../miami/control/Darkel.o \
../src/control/GameLogic.o \ ../miami/control/GameLogic.o \
../src/control/Garages.o \ ../miami/control/Garages.o \
../src/control/NameGrid.o \ ../miami/control/NameGrid.o \
../src/control/OnscreenTimer.o \ ../miami/control/OnscreenTimer.o \
../src/control/PathFind.o \ ../miami/control/PathFind.o \
../src/control/Phones.o \ ../miami/control/Phones.o \
../src/control/Pickups.o \ ../miami/control/Pickups.o \
../src/control/PowerPoints.o \ ../miami/control/PowerPoints.o \
../src/control/Record.o \ ../miami/control/Record.o \
../src/control/Remote.o \ ../miami/control/Remote.o \
../src/control/Replay.o \ ../miami/control/Replay.o \
../src/control/Restart.o \ ../miami/control/Restart.o \
../src/control/RoadBlocks.o \ ../miami/control/RoadBlocks.o \
../src/control/SceneEdit.o \ ../miami/control/SceneEdit.o \
../src/control/Script.o \ ../miami/control/Script.o \
../src/control/Script2.o \ ../miami/control/Script2.o \
../src/control/Script3.o \ ../miami/control/Script3.o \
../src/control/Script4.o \ ../miami/control/Script4.o \
../src/control/Script5.o \ ../miami/control/Script5.o \
../src/control/Script6.o \ ../miami/control/Script6.o \
../src/control/ScriptDebug.o \ ../miami/control/ScriptDebug.o \
../src/control/TrafficLights.o \ ../miami/control/TrafficLights.o \
\ \
../src/core/Accident.o \ ../miami/core/Accident.o \
../src/core/Cam.o \ ../miami/core/Cam.o \
../src/core/Camera.o \ ../miami/core/Camera.o \
../src/core/CdStreamDC.o \ ../miami/core/CdStreamDC.o \
../src/core/Clock.o \ ../miami/core/Clock.o \
../src/core/ControllerConfig.o \ ../miami/core/ControllerConfig.o \
../src/core/Debug.o \ ../miami/core/Debug.o \
../src/core/Directory.o \ ../miami/core/Directory.o \
../src/core/EventList.o \ ../miami/core/EventList.o \
../src/core/FileLoader.o \ ../miami/core/FileLoader.o \
../src/core/FileMgr.o \ ../miami/core/FileMgr.o \
../src/core/Fire.o \ ../miami/core/Fire.o \
../src/core/Frontend.o \ ../miami/core/Frontend.o \
../src/core/FrontEndControls.o \ ../miami/core/FrontEndControls.o \
../src/core/Frontend_PS2.o \ ../miami/core/Frontend_PS2.o \
../src/core/Game.o \ ../miami/core/Game.o \
../src/core/IniFile.o \ ../miami/core/IniFile.o \
../src/core/Lists.o \ ../miami/core/Lists.o \
../src/core/main.o \ ../miami/core/main.o \
../src/core/MenuScreens.o \ ../miami/core/MenuScreens.o \
../src/core/MenuScreensCustom.o \ ../miami/core/MenuScreensCustom.o \
../src/core/obrstr.o \ ../miami/core/obrstr.o \
../src/core/Pad.o \ ../miami/core/Pad.o \
../src/core/Placeable.o \ ../miami/core/Placeable.o \
../src/core/PlayerInfo.o \ ../miami/core/PlayerInfo.o \
../src/core/Pools.o \ ../miami/core/Pools.o \
../src/core/Profile.o \ ../miami/core/Profile.o \
../src/core/Radar.o \ ../miami/core/Radar.o \
../src/core/Range2D.o \ ../miami/core/Range2D.o \
../src/core/Range3D.o \ ../miami/core/Range3D.o \
../src/core/re3.o \ ../miami/core/re3.o \
../src/core/References.o \ ../miami/core/References.o \
../src/core/Stats.o \ ../miami/core/Stats.o \
../src/core/Streaming.o \ ../miami/core/Streaming.o \
../src/core/SurfaceTable.o \ ../miami/core/SurfaceTable.o \
../src/core/timebars.o \ ../miami/core/timebars.o \
../src/core/Timer.o \ ../miami/core/Timer.o \
../src/core/TimeStep.o \ ../miami/core/TimeStep.o \
../src/core/User.o \ ../miami/core/User.o \
../src/core/Wanted.o \ ../miami/core/Wanted.o \
../src/core/World.o \ ../miami/core/World.o \
../src/core/ZoneCull.o \ ../miami/core/ZoneCull.o \
../src/core/Zones.o \ ../miami/core/Zones.o \
\ \
../src/entities/Dummy.o \ ../miami/entities/Dummy.o \
../src/entities/Entity.o \ ../miami/entities/Entity.o \
../src/entities/Physical.o \ ../miami/entities/Physical.o \
\ \
../src/fakerw/fake.o \ ../miami/fakerw/fake.o \
\ \
../src/math/math.o \ ../miami/math/math.o \
../src/math/Matrix.o \ ../miami/math/Matrix.o \
../src/math/Quaternion.o \ ../miami/math/Quaternion.o \
../src/math/Rect.o \ ../miami/math/Rect.o \
../src/math/Vector.o \ ../miami/math/Vector.o \
\ \
../src/modelinfo/BaseModelInfo.o \ ../miami/modelinfo/BaseModelInfo.o \
../src/modelinfo/ClumpModelInfo.o \ ../miami/modelinfo/ClumpModelInfo.o \
../src/modelinfo/MloModelInfo.o \ ../miami/modelinfo/MloModelInfo.o \
../src/modelinfo/ModelIndices.o \ ../miami/modelinfo/ModelIndices.o \
../src/modelinfo/ModelInfo.o \ ../miami/modelinfo/ModelInfo.o \
../src/modelinfo/PedModelInfo.o \ ../miami/modelinfo/PedModelInfo.o \
../src/modelinfo/SimpleModelInfo.o \ ../miami/modelinfo/SimpleModelInfo.o \
../src/modelinfo/TimeModelInfo.o \ ../miami/modelinfo/TimeModelInfo.o \
../src/modelinfo/VehicleModelInfo.o \ ../miami/modelinfo/VehicleModelInfo.o \
\ \
../src/objects/CutsceneHead.o \ ../miami/objects/CutsceneHead.o \
../src/objects/CutsceneObject.o \ ../miami/objects/CutsceneObject.o \
../src/objects/DummyObject.o \ ../miami/objects/DummyObject.o \
../src/objects/Object.o \ ../miami/objects/Object.o \
../src/objects/ObjectData.o \ ../miami/objects/ObjectData.o \
../src/objects/ParticleObject.o \ ../miami/objects/ParticleObject.o \
../src/objects/Projectile.o \ ../miami/objects/Projectile.o \
\ \
../src/peds/CivilianPed.o \ ../miami/peds/CivilianPed.o \
../src/peds/CopPed.o \ ../miami/peds/CopPed.o \
../src/peds/EmergencyPed.o \ ../miami/peds/EmergencyPed.o \
../src/peds/Gangs.o \ ../miami/peds/Gangs.o \
../src/peds/Ped.o \ ../miami/peds/Ped.o \
../src/peds/PedAI.o \ ../miami/peds/PedAI.o \
../src/peds/PedChat.o \ ../miami/peds/PedChat.o \
../src/peds/PedDebug.o \ ../miami/peds/PedDebug.o \
../src/peds/PedFight.o \ ../miami/peds/PedFight.o \
../src/peds/PedIK.o \ ../miami/peds/PedIK.o \
../src/peds/PedPlacement.o \ ../miami/peds/PedPlacement.o \
../src/peds/PedRoutes.o \ ../miami/peds/PedRoutes.o \
../src/peds/PedType.o \ ../miami/peds/PedType.o \
../src/peds/PlayerPed.o \ ../miami/peds/PlayerPed.o \
../src/peds/Population.o \ ../miami/peds/Population.o \
\ \
../src/renderer/Antennas.o \ ../miami/renderer/Antennas.o \
../src/renderer/Clouds.o \ ../miami/renderer/Clouds.o \
../src/renderer/Console.o \ ../miami/renderer/Console.o \
../src/renderer/Coronas.o \ ../miami/renderer/Coronas.o \
../src/renderer/Credits.o \ ../miami/renderer/Credits.o \
../src/renderer/Draw.o \ ../miami/renderer/Draw.o \
../src/renderer/Fluff.o \ ../miami/renderer/Fluff.o \
../src/renderer/Font.o \ ../miami/renderer/Font.o \
../src/renderer/Glass.o \ ../miami/renderer/Glass.o \
../src/renderer/Hud.o \ ../miami/renderer/Hud.o \
../src/renderer/Instance.o \ ../miami/renderer/Instance.o \
../src/renderer/Lines.o \ ../miami/renderer/Lines.o \
../src/renderer/MBlur.o \ ../miami/renderer/MBlur.o \
../src/renderer/Particle.o \ ../miami/renderer/Particle.o \
../src/renderer/ParticleMgr.o \ ../miami/renderer/ParticleMgr.o \
../src/renderer/PlayerSkin.o \ ../miami/renderer/PlayerSkin.o \
../src/renderer/PointLights.o \ ../miami/renderer/PointLights.o \
../src/renderer/RenderBuffer.o \ ../miami/renderer/RenderBuffer.o \
../src/renderer/Renderer.o \ ../miami/renderer/Renderer.o \
../src/renderer/Rubbish.o \ ../miami/renderer/Rubbish.o \
../src/renderer/Shadows.o \ ../miami/renderer/Shadows.o \
../src/renderer/Skidmarks.o \ ../miami/renderer/Skidmarks.o \
../src/renderer/SpecialFX.o \ ../miami/renderer/SpecialFX.o \
../src/renderer/Sprite.o \ ../miami/renderer/Sprite.o \
../src/renderer/Sprite2d.o \ ../miami/renderer/Sprite2d.o \
../src/renderer/TexList.o \ ../miami/renderer/TexList.o \
../src/renderer/Timecycle.o \ ../miami/renderer/Timecycle.o \
../src/renderer/WaterCannon.o \ ../miami/renderer/WaterCannon.o \
../src/renderer/WaterLevel.o \ ../miami/renderer/WaterLevel.o \
../src/renderer/Weather.o \ ../miami/renderer/Weather.o \
\ \
../src/rw/ClumpRead.o \ ../miami/rw/ClumpRead.o \
../src/rw/Lights.o \ ../miami/rw/Lights.o \
../src/rw/MemoryHeap.o \ ../miami/rw/MemoryHeap.o \
../src/rw/MemoryMgr.o \ ../miami/rw/MemoryMgr.o \
../src/rw/NodeName.o \ ../miami/rw/NodeName.o \
../src/rw/RwHelper.o \ ../miami/rw/RwHelper.o \
../src/rw/RwMatFX.o \ ../miami/rw/RwMatFX.o \
../src/rw/RwPS2AlphaTest.o \ ../miami/rw/RwPS2AlphaTest.o \
../src/rw/TexRead.o \ ../miami/rw/TexRead.o \
../src/rw/TexturePools.o \ ../miami/rw/TexturePools.o \
../src/rw/TxdStore.o \ ../miami/rw/TxdStore.o \
../src/rw/VisibilityPlugins.o \ ../miami/rw/VisibilityPlugins.o \
\ \
../src/skel/crossplatform.o \ ../miami/skel/crossplatform.o \
../src/skel/events.o \ ../miami/skel/events.o \
../src/skel/skeleton.o \ ../miami/skel/skeleton.o \
../src/skel/dc/dc.o \ ../miami/skel/dc/dc.o \
\ \
../src/text/Messages.o \ ../miami/text/Messages.o \
../src/text/Pager.o \ ../miami/text/Pager.o \
../src/text/Text.o \ ../miami/text/Text.o \
\ \
../src/vehicles/Automobile.o \ ../miami/vehicles/Automobile.o \
../src/vehicles/Boat.o \ ../miami/vehicles/Boat.o \
../src/vehicles/CarGen.o \ ../miami/vehicles/CarGen.o \
../src/vehicles/Cranes.o \ ../miami/vehicles/Cranes.o \
../src/vehicles/DamageManager.o \ ../miami/vehicles/DamageManager.o \
../src/vehicles/Door.o \ ../miami/vehicles/Door.o \
../src/vehicles/Floater.o \ ../miami/vehicles/Floater.o \
../src/vehicles/HandlingMgr.o \ ../miami/vehicles/HandlingMgr.o \
../src/vehicles/Heli.o \ ../miami/vehicles/Heli.o \
../src/vehicles/Plane.o \ ../miami/vehicles/Plane.o \
../src/vehicles/Train.o \ ../miami/vehicles/Train.o \
../src/vehicles/Transmission.o \ ../miami/vehicles/Transmission.o \
../src/vehicles/Vehicle.o \ ../miami/vehicles/Vehicle.o \
\ \
../src/weapons/BulletInfo.o \ ../miami/weapons/BulletInfo.o \
../src/weapons/Explosion.o \ ../miami/weapons/Explosion.o \
../src/weapons/ProjectileInfo.o \ ../miami/weapons/ProjectileInfo.o \
../src/weapons/ShotInfo.o \ ../miami/weapons/ShotInfo.o \
../src/weapons/Weapon.o \ ../miami/weapons/Weapon.o \
../src/weapons/WeaponEffects.o \ ../miami/weapons/WeaponEffects.o \
../src/weapons/WeaponInfo.o \ ../miami/weapons/WeaponInfo.o \
\ \
../src/audio/AudioCollision.o \ ../miami/audio/AudioCollision.o \
../src/audio/AudioLogic.o \ ../miami/audio/AudioLogic.o \
../src/audio/AudioManager.o \ ../miami/audio/AudioManager.o \
../src/audio/AudioScriptObject.o \ ../miami/audio/AudioScriptObject.o \
../src/audio/DMAudio.o \ ../miami/audio/DMAudio.o \
../src/audio/MusicManager.o \ ../miami/audio/MusicManager.o \
../src/audio/PolRadio.o \ ../miami/audio/PolRadio.o \
../src/audio/sampman_miles.o \ ../miami/audio/sampman_miles.o \
../src/audio/sampman_oal.o \ ../miami/audio/sampman_oal.o \
\ \
../src/save/Date.o \ ../miami/save/Date.o \
../src/save/GenericGameStorage.o \ ../miami/save/GenericGameStorage.o \
../src/save/MemoryCard.o \ ../miami/save/MemoryCard.o \
../src/save/PCSave.o \ ../miami/save/PCSave.o \
\ \
../src/extras/debugmenu.o \ ../miami/extras/debugmenu.o \
../src/extras/frontendoption.o \ ../miami/extras/frontendoption.o \
../src/extras/postfx.o \ ../miami/extras/postfx.o \
../src/extras/screendroplets.o \ ../miami/extras/screendroplets.o \
\ \
../src/vmu/vmu.o \ ../miami/vmu/vmu.o \
../vendor/miniLZO/minilzo.o \ ../vendor/miniLZO/minilzo.o \
\ \
# Excluded \ # Excluded \
../src/extras/custompipes.o \ ../miami/extras/custompipes.o \
../src/extras/custompipes_d3d9.o \ ../miami/extras/custompipes_d3d9.o \
../src/extras/custompipes_gl.o \ ../miami/extras/custompipes_gl.o \
../src/core/CdStream.o \ ../miami/core/CdStream.o \
../src/core/CdStreamPosix.o \ ../miami/core/CdStreamPosix.o \
../src/extras \ ../miami/extras \
../src/extras/GitSHA1.cpp.in \ ../miami/extras/GitSHA1.cpp.in \
../src/core/AnimViewer.o \ ../miami/core/AnimViewer.o \
RW_OBJS = \ RW_OBJS = \
../vendor/librw/src/anim.o \ ../vendor/librw/src/anim.o \
@ -351,32 +351,32 @@ RW_OBJS = \
../vendor/librw/src/ps2/ps2skin.o \ ../vendor/librw/src/ps2/ps2skin.o \
INCLUDE = \ INCLUDE = \
-I../src/animation \ -I../miami/animation \
-I../src/audio \ -I../miami/audio \
-I../src/buildings \ -I../miami/buildings \
-I../src/collision \ -I../miami/collision \
-I../src/control \ -I../miami/control \
-I../src/core \ -I../miami/core \
-I../src/entities \ -I../miami/entities \
-I../src/extras \ -I../miami/extras \
-I../src/fakerw \ -I../miami/fakerw \
-I../src/math \ -I../miami/math \
-I../src/modelinfo \ -I../miami/modelinfo \
-I../src/objects \ -I../miami/objects \
-I../src/peds \ -I../miami/peds \
-I../src/renderer \ -I../miami/renderer \
-I../src/rw \ -I../miami/rw \
-I../src/save \ -I../miami/save \
-I../src/skel \ -I../miami/skel \
-I../src/text \ -I../miami/text \
-I../src/vehicles \ -I../miami/vehicles \
-I../src/weapons \ -I../miami/weapons \
-I../src/audio/eax \ -I../miami/audio/eax \
-I../src/audio/oal \ -I../miami/audio/oal \
-I../src/extras/shaders \ -I../miami/extras/shaders \
-I../src/extras/shaders/obj \ -I../miami/extras/shaders/obj \
-I../src/skel/glfw \ -I../miami/skel/glfw \
-I../src/skel/win \ -I../miami/skel/win \
\ \
-I../vendor/librw \ -I../vendor/librw \
\ \

View file

@ -1,178 +1,235 @@
MISC_FILES = \ MISSC_FILES = \
anim/cuts.dir \ \
txd/LOADSC8.TXD \
txd/LOADSC6.TXD \
txd/outro.txd \
txd/LOADSC2.TXD \
txd/LOADSC5.TXD \
txd/LOADSC3.TXD \
txd/NEWS.TXD \
txd/LOADSC11.TXD \
txd/LOADSC12.TXD \
txd/LOADSC10.TXD \
txd/LOADSC1.TXD \
txd/LOADSC9.TXD \
txd/LOADSC7.TXD \
txd/SPLASH2.TXD \
txd/LOADSC13.TXD \
txd/INTRO3.TXD \
txd/SPLASH3.TXD \
txd/SPLASH1.TXD \
txd/intro2.txd \
txd/intro1.txd \
txd/LOADSC0.TXD \
txd/LOADSC4.TXD \
txd/intro4.txd \
\
models/fonts.txd \
models/hud.txd \
models/coll \
models/coll/weapons.col \
models/coll/peds.col \
models/coll/vehicles.col \
models/coll/generic.col \
models/MISC.TXD \
models/generic.txd \
models/gta3.dir \
models/fronten2.txd \
models/particle.txd \
models/fronten1.txd \
models/INTRO.TXD \
models/generic \
models/generic/wheels.TXD \
models/generic/wheels.DFF \
models/generic/arrow.DFF \
models/generic/player.bmp \
models/generic/air_vlo.DFF \
models/generic/zonecylb.DFF \
models/gta3.img \
\
anim/cuts.img \ anim/cuts.img \
anim/gta3.ini \ anim/cuts.dir \
anim/ped.ifp \ anim/ped.ifp \
data/animviewer.dat \ title.rgl \
data/carcols.dat \ \
data/CULLZONE.DAT \ Icons/app.ico \
data/default.dat \ Icons/bin.ico \
data/default.ide \ index.bin \
data/fistfite.dat \ \
data/gta3.dat \ skins/texture_guide.jpg \
data/gta3.zon \ \
data/handling.cfg \
data/main.scm \
data/map.zon \
data/maps/comnbtm/comNbtm.col \
data/maps/comnbtm/comnbtm.ide \
data/maps/comnbtm/comNbtm.ipl \
data/maps/comNbtm.ipl \
data/maps/comntop/comNtop.col \
data/maps/comntop/comntop.ide \
data/maps/comntop/comNtop.ipl \
data/maps/comNtop.ipl \
data/maps/comroad/comroad.col \
data/maps/comroad/comroad.ide \
data/maps/comroad/comroad.ipl \
data/maps/comse/comSE.col \
data/maps/comse/comse.ide \
data/maps/comse/comSE.ipl \
data/maps/comSE.ipl \
data/maps/comsw/comSW.col \
data/maps/comsw/comsw.ide \
data/maps/comsw/comSW.ipl \
data/maps/comSW.ipl \
data/maps/cull.ipl \
data/maps/generic.ide \
data/maps/gta3.IDE \
data/maps/indroads/indroads.col \
data/maps/indroads/indroads.ide \
data/maps/indroads/indroads.ipl \
data/maps/industne/industNE.col \
data/maps/industne/industne.ide \
data/maps/industne/industNE.ipl \
data/maps/industNE.ipl \
data/maps/industnw/industNW.col \
data/maps/industnw/industnw.ide \
data/maps/industnw/industNW.ipl \
data/maps/industNW.ipl \
data/maps/industse/industSE.col \
data/maps/industse/industse.ide \
data/maps/industse/industSE.ipl \
data/maps/industSE.ipl \
data/maps/industsw/industSW.col \
data/maps/industsw/industsw.ide \
data/maps/industsw/industSW.ipl \
data/maps/industSW.ipl \
data/maps/landne/landne.col \
data/maps/landne/landne.ide \
data/maps/landne/landne.ipl \
data/maps/landsw/landsw.col \
data/maps/landsw/landsw.ide \
data/maps/landsw/landsw.ipl \
data/maps/making/making.col \
data/maps/making/making.ide \
data/maps/making/making.ipl \
data/maps/overview.ipl \
data/maps/props.IPL \
data/maps/subroads/subroads.col \
data/maps/subroads/subroads.ide \
data/maps/subroads/subroads.ipl \
data/maps/suburbne.ipl \
data/maps/suburbsw.ipl \
data/maps/temppart/temppart.col \
data/maps/temppart/temppart.ide \
data/maps/temppart/temppart.ipl \
data/object.dat \
data/particle.cfg \
data/paths/CHASE0.DAT \
data/paths/CHASE1.DAT \
data/paths/CHASE10.DAT \
data/paths/CHASE11.DAT \
data/paths/CHASE14.DAT \
data/paths/CHASE16.DAT \
data/paths/CHASE18.DAT \
data/paths/CHASE19.DAT \
data/paths/CHASE2.DAT \
data/paths/CHASE3.DAT \
data/paths/CHASE4.DAT \
data/paths/CHASE5.DAT \
data/paths/CHASE6.DAT \
data/paths/CHASE7.DAT \
data/paths/flight.dat \
data/paths/flight2.dat \
data/paths/flight3.dat \
data/paths/flight4.dat \
data/paths/tracks.dat \
data/paths/tracks2.dat \
data/ped.dat \
data/pedgrp.dat \
data/pedstats.dat \
data/surface.dat \
data/timecyc.dat \
data/train.dat \
data/train2.dat \
data/water.dat \
data/waterpro.dat \
data/weapon.dat \
gta3.ini \
models/Coll/commer.col \
models/Coll/generic.col \
models/Coll/indust.col \
models/Coll/peds.col \
models/Coll/suburb.col \
models/Coll/vehicles.col \
models/Coll/weapons.col \
models/Generic/air_vlo.DFF \
models/Generic/arrow.DFF \
models/Generic/loplyguy.dff \
models/Generic/peds.dff \
models/Generic/qsphere.DFF \
models/Generic/sphere.DFF \
models/Generic/weapons.dff \
models/Generic/wheels.DFF \
models/Generic/zonecyla.DFF \
models/Generic/zonecylb.DFF \
models/Generic/zonesphr.DFF \
movies/GTAtitles.mpg \ movies/GTAtitles.mpg \
movies/GTAtitlesGER.mpg \ movies/Logo.mpg \
$(if $(wildcard $(GTA_DIR)/movies/LOGO.mpg), movies/LOGO.mpg, movies/Logo.mpg) \ \
TEXT/american.gxt \
TEXT/english.gxt \
TEXT/french.gxt \
TEXT/german.gxt \ TEXT/german.gxt \
TEXT/italian.gxt \ TEXT/italian.gxt \
TEXT/spanish.gxt \ TEXT/spanish.gxt \
TEXT/american.gxt \
TEXT/french.gxt \
\ \
models/fonts.txd \ data/weapon.dat \
models/frontend.txd \ data/train.dat \
models/generic.txd \
models/hud.txd \
models/menu.txd \
models/MISC.TXD \
models/particle.txd \
txd/LOADSC0.TXD \
txd/LOADSC1.TXD \
txd/LOADSC10.TXD \
txd/LOADSC11.TXD \
txd/LOADSC12.TXD \
txd/LOADSC13.TXD \
txd/LOADSC14.TXD \
txd/LOADSC15.TXD \
txd/LOADSC16.TXD \
txd/LOADSC17.TXD \
txd/LOADSC18.TXD \
txd/LOADSC19.TXD \
txd/LOADSC2.TXD \
txd/LOADSC20.TXD \
txd/LOADSC21.TXD \
txd/LOADSC22.TXD \
txd/LOADSC23.TXD \
txd/LOADSC24.TXD \
txd/LOADSC25.TXD \
txd/LOADSC3.TXD \
txd/LOADSC4.TXD \
txd/LOADSC5.TXD \
txd/LOADSC6.TXD \
txd/LOADSC7.TXD \
txd/LOADSC8.TXD \
txd/LOADSC9.TXD \
txd/mainsc1.txd \
txd/mainsc2.txd \
txd/NEWS.TXD \
txd/SPLASH1.TXD \
txd/SPLASH2.TXD \
txd/SPLASH3.TXD \
\ \
audio/sfx.SDT data/maps/haiti/haiti.ide \
data/maps/haiti/haiti.col \
data/maps/haiti/haiti.ipl \
data/maps/generic.ide \
\
data/maps/hotel/hotel.ipl \
data/maps/hotel/hotel.ide \
data/maps/hotel/hotel.col \
\
data/maps/islandsf/islandsf.ide \
data/maps/islandsf/islandsf.ipl \
data/maps/islandsf/islandsf.col \
\
data/maps/washintn/washintn.ipl \
data/maps/washintn/washintn.ide \
data/maps/washintn/washintn.col \
data/maps/map6.dat \
\
data/maps/littleha/littleha.ipl \
data/maps/littleha/littleha.ide \
data/maps/littleha/littleha.col \
\
data/maps/mall/mall.ide \
data/maps/mall/mall.col \
data/maps/mall/mall.ipl \
data/maps/map7.dat \
\
data/maps/bar/bar.ide \
\
data/maps/nbeach/nbeach.ipl \
data/maps/nbeach/nbeach.ide \
data/maps/nbeach/nbeach.col \
\
data/maps/golf/golf.ide \
data/maps/golf/golf.col \
data/maps/golf/golf.ipl \
data/maps/map0.dat \
\
data/maps/bank/bank.col \
data/maps/bank/bank.ide \
data/maps/bank/bank.ipl \
\
data/maps/nbeachw/nbeachw.ide \
data/maps/nbeachw/nbeachw.col \
data/maps/nbeachw/nbeachw.ipl \
data/maps/map4.dat \
\
data/maps/airport/airport.ipl \
data/maps/airport/airport.ide \
data/maps/airport/airport.col \
data/maps/nbeachbt \
data/maps/nbeachbt/nbeachbt.col \
data/maps/nbeachbt/nbeachbt.ide \
data/maps/nbeachbt/nbeachbt.ipl \
data/maps/map5.dat \
data/maps/lawyers \
data/maps/lawyers/lawyers.ide \
data/maps/lawyers/lawyers.col \
data/maps/lawyers/lawyers.ipl \
data/maps/haitiN \
data/maps/haitiN/haitin.ipl \
data/maps/haitiN/haitin.col \
data/maps/haitiN/haitiN.ide \
data/maps/downtown \
data/maps/downtown/downtown.col \
data/maps/downtown/downtown.ipl \
data/maps/downtown/downtown.ide \
data/maps/stadint \
data/maps/stadint/stadint.col \
data/maps/stadint/stadint.ide \
data/maps/stadint/stadint.ipl \
data/maps/club \
data/maps/club/club.ide \
data/maps/club/CLUB.ipl \
data/maps/club/CLUB.col \
data/maps/yacht \
data/maps/yacht/yacht.ipl \
data/maps/yacht/yacht.col \
data/maps/yacht/yacht.ide \
data/maps/cull.ipl \
data/maps/map3.dat \
data/maps/airportN \
data/maps/airportN/airportN.ipl \
data/maps/airportN/airportN.col \
data/maps/airportN/airportN.ide \
data/maps/oceandrv \
data/maps/oceandrv/oceandrv.ipl \
data/maps/oceandrv/oceandrv.ide \
data/maps/oceandrv/oceandrv.col \
data/maps/starisl \
data/maps/starisl/starisl.col \
data/maps/starisl/starisl.ide \
data/maps/starisl/starisl.ipl \
data/maps/map1.dat \
data/maps/oceandn \
data/maps/oceandn/oceandN.ide \
data/maps/oceandn/oceandN.col \
data/maps/oceandn/oceandN.ipl \
data/maps/washints \
data/maps/washints/washints.ipl \
data/maps/washints/washints.col \
data/maps/washints/washints.ide \
data/maps/mansion \
data/maps/mansion/mansion.col \
data/maps/mansion/mansion.ipl \
data/maps/mansion/mansion.ide \
data/maps/downtows \
data/maps/downtows/downtows.ipl \
data/maps/downtows/downtows.col \
data/maps/downtows/downtows.ide \
data/maps/bridge \
data/maps/bridge/bridge.col \
data/maps/bridge/bridge.ide \
data/maps/bridge/bridge.ipl \
data/maps/docks \
data/maps/docks/docks.col \
data/maps/docks/docks.ide \
data/maps/docks/docks.ipl \
data/maps/concerth \
data/maps/concerth/concerth.ipl \
data/maps/concerth/concerth.ide \
data/maps/concerth/concerth.col \
data/maps/paths.ipl \
data/maps/cisland \
data/maps/cisland/cisland.ide \
data/maps/cisland/cisland.ipl \
data/maps/cisland/cisland.col \
data/maps/stripclb \
data/maps/stripclb/stripclb.ide \
data/maps/stripclb/stripclb.ipl \
data/maps/stripclb/stripclb.col \
data/maps/map2.dat \
data/pedstats.dat \
data/gta_vc.dat \
data/occlu.ipl \
data/handling.cfg \
data/timecyc.dat \
data/paths \
data/paths/flight3.dat \
data/paths/spath0.dat \
data/paths/flight2.dat \
data/paths/flight.dat \
data/map.zon \
data/water.dat \
data/particle.cfg \
data/navig.zon \
data/default.dat \
data/carcols.dat \
data/fistfite.dat \
data/train2.dat \
data/info.zon \
data/ped.dat \
data/WATERPRO.DAT \
data/main.sc \
data/debug.sc \
data/object.dat \
data/animviewer.dat \
data/Cullzoneempty.dat \
data/surface.dat \
data/main.scm \
data/default.ide \
data/pedgrp.dat \
data/Cullzone.dat

59
dreamcast/imgmisc.mk Normal file
View file

@ -0,0 +1,59 @@
IMG_MISC = \
airport.col \
airportN.col \
bank.col \
baseball.ifp \
biked.ifp \
bikeh.ifp \
bikes.ifp \
bikev.ifp \
bridge.col \
buddy.ifp \
chainsaw.ifp \
cisland.col \
CLUB.col \
coach.ifp \
colt45.ifp \
concerth.col \
docks.col \
downtown.col \
downtows.col \
flame.ifp \
golf.col \
grenade.ifp \
haiti.col \
haitin.col \
hotel.col \
islandsf.col \
knife.ifp \
lance.ifp \
lawyers.col \
littleha.col \
m60.ifp \
mall.col \
mansion.col \
medic.ifp \
nbeachbt.col \
nbeach.col \
nbeachw.col \
oceandN.col \
oceandrv.col \
playidles.ifp \
python.ifp \
rifle.ifp \
riot.ifp \
shotgun.ifp \
skate.ifp \
sniper.ifp \
stadint.col \
starisl.col \
stripclb.col \
strip.ifp \
sunbathe.ifp \
sword.ifp \
tec.ifp \
uzi.ifp \
van.ifp \
washintn.col \
washints.col \
yacht.col

View file

@ -5,6 +5,7 @@
#include <filesystem> #include <filesystem>
#include <cstring> #include <cstring>
#include <iomanip> #include <iomanip>
#include <cassert>
// Sector size constant // Sector size constant
const size_t SECTOR_SIZE = 2048; const size_t SECTOR_SIZE = 2048;
@ -27,6 +28,7 @@ std::vector<DirRecord> readDirFile(const std::string& dirFilePath) {
DirRecord record; DirRecord record;
while (dirFile.read(reinterpret_cast<char*>(&record), sizeof(DirRecord))) { while (dirFile.read(reinterpret_cast<char*>(&record), sizeof(DirRecord))) {
assert(record.size != 0);
records.push_back(record); records.push_back(record);
} }

File diff suppressed because it is too large Load diff

View file

@ -1,71 +1,91 @@
STREAM_MP3 = \ STREAM_MP3 = \
BET.mp3 \ cnt_1b.mp3 \
END.mp3 \ int_b.mp3 \
JB.mp3 \ rok_1.mp3 \
c1_tex.mp3 \ phil_2.mp3 \
d1_stog.mp3 \ cok_2b.mp3 \
d2_kk.mp3 \ Malibu.mp3 \
d3_ado.mp3 \ bank_1.mp3 \
d4_gta.mp3 \ Hwater.mp3 \
d4_gta2.mp3 \ bclosed.mp3 \
d5_es.mp3 \ resc_1a.mp3 \
d6_sts.mp3 \ bank_3a.mp3 \
d7_mld.mp3 \ bike_3.mp3 \
el_ph1.mp3 \ tex_2.mp3 \
el_ph2.mp3 \ col_2.mp3 \
el_ph3.mp3 \ porn_3.mp3 \
el_ph4.mp3 \ bike_1.mp3 \
hd_ph1.mp3 \ finale.mp3 \
hd_ph2.mp3 \ ass_2.mp3 \
hd_ph3.mp3 \ law_4.mp3 \
hd_ph4.mp3 \ car_1.mp3 \
hd_ph5.mp3 \ bank_2b.mp3 \
j0_dm2.mp3 \ tex_1.mp3 \
j1_lfl.mp3 \ cok_4b.mp3 \
j2_kcl.mp3 \ miscom.mp3 \
j3_vh.mp3 \ bank_2a.mp3 \
j4_eth.mp3 \ law_1b.mp3 \
j5_dst.mp3 \ MallAmb.mp3 \
j6_tbj.mp3 \ bank_3b.mp3 \
k1_kbo.mp3 \ ass_1.mp3 \
k2_gis.mp3 \ DirtRing.mp3 \
k3_ds.mp3 \ col_5a.mp3 \
k4_shi.mp3 \ tax_1.mp3 \
k4_shi2.mp3 \ cnt_1a.mp3 \
k5_sd.mp3 \ bike_2.mp3 \
l1_lg.mp3 \ int_a.mp3 \
l2_dsb.mp3 \ bud_1.mp3 \
l3_dm.mp3 \ cok_2a.mp3 \
l4_pap.mp3 \ City.mp3 \
l5_tfb.mp3 \ cap_1.mp3 \
mt_ph1.mp3 \ int_m.mp3 \
mt_ph2.mp3 \ cnt_2.mp3 \
mt_ph3.mp3 \ tex_3.mp3 \
mt_ph4.mp3 \ law_2c.mp3 \
r0_pdr2.mp3 \ law_2b.mp3 \
r1_sw.mp3 \ col_3a.mp3 \
r2_ap.mp3 \ cok_4a2.mp3 \
r3_ed.mp3 \ rok_2.mp3 \
r4_gf.mp3 \ ice_1.mp3 \
r5_pb.mp3 \ hat_1.mp3 \
r6_mm.mp3 \ hat_2.mp3 \
s0_mas.mp3 \ cub_4.mp3 \
s1_pf.mp3 \ Glight.mp3 \
s2_ctg.mp3 \ Strip.mp3 \
s2_ctg2.mp3 \ bud_3.mp3 \
s3_rtc.mp3 \ Hbeach.mp3 \
s4_bdba.mp3 \ bopen.mp3 \
s4_bdbb.mp3 \ fin2.mp3 \
s4_bdbd.mp3 \ cub_3.mp3 \
s5_lrq.mp3 \ cok_4a.mp3 \
s5_lrqb.mp3 \ porn_2.mp3 \
s5_lrqc.mp3 \ cub_1.mp3 \
t1_tol.mp3 \ col_4a.mp3 \
t2_tpu.mp3 \ Hotel.mp3 \
t3_mas.mp3 \ police.mp3 \
t4_tat.mp3 \ law_2a.mp3 \
t5_bf.mp3 \ Law4Riot.mp3 \
yd_ph1.mp3 \ cok_1.mp3 \
yd_ph2.mp3 \ col_5b.mp3 \
yd_ph3.mp3 \ Water.mp3 \
yd_ph4.mp3 HCity.mp3 \
cok_3.mp3 \
law_1a.mp3 \
porn_1.mp3 \
porn_4.mp3 \
taxi.mp3 \
cub_2.mp3 \
law_3.mp3 \
hat_3.mp3 \
phil_1.mp3 \
bank_4.mp3 \
BeachAmb.mp3 \
FIST.mp3 \
bud_2.mp3 \
ambsil.mp3 \
int_d.mp3 \
fin.mp3 \
rok_3a.mp3 \
drug_1.mp3 \
stripa.mp3 \
col_1.mp3

File diff suppressed because it is too large Load diff

View file

@ -1,23 +1,34 @@
SFX_LOOP_WAV = \ SFX_LOOP_WAV = \
sfx_0_loop.wav \ sfx_0_loop.wav \
sfx_185_loop.wav \ sfx_176_loop.wav \
sfx_19_loop.wav \
sfx_1_loop.wav \ sfx_1_loop.wav \
sfx_25_loop.wav \
sfx_287_loop.wav \
sfx_2_loop.wav \ sfx_2_loop.wav \
sfx_311_loop.wav \
sfx_331_loop.wav \ sfx_331_loop.wav \
sfx_346_loop.wav \ sfx_384_loop.wav \
sfx_349_loop.wav \ sfx_387_loop.wav \
sfx_352_loop.wav \ sfx_390_loop.wav \
sfx_355_loop.wav \ sfx_393_loop.wav \
sfx_358_loop.wav \ sfx_396_loop.wav \
sfx_361_loop.wav \ sfx_399_loop.wav \
sfx_364_loop.wav \
sfx_367_loop.wav \
sfx_3_loop.wav \ sfx_3_loop.wav \
sfx_438_loop.wav \ sfx_402_loop.wav \
sfx_408_loop.wav \
sfx_411_loop.wav \
sfx_414_loop.wav \
sfx_419_loop.wav \
sfx_420_loop.wav \
sfx_422_loop.wav \
sfx_423_loop.wav \
sfx_432_loop.wav \
sfx_436_loop.wav \
sfx_440_loop.wav \
sfx_444_loop.wav \
sfx_4_loop.wav \ sfx_4_loop.wav \
sfx_5_loop.wav \ sfx_5_loop.wav \
sfx_62_loop.wav \
sfx_6_loop.wav \ sfx_6_loop.wav \
sfx_7_loop.wav \ sfx_7_loop.wav \
sfx_82_loop.wav sfx_82_loop.wav

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -125,6 +125,12 @@ CAnimBlendAssociation::SetDeleteCallback(void (*cb)(CAnimBlendAssociation*, void
callbackArg = arg; callbackArg = arg;
} }
#if defined(DC_TEXCONV)
void
CAnimBlendAssociation::SetCurrentTime(float time) {
assert("false" && "Must not reach here");
}
#else
void void
CAnimBlendAssociation::SetCurrentTime(float time) CAnimBlendAssociation::SetCurrentTime(float time)
{ {
@ -151,6 +157,7 @@ CAnimBlendAssociation::SetCurrentTime(float time)
nodes[i].FindKeyFrame(currentTime); nodes[i].FindKeyFrame(currentTime);
} }
} }
#endif
void void
CAnimBlendAssociation::SyncAnimation(CAnimBlendAssociation *other) CAnimBlendAssociation::SyncAnimation(CAnimBlendAssociation *other)

View file

@ -425,6 +425,7 @@ RpAnimBlendClumpFindBone(RpClump *clump, uint32 boneTag)
return pFrameDataFound; return pFrameDataFound;
} }
#if !defined(DC_TEXCONV)
void void
RpAnimBlendNodeUpdateKeyframes(AnimBlendFrameData *frames, AnimBlendFrameUpdateData *updateData, int32 numNodes) RpAnimBlendNodeUpdateKeyframes(AnimBlendFrameData *frames, AnimBlendFrameUpdateData *updateData, int32 numNodes)
{ {
@ -441,7 +442,12 @@ RpAnimBlendNodeUpdateKeyframes(AnimBlendFrameData *frames, AnimBlendFrameUpdateD
} }
} }
} }
#else
void
RpAnimBlendNodeUpdateKeyframes(AnimBlendFrameData *frames, AnimBlendFrameUpdateData *updateData, int32 numNodes) { assert(false); }
#endif
#if !defined(DC_TEXCONV)
// TODO: // TODO:
// CAnimBlendClumpData::LoadFramesIntoSPR // CAnimBlendClumpData::LoadFramesIntoSPR
// CAnimBlendClumpData::ForAllFramesInSPR // CAnimBlendClumpData::ForAllFramesInSPR
@ -515,3 +521,7 @@ RpAnimBlendClumpUpdateAnimations(RpClump *clump, float timeDelta, bool doRender)
} }
RwFrameUpdateObjects(RpClumpGetFrame(clump)); RwFrameUpdateObjects(RpClumpGetFrame(clump));
} }
#else
void
RpAnimBlendClumpUpdateAnimations(RpClump *clump, float timeDelta, bool doRender) { assert(false); }
#endif

View file

@ -150,9 +150,11 @@ public:
static void SetMissionDoesntRequireSpecialChar(int32 id); static void SetMissionDoesntRequireSpecialChar(int32 id);
static void DecrementRef(int32 id); static void DecrementRef(int32 id);
static void RemoveModel(int32 id); static void RemoveModel(int32 id);
#if !defined(DC_TEXCONV)
static void RemoveTxd(int32 id) { RemoveModel(id + STREAM_OFFSET_TXD); } static void RemoveTxd(int32 id) { RemoveModel(id + STREAM_OFFSET_TXD); }
static void RemoveCol(int32 id) { RemoveModel(id + STREAM_OFFSET_COL); } static void RemoveCol(int32 id) { RemoveModel(id + STREAM_OFFSET_COL); }
static void RemoveAnim(int32 id) { RemoveModel(id + STREAM_OFFSET_ANIM); } static void RemoveAnim(int32 id) { RemoveModel(id + STREAM_OFFSET_ANIM); }
#endif
static void RemoveUnusedBuildings(eLevelName level); static void RemoveUnusedBuildings(eLevelName level);
static void RemoveBuildings(eLevelName level); static void RemoveBuildings(eLevelName level);
static void RemoveBuildingsNotInArea(int32 area); static void RemoveBuildingsNotInArea(int32 area);

View file

@ -89,6 +89,7 @@
// Use this to add const that wasn't there in the original code // Use this to add const that wasn't there in the original code
#define Const const #define Const const
#ifndef RW_DC
typedef uint8_t uint8; typedef uint8_t uint8;
typedef int8_t int8; typedef int8_t int8;
typedef uint16_t uint16; typedef uint16_t uint16;
@ -104,6 +105,12 @@ typedef uintptr_t uintptr;
typedef intptr_t intptr; typedef intptr_t intptr;
typedef uint64_t uint64; typedef uint64_t uint64;
typedef int64_t int64; typedef int64_t int64;
#endif
#ifdef DC_SIM
#include "dc_hle_types.h"
#endif
typedef uintptr_t uintptr;
typedef intptr_t intptr;
// hardcode ucs-2 // hardcode ucs-2
typedef uint16_t wchar; typedef uint16_t wchar;

View file

@ -184,8 +184,8 @@ enum Config {
# ifndef GTA_HANDHELD # ifndef GTA_HANDHELD
# define PC_PLAYER_CONTROLS // mouse player/cam mode # define PC_PLAYER_CONTROLS // mouse player/cam mode
# endif # endif
# define GTA_REPLAY //# define GTA_REPLAY
# define GTA_SCENE_EDIT //# define GTA_SCENE_EDIT
# define PC_MENU # define PC_MENU
# define PC_WATER # define PC_WATER
#elif defined GTA_XBOX #elif defined GTA_XBOX
@ -245,7 +245,7 @@ enum Config {
// Memory allocation and compression // Memory allocation and compression
// #define USE_CUSTOM_ALLOCATOR // use CMemoryHeap for allocation. use with care, not finished yet // #define USE_CUSTOM_ALLOCATOR // use CMemoryHeap for allocation. use with care, not finished yet
//#define COMPRESSED_COL_VECTORS // use compressed vectors for collision vertices #define COMPRESSED_COL_VECTORS // use compressed vectors for collision vertices
//#define ANIM_COMPRESSION // only keep most recently used anims uncompressed //#define ANIM_COMPRESSION // only keep most recently used anims uncompressed
#if defined GTA_PC && defined GTA_PS2_STUFF #if defined GTA_PC && defined GTA_PS2_STUFF
@ -316,10 +316,10 @@ enum Config {
#define ANISOTROPIC_FILTERING // set all textures to max anisotropic filtering #define ANISOTROPIC_FILTERING // set all textures to max anisotropic filtering
//#define USE_TEXTURE_POOL //#define USE_TEXTURE_POOL
#ifdef LIBRW #ifdef LIBRW
#define EXTENDED_COLOURFILTER // more options for colour filter (replaces mblur) // #define EXTENDED_COLOURFILTER // more options for colour filter (replaces mblur)
#define EXTENDED_PIPELINES // custom render pipelines (includes Neo) // #define EXTENDED_PIPELINES // custom render pipelines (includes Neo)
#define SCREEN_DROPLETS // neo water droplets // #define SCREEN_DROPLETS // neo water droplets
#define NEW_RENDERER // leeds-like world rendering, needs librw // #define NEW_RENDERER // leeds-like world rendering, needs librw
#endif #endif
#define FIX_SPRITES // fix sprites aspect ratio(moon, coronas, particle etc) #define FIX_SPRITES // fix sprites aspect ratio(moon, coronas, particle etc)
@ -444,9 +444,9 @@ static_assert(false, "SUPPORT_XBOX_SCRIPT and SUPPORT_MOBILE_SCRIPT are mutually
#define RADIO_SCROLL_TO_PREV_STATION // Won't work without FIX_BUGS #define RADIO_SCROLL_TO_PREV_STATION // Won't work without FIX_BUGS
#define AUDIO_CACHE // cache sound lengths to speed up the cold boot #define AUDIO_CACHE // cache sound lengths to speed up the cold boot
#define PS2_AUDIO_CHANNELS // increases the maximum number of audio channels to PS2 value of 43 (PC has 28 originally) #define PS2_AUDIO_CHANNELS // increases the maximum number of audio channels to PS2 value of 43 (PC has 28 originally)
#define PS2_AUDIO_PATHS // changes audio paths for cutscenes and radio to PS2 paths (needs vbdec on MSS builds) // #define PS2_AUDIO_PATHS // changes audio paths for cutscenes and radio to PS2 paths (needs vbdec on MSS builds)
//#define AUDIO_OAL_USE_SNDFILE // use libsndfile to decode WAVs instead of our internal decoder //#define AUDIO_OAL_USE_SNDFILE // use libsndfile to decode WAVs instead of our internal decoder
#define AUDIO_OAL_USE_MPG123 // use mpg123 to support mp3 files // #define AUDIO_OAL_USE_MPG123 // use mpg123 to support mp3 files
#define PAUSE_RADIO_IN_FRONTEND // pause radio when game is paused #define PAUSE_RADIO_IN_FRONTEND // pause radio when game is paused
#define ATTACH_RELEASING_SOUNDS_TO_ENTITIES // sounds would follow ped and vehicles coordinates if not being queued otherwise #define ATTACH_RELEASING_SOUNDS_TO_ENTITIES // sounds would follow ped and vehicles coordinates if not being queued otherwise
#define USE_TIME_SCALE_FOR_AUDIO // slow down/speed up sounds according to the speed of the game #define USE_TIME_SCALE_FOR_AUDIO // slow down/speed up sounds according to the speed of the game
@ -467,15 +467,15 @@ static_assert(false, "SUPPORT_XBOX_SCRIPT and SUPPORT_MOBILE_SCRIPT are mutually
// Streaming // Streaming
#if !defined(_WIN32) && !defined(__SWITCH__) #if !defined(_WIN32) && !defined(__SWITCH__)
//#define ONE_THREAD_PER_CHANNEL // Don't use if you're not on SSD/Flash - also not utilized too much right now(see commented LoadAllRequestedModels in Streaming.cpp) //#define ONE_THREAD_PER_CHANNEL // Don't use if you're not on SSD/Flash - also not utilized too much right now(see commented LoadAllRequestedModels in Streaming.cpp)
#define FLUSHABLE_STREAMING // Make it possible to interrupt reading when processing file isn't needed anymore. // #define FLUSHABLE_STREAMING // Make it possible to interrupt reading when processing file isn't needed anymore.
#endif #endif
#define BIG_IMG // Not complete - allows to read larger img files #define BIG_IMG // Not complete - allows to read larger img files
//#define SQUEEZE_PERFORMANCE #define SQUEEZE_PERFORMANCE
#ifdef SQUEEZE_PERFORMANCE #ifdef SQUEEZE_PERFORMANCE
#undef PS2_ALPHA_TEST #undef PS2_ALPHA_TEST
#undef NO_ISLAND_LOADING #undef NO_ISLAND_LOADING
#undef PS2_AUDIO_CHANNELS // #undef PS2_AUDIO_CHANNELS
#undef EXTENDED_OFFSCREEN_DESPAWN_RANGE #undef EXTENDED_OFFSCREEN_DESPAWN_RANGE
#endif #endif

View file

@ -574,7 +574,7 @@ RwBool RwEngineOpen(RwEngineOpenParams *initParams) {
return Engine::open(&openParams); return Engine::open(&openParams);
} }
RwBool RwEngineStart(void) { RwBool RwEngineStart(void) {
rw::d3d::isP8supported = false; // rw::d3d::isP8supported = false;
return Engine::start(); return Engine::start();
} }
RwBool RwEngineStop(void) { Engine::stop(); return true; } RwBool RwEngineStop(void) { Engine::stop(); return true; }
@ -752,6 +752,7 @@ RwInt32 RpClumpGetNumAtomics(RpClump * clump) { return clump->countAtomics(); }
//RwInt32 RpClumpGetNumLights(RpClump * clump); //RwInt32 RpClumpGetNumLights(RpClump * clump);
//RwInt32 RpClumpGetNumCameras(RpClump * clump); //RwInt32 RpClumpGetNumCameras(RpClump * clump);
RpClump *RpClumpStreamRead(RwStream * stream) { return rw::Clump::streamRead(stream); } RpClump *RpClumpStreamRead(RwStream * stream) { return rw::Clump::streamRead(stream); }
RwBool RpClumpStreamWrite(RpClump * clump, RwStream * stream) { return clump->streamWrite(stream); }
//RpClump *RpClumpStreamWrite(RpClump * clump, RwStream * stream); //RpClump *RpClumpStreamWrite(RpClump * clump, RwStream * stream);
RwInt32 RpClumpRegisterPlugin(RwInt32 size, RwUInt32 pluginID, RwPluginObjectConstructor constructCB, RwPluginObjectDestructor destructCB, RwPluginObjectCopy copyCB) RwInt32 RpClumpRegisterPlugin(RwInt32 size, RwUInt32 pluginID, RwPluginObjectConstructor constructCB, RwPluginObjectDestructor destructCB, RwPluginObjectCopy copyCB)
{ return Clump::registerPlugin(size, pluginID, constructCB, destructCB, (CopyConstructor)copyCB); } { return Clump::registerPlugin(size, pluginID, constructCB, destructCB, (CopyConstructor)copyCB); }
@ -806,7 +807,7 @@ RwBool RpWorldPluginAttach(void) {
registerMaterialRightsPlugin(); registerMaterialRightsPlugin();
// not sure if this goes here // not sure if this goes here
rw::xbox::registerVertexFormatPlugin(); // rw::xbox::registerVertexFormatPlugin();
return true; return true;
} }
@ -910,6 +911,7 @@ RpSkin *RpSkinGeometryGetSkin( RpGeometry *geometry ) { return Skin::get(geometr
RpAtomic *RpSkinAtomicSetHAnimHierarchy( RpAtomic *atomic, RpHAnimHierarchy *hierarchy ) { Skin::setHierarchy(atomic, hierarchy); return atomic; } RpAtomic *RpSkinAtomicSetHAnimHierarchy( RpAtomic *atomic, RpHAnimHierarchy *hierarchy ) { Skin::setHierarchy(atomic, hierarchy); return atomic; }
RpHAnimHierarchy *RpSkinAtomicGetHAnimHierarchy( const RpAtomic *atomic ) { return Skin::getHierarchy(atomic); } RpHAnimHierarchy *RpSkinAtomicGetHAnimHierarchy( const RpAtomic *atomic ) { return Skin::getHierarchy(atomic); }
#if 0
RwImage * RwImage *
RtBMPImageWrite(RwImage *image, const RwChar *imageName) RtBMPImageWrite(RwImage *image, const RwChar *imageName)
{ {
@ -982,6 +984,7 @@ RtPNGImageRead(const RwChar *imageName)
return rw::readPNG(imageName); return rw::readPNG(imageName);
#endif #endif
} }
#endif
#include "rtquat.h" #include "rtquat.h"

View file

@ -251,7 +251,7 @@ RwInt32 RpClumpGetNumLights(RpClump * clump);
RwInt32 RpClumpGetNumCameras(RpClump * clump); RwInt32 RpClumpGetNumCameras(RpClump * clump);
RwUInt32 RpClumpStreamGetSize(RpClump * clump); RwUInt32 RpClumpStreamGetSize(RpClump * clump);
RpClump *RpClumpStreamRead(RwStream * stream); RpClump *RpClumpStreamRead(RwStream * stream);
RpClump *RpClumpStreamWrite(RpClump * clump, RwStream * stream); RwBool RpClumpStreamWrite(RpClump * clump, RwStream * stream);
RwInt32 RpClumpRegisterPlugin(RwInt32 size, RwUInt32 pluginID, RwPluginObjectConstructor constructCB, RwPluginObjectDestructor destructCB, RwPluginObjectCopy copyCB); RwInt32 RpClumpRegisterPlugin(RwInt32 size, RwUInt32 pluginID, RwPluginObjectConstructor constructCB, RwPluginObjectDestructor destructCB, RwPluginObjectCopy copyCB);
RwInt32 RpClumpRegisterPluginStream(RwUInt32 pluginID, RwPluginDataChunkReadCallBack readCB, RwPluginDataChunkWriteCallBack writeCB, RwPluginDataChunkGetSizeCallBack getSizeCB); RwInt32 RpClumpRegisterPluginStream(RwUInt32 pluginID, RwPluginDataChunkReadCallBack readCB, RwPluginDataChunkWriteCallBack writeCB, RwPluginDataChunkGetSizeCallBack getSizeCB);
RwInt32 RpClumpSetStreamAlwaysCallBack(RwUInt32 pluginID, RwPluginDataChunkAlwaysCallBack alwaysCB); RwInt32 RpClumpSetStreamAlwaysCallBack(RwUInt32 pluginID, RwPluginDataChunkAlwaysCallBack alwaysCB);

View file

@ -64,6 +64,7 @@ void FlushObrsPrintfs()
#endif #endif
} }
#if !defined(DC_TEXCONV)
void void
DefinedState(void) DefinedState(void)
{ {
@ -95,6 +96,10 @@ DefinedState(void)
RwD3D8SetRenderState(D3DRS_ALPHAREF, 2); RwD3D8SetRenderState(D3DRS_ALPHAREF, 2);
#endif #endif
} }
#else
void
DefinedState(void) { assert(false); }
#endif
void void
SetCullMode(uint32 mode) SetCullMode(uint32 mode)
@ -321,6 +326,7 @@ HAnimAnimationCreateForHierarchy(RpHAnimHierarchy *hier)
return anim; return anim;
} }
#if !defined(DC_TEXCONV)
void void
RenderSkeleton(RpHAnimHierarchy *hier) RenderSkeleton(RpHAnimHierarchy *hier)
{ {
@ -347,6 +353,10 @@ RenderSkeleton(RpHAnimHierarchy *hier)
par = stack[--sp]; par = stack[--sp];
} }
} }
#else
void
RenderSkeleton(RpHAnimHierarchy *hier) { assert(false); }
#endif
RwBool Im2DRenderQuad(RwReal x1, RwReal y1, RwReal x2, RwReal y2, RwReal z, RwReal recipCamZ, RwReal uvOffset) RwBool Im2DRenderQuad(RwReal x1, RwReal y1, RwReal x2, RwReal y2, RwReal z, RwReal recipCamZ, RwReal uvOffset)
@ -467,6 +477,7 @@ RpClump *RpClumpGetBoundingSphere(RpClump *clump, RwSphere *sphere, bool useLTM)
return clump; return clump;
} }
#if !defined(DC_TEXCONV)
void void
CameraSize(RwCamera * camera, RwRect * rect, CameraSize(RwCamera * camera, RwRect * rect,
RwReal viewWindow, RwReal aspectRatio) RwReal viewWindow, RwReal aspectRatio)
@ -620,6 +631,11 @@ CameraSize(RwCamera * camera, RwRect * rect,
return; return;
} }
#else
void
CameraSize(RwCamera * camera, RwRect * rect,
RwReal viewWindow, RwReal aspectRatio) { assert(false); }
#endif
void void
CameraDestroy(RwCamera *camera) CameraDestroy(RwCamera *camera)
@ -719,6 +735,7 @@ findPlatform(rw::Atomic *a)
return 0; return 0;
} }
#if !defined(DC_TEXCONV)
// Game doesn't read atomic extensions so we never get any other than the default pipe, // Game doesn't read atomic extensions so we never get any other than the default pipe,
// but we need it for uninstancing // but we need it for uninstancing
void void
@ -733,6 +750,10 @@ attachPipe(rw::Atomic *atomic)
RpMatFXAtomicEnableEffects(atomic); RpMatFXAtomicEnableEffects(atomic);
} }
} }
#else
void
attachPipe(rw::Atomic *atomic) { assert(false); }
#endif
// Attach pipes for the platform we have native data for so we can uninstance // Attach pipes for the platform we have native data for so we can uninstance
void void

View file

@ -30,6 +30,7 @@ RpClump *RpClumpGetBoundingSphere(RpClump *clump, RwSphere *sphere, bool useLTM)
RwTexDictionary *RwTexDictionaryGtaStreamRead(RwStream *stream); RwTexDictionary *RwTexDictionaryGtaStreamRead(RwStream *stream);
RwTexDictionary *RwTexDictionaryGtaStreamRead1(RwStream *stream); RwTexDictionary *RwTexDictionaryGtaStreamRead1(RwStream *stream);
RwTexDictionary *RwTexDictionaryGtaStreamRead2(RwStream *stream, RwTexDictionary *texDict); RwTexDictionary *RwTexDictionaryGtaStreamRead2(RwStream *stream, RwTexDictionary *texDict);
void RwTexDictionaryGtaStreamWrite(RwStream *stream, RwTexDictionary *texDict);
void ReadVideoCardCapsFile(uint32&, uint32&, uint32&, uint32&); void ReadVideoCardCapsFile(uint32&, uint32&, uint32&, uint32&);
bool CheckVideoCardCaps(void); bool CheckVideoCardCaps(void);
void WriteVideoCardCapsFile(void); void WriteVideoCardCapsFile(void);

View file

@ -71,6 +71,18 @@ destroyTexture(RwTexture *texture, void *data)
return texture; return texture;
} }
void
RwTexDictionaryGtaStreamWrite(RwStream *stream, RwTexDictionary *texDict) {
rw::writeChunkHeader(stream, rwID_STRUCT, 4);
stream->writeI32(texDict->count());
RwTexDictionaryForAllTextures(texDict, [](RwTexture *texture, void* vstream) {
RwTextureGtaStreamWrite((RwStream*)vstream, texture);
return texture;
}, stream);
}
RwTexDictionary* RwTexDictionary*
RwTexDictionaryGtaStreamRead(RwStream *stream) RwTexDictionaryGtaStreamRead(RwStream *stream)
{ {

View file

@ -113,8 +113,12 @@ CTxdStore::AddRef(int slot)
void void
CTxdStore::RemoveRef(int slot) CTxdStore::RemoveRef(int slot)
{ {
#if !defined(DC_TEXCONV)
if(--GetSlot(slot)->refCount <= 0) if(--GetSlot(slot)->refCount <= 0)
CStreaming::RemoveTxd(slot); CStreaming::RemoveTxd(slot);
#else
assert(false);
#endif
} }
void void
@ -123,6 +127,30 @@ CTxdStore::RemoveRefWithoutDelete(int slot)
GetSlot(slot)->refCount--; GetSlot(slot)->refCount--;
} }
void StoreTxd(RwTexDictionary *texDict, RwStream *stream) {
auto fheader = stream->tell();
// size will be written later
writeChunkHeader(stream, rwID_TEXDICTIONARY, 4);
auto fbegin = stream->tell();
RwTexDictionaryGtaStreamWrite(stream, texDict);
// rewrite header for correct length
auto fend = stream->tell();
stream->seek(fheader, 0);
writeChunkHeader(stream, rwID_TEXDICTIONARY, fend - fbegin);
stream->seek(fend, 0);
}
RwTexDictionary *
LoadTxd(RwStream *stream)
{
RwUInt32 len;
if(RwStreamFindChunk(stream, rwID_TEXDICTIONARY, &len, nil)){
return RwTexDictionaryGtaStreamRead(stream);
}
return nullptr;
}
bool bool
CTxdStore::LoadTxd(int slot, RwStream *stream) CTxdStore::LoadTxd(int slot, RwStream *stream)
{ {

View file

@ -140,6 +140,7 @@ CVisibilityPlugins::InsertAtomicIntoBoatSortedList(RpAtomic *a, float dist)
// probably have to fix fading for this so material alpha isn't overwritten // probably have to fix fading for this so material alpha isn't overwritten
#define VEHICLE_LODDIST_MULTIPLIER (TheCamera.GenerationDistMultiplier) #define VEHICLE_LODDIST_MULTIPLIER (TheCamera.GenerationDistMultiplier)
#if !defined(DC_TEXCONV)
void void
CVisibilityPlugins::SetRenderWareCamera(RwCamera *camera) CVisibilityPlugins::SetRenderWareCamera(RwCamera *camera)
{ {
@ -160,6 +161,10 @@ CVisibilityPlugins::SetRenderWareCamera(RwCamera *camera)
ms_pedLod1Dist = sq(60.0f * TheCamera.LODDistMultiplier); ms_pedLod1Dist = sq(60.0f * TheCamera.LODDistMultiplier);
ms_pedFadeDist = sq(70.0f * TheCamera.LODDistMultiplier); ms_pedFadeDist = sq(70.0f * TheCamera.LODDistMultiplier);
} }
#else
void
CVisibilityPlugins::SetRenderWareCamera(RwCamera *camera) { assert(false); }
#endif
static float DistToCameraSq; static float DistToCameraSq;
static float PitchToCamera; static float PitchToCamera;
@ -212,6 +217,7 @@ CVisibilityPlugins::RenderBoatAlphaAtomics(void)
SetCullMode(rwCULLMODECULLBACK); SetCullMode(rwCULLMODECULLBACK);
} }
#if !defined(DC_TEXCONV)
void void
CVisibilityPlugins::RenderFadingEntities(CLinkList<AlphaObjectInfo> &list) CVisibilityPlugins::RenderFadingEntities(CLinkList<AlphaObjectInfo> &list)
{ {
@ -244,6 +250,13 @@ CVisibilityPlugins::RenderFadingEntities(CLinkList<AlphaObjectInfo> &list)
RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, (void*)TRUE); RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, (void*)TRUE);
} }
} }
#else
void
CVisibilityPlugins::RenderFadingEntities(CLinkList<AlphaObjectInfo> &list)
{
assert(false);
}
#endif
void void
CVisibilityPlugins::RenderFadingEntities(void) CVisibilityPlugins::RenderFadingEntities(void)
@ -258,6 +271,7 @@ CVisibilityPlugins::RenderFadingUnderwaterEntities(void)
RenderFadingEntities(m_alphaUnderwaterEntityList); RenderFadingEntities(m_alphaUnderwaterEntityList);
} }
#if !defined(DC_TEXCONV)
RpAtomic* RpAtomic*
CVisibilityPlugins::RenderWheelAtomicCB(RpAtomic *atomic) CVisibilityPlugins::RenderWheelAtomicCB(RpAtomic *atomic)
{ {
@ -275,6 +289,10 @@ CVisibilityPlugins::RenderWheelAtomicCB(RpAtomic *atomic)
} }
return atomic; return atomic;
} }
#else
RpAtomic*
CVisibilityPlugins::RenderWheelAtomicCB(RpAtomic *atomic) { assert(false); }
#endif
RpAtomic* RpAtomic*
CVisibilityPlugins::RenderObjNormalAtomic(RpAtomic *atomic) CVisibilityPlugins::RenderObjNormalAtomic(RpAtomic *atomic)
@ -308,6 +326,7 @@ CVisibilityPlugins::RenderAlphaAtomic(RpAtomic *atomic, int alpha)
return atomic; return atomic;
} }
#if !defined(DC_TEXCONV)
RpAtomic* RpAtomic*
CVisibilityPlugins::RenderWeaponCB(RpAtomic *atomic) CVisibilityPlugins::RenderWeaponCB(RpAtomic *atomic)
{ {
@ -325,7 +344,12 @@ CVisibilityPlugins::RenderWeaponCB(RpAtomic *atomic)
RENDERCALLBACK(atomic); RENDERCALLBACK(atomic);
return atomic; return atomic;
} }
#else
RpAtomic*
CVisibilityPlugins::RenderWeaponCB(RpAtomic *atomic) { assert(false); }
#endif
#if !defined(DC_TEXCONV)
RpAtomic* RpAtomic*
CVisibilityPlugins::RenderFadingAtomic(RpAtomic *atomic, float camdist) CVisibilityPlugins::RenderFadingAtomic(RpAtomic *atomic, float camdist)
{ {
@ -362,6 +386,13 @@ CVisibilityPlugins::RenderFadingAtomic(RpAtomic *atomic, float camdist)
return atomic; return atomic;
} }
#else
RpAtomic*
CVisibilityPlugins::RenderFadingAtomic(RpAtomic *atomic, float camdist)
{
assert(false);
}
#endif
@ -649,6 +680,7 @@ CVisibilityPlugins::RenderVehicleTailRotorAlphaCB(RpAtomic *atomic)
return atomic; return atomic;
} }
#if !defined(DC_TEXCONV)
RpAtomic* RpAtomic*
CVisibilityPlugins::RenderPlayerCB(RpAtomic *atomic) CVisibilityPlugins::RenderPlayerCB(RpAtomic *atomic)
{ {
@ -657,6 +689,13 @@ CVisibilityPlugins::RenderPlayerCB(RpAtomic *atomic)
RENDERCALLBACK(atomic); RENDERCALLBACK(atomic);
return atomic; return atomic;
} }
#else
RpAtomic*
CVisibilityPlugins::RenderPlayerCB(RpAtomic *atomic)
{
assert(false);
}
#endif
RpAtomic* RpAtomic*
CVisibilityPlugins::RenderPedCB(RpAtomic *atomic) CVisibilityPlugins::RenderPedCB(RpAtomic *atomic)

View file

@ -9,10 +9,10 @@
*/ */
#include "common.h"
#include <cassert> #include <cassert>
#include <cstdint> #include <cstdint>
#include <cstring> #include <cstring>
#include <dc/matrix.h>
matrix_t XMTRX = { matrix_t XMTRX = {
{ 0.0f, 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f, 0.0f },

View file

@ -43,6 +43,7 @@ bool re3RemoveLeastUsedModel();
// #include "rwdcimpl.h" // #include "rwdcimpl.h"
#include <dc/pvr.h> #include <dc/pvr.h>
#include <dc/matrix.h>
#include "alloc.h" #include "alloc.h"
#undef PVR_TXRFMT_STRIDE #undef PVR_TXRFMT_STRIDE
@ -4304,7 +4305,7 @@ rasterFromImage(Raster* raster, Image* image)
std::vector<Color> imageData; std::vector<Color> imageData;
if (image->depth == 32) { if (image->depth == 32) {
assert(rasterFmt == Raster::C4444 || rasterFmt == Raster::C1555); assert(rasterFmt == Raster::C4444 || rasterFmt == Raster::C1555 || rasterFmt == Raster::C565 /* DXT compression */);
imageData = createImageFromData_ARGB8888(image->pixels, image->width, image->height, image->stride); imageData = createImageFromData_ARGB8888(image->pixels, image->width, image->height, image->stride);
} else if (image->depth == 24) { } else if (image->depth == 24) {
assert(rasterFmt == Raster::C565); assert(rasterFmt == Raster::C565);

View file

@ -10,7 +10,7 @@
#include "rwpipeline.h" #include "rwpipeline.h"
#include "rwobjects.h" #include "rwobjects.h"
#include "rwengine.h" #include "rwengine.h"
// #include "ps2/rwps2.h" #include "ps2-x/rwps2.h"
// #include "d3d/rwxbox.h" // #include "d3d/rwxbox.h"
// #include "d3d/rwd3d.h" // #include "d3d/rwd3d.h"
#include "d3d-x/rwd3d8.h" #include "d3d-x/rwd3d8.h"
@ -240,6 +240,7 @@ Engine::init(MemoryFunctions *memfuncs)
gl3::registerPlatformPlugins(); gl3::registerPlatformPlugins();
#else #else
#if defined(DC_TEXCONV) #if defined(DC_TEXCONV)
ps2::registerPlatformPlugins();
d3d8::registerPlatformPlugins(); d3d8::registerPlatformPlugins();
#endif #endif
dc::registerPlatformPlugins(); dc::registerPlatformPlugins();

View file

@ -10,7 +10,7 @@
#include "rwpipeline.h" #include "rwpipeline.h"
#include "rwobjects.h" #include "rwobjects.h"
#include "rwengine.h" #include "rwengine.h"
// #include "ps2/rwps2.h" #include "ps2-x/rwps2.h"
// #include "d3d-x/rwd3d.h" // #include "d3d-x/rwd3d.h"
// #include "d3d/rwxbox.h" // #include "d3d/rwxbox.h"
#include "d3d-x/rwd3d8.h" #include "d3d-x/rwd3d8.h"
@ -473,8 +473,6 @@ Texture::streamReadNative(Stream *stream)
uint32 platform = stream->readU32(); uint32 platform = stream->readU32();
stream->seek(-16); stream->seek(-16);
#if !defined(RW_DC) #if !defined(RW_DC)
if(platform == FOURCC_PS2)
return ps2::readNativeTexture(stream);
if(platform == PLATFORM_D3D8) if(platform == PLATFORM_D3D8)
return d3d8::readNativeTexture(stream); return d3d8::readNativeTexture(stream);
if(platform == PLATFORM_D3D9) if(platform == PLATFORM_D3D9)
@ -485,6 +483,8 @@ Texture::streamReadNative(Stream *stream)
return gl3::readNativeTexture(stream); return gl3::readNativeTexture(stream);
#else #else
#if defined(DC_TEXCONV) #if defined(DC_TEXCONV)
if(platform == FOURCC_PS2)
return ps2::readNativeTexture(stream);
if(platform == PLATFORM_D3D8) if(platform == PLATFORM_D3D8)
return d3d8::readNativeTexture(stream); return d3d8::readNativeTexture(stream);
#endif #endif