Files
CydandClaude Opus 4.8 3b8b729ecb Add complete game working copy under assets/ (runtime data + binaries)
Imports the full shipped working copy of Red Planet v4.10 so the repo is
self-contained: buildable (source) and runnable (data). ~110 MB, committed
directly to git per project decision.

Contents (assets/RP411/):
- AUDIO/  (~97 MB) 223 .wav + audio config/res
- VIDEO/  (~10 MB) .X meshes, .SKL/.det/.sph geometry, .met materials,
          .pcc/.png/.pcx textures, .vsh/.psh shaders, material tables
- GAUGE/  (~0.8 MB) HUD .GIM images, .PCC/.PCX bitmaps, gauge config
- SPOOLS/ runtime replay output dir (kept via .gitkeep)
- Root config/launch: environ.ini, RPDPL.INI, JOYSTICK.INI, TEST.EGG,
  RPL4.RES, *.bat launchers
- Runtime binaries: rpl4opt.exe (shipped reference build), libsndfile-1.dll,
  oalinst.exe (OpenAL redist installer), sleep.exe

Housekeeping:
- .gitignore: re-include assets/**/*.exe and *.dll (global rules skip them);
  keep Thumbs.db and runtime *.spl out.
- .gitattributes: mark asset media (.wav/.png/.pcc/.gim/.x/.skl/... ) binary.
- docs/ASSETS.md: runtime layout, config chain (environ.ini -> RPDPL.INI ->
  video/audio/gauge paths), launch args, and per-directory asset inventory.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-01 10:11:47 -05:00

233 lines
6.2 KiB
INI

//
// New format INI file to handle day or night (uses definitions from old
// arenday.ini and arennite.ini files
//
// Note that compare and branch statements support matching with wildcards (*)
// of multiple arguments ie:
//
// compare=location,time,scenario
// branch=arena1,day,*,arena_defaults
// branch=arctic,*,*,arena_defaults
//
// All munga/renderer settings on the page are processed first,
// then all the include pages are visited, finally the compare/branch is
// evaluated. There can be only one compare per page, as many branches as you
// like. The branches are tested in the order they appear, the first branch
// that matches will be the one taken, the rest will be ignored. ANY page may
// contain compare/branch statements.
//
// Compare currently knows about location, weather, time and scenario. Any
// or all of these can be used in any order.
//
// GOTCHA: because of some internal restrictions, all light= statements must
// appear on one page. Several pages may contain light= statements, but if the
// branching structure of the INI file causes it to visit two pages containing
// light= statements, an error will result. The ambient= setting should also
// appear only once for the time being.
//
// BE AWARE: That it is ok to have various settings get encountered twice, the
// last one encountered will be the one that sticks. So it is possible to
// define defaults at the top of an INI file that will be overridden lower
// down in the branching structure.
//
// This is the main page, where the INI reader will always start.
[main]
debug=False
include=dpl_defaults
compare=location,time
//
branch=*,day,day_dpl_default
branch=*,night,night_dpl_default
//
branch=*,*,day_dpl_defaults
//------------------------------------------------------------------------------
// Default settings page, this insures that all required dpl settings will be
// made so the program will run ok. All these settings can be overridden later
// in the load process.
//------------------------------------------------------------------------------
[dpl_defaults]
objectpath=.\video
materialpath=.\video
texmappath=.\video
viewangle=40.0
clip=0.25 5000.0
[day_dpl_default]
backgnd=0.4 0.6 0.8
ambient=0.42150 0.41550 0.4102050
light = 0.880 0.876870 0.876870 220.0 30.0 0.0
clouds= 0.55 0.2 0.05
cloudemit= 1.0 0.3 0.0
include=effects
compare=weather
branch=clear,dayclear
branch=fog,dayfog
branch=soup,daysoup
[night_dpl_default]
backgnd=0.4 0.6 0.8
//ambient=0.2150 0.1550 0.2102050
//light = 0.70 0.4 0.8 220.0 30.0 0.0
include=effects
compare=weather
branch=clear,niteclear
branch=fog,nitefog
branch=soup,nitesoup
//nosearchlightfog=5.0 400.0 0.1 0.07 0.15
ambient=0.3 0.36 0.42
light=0.1 0.08 0.36 -50 10 0
clouds= 0.0726175 0.0726175 0.464706
cloudemit = 0.1 0.1 0.1
[dayclear]
fog=-150.0 475.0 0.2528 0.155110431 0.110202
[dayfog]
fog=-100.0 375.0 0.2528 0.155110431 0.110202
[daysoup]
fog=-100.0 250.0 0.2528 0.155110431 0.110202
[niteclear]
//fog=120.0 600.0 0.08 0.05 0.01
fog=-120.0 475.0 0.1 0.07 0.15
[nitefog]
//fog=-300.0 400.0 0.08 0.05 0.01
fog=25.0 400.0 0.294118 0.294118 0.294118
[nitesoup]
fog=-150.0 225.0 0.294118 0.294118 0.294118
[effects]
effect=booster smoke
effect=scrape sparks
effect=crash effect
effect=demoboom
effect=demoburn
[booster smoke]
id=0
version=2
// texture (left, top, right, bottom)
texbounds=0.07325 0.07325 0.42675 0.42675
rotate=1
size=2.0
velocity=2.0
color=0.0 100 255 70 0
color=0.3 100 255 200 200
color=0.5 050 255 255 255
color=1.0 000 255 255 255
gravity=0.0
varianceX=0.152
varianceY=0.152
varianceZ=0.152
count=3
life=3.0
[scrape sparks]
id=1
version=2
// texture (left, top, right, bottom)
texbounds=0.0 0.5 0.5 1.0
rotate=0
size=0.10
velocity=4.0
color=0 255 255 255 255
color=0.85 255 255 200 30
color=0.9 128 255 130 0
color=0.95 64 255 0 0
color=1 32 180 0 0
gravity=-15.0
count=6
life=1
[crash effect]
id=6
version=2
// texture (left, top, right, bottom)
texbounds=0.07325 0.07325 0.42675 0.42675
rotate=1
size=4.0
velocity=3.0
color=0.0 100 255 70 0
color=0.3 100 255 255 255
color=0.5 050 255 255 255
color=1.0 000 255 255 255
gravity=1.5
varianceX=0.152
varianceY=0.152
varianceZ=0.152
count=10
life=3.0
[demoboom]
id=0
independent=1
version=2
// texture (left, top, right, bottom)
texbounds=0.07325 0.07325 0.42675 0.42675
rotate=1
size=0.5
velocity=5.0
color=0.0 100 255 70 0
color=0.9 080 255 70 0
color=1.0 000 255 255 255
gravity=0
varianceX=0.152
varianceY=0.152
varianceZ=0.152
count=20
life=3.0
maxIssue=65
releasePeriod=0.5
duration=1.0
[demoburn]
id=1
independent=1
version=2
// texture (left, top, right, bottom)
texbounds=0.07325 0.07325 0.42675 0.42675
rotate=1
size=0.8
velocity=0.5
color=0.0 100 255 0 0
color=0.8 080 255 200 0
color=1.0 000 255 255 255
gravity=5.0
varianceX=0.352
varianceY=0.352
varianceZ=0.352
count=2
life=4.5
maxIssue=65
releasePeriod=0.1
duration=7
[comments]
# code type velocity y-off green varience cool count
# texture size bias red blue grav ocool reps
//SPECIALFX 0 intA_tex 0 1.10 36.00 0.9 -3.0 0.999 0.950 0.950 0.070 30.0 0.96 0.013 12 1
//SPECIALFX 1 NOTEXT 2 0.00 31.00 0.5 -3.0 2.699 1.50 1.000 0.50 30.0 0.91 0.013 12 1
//SPECIALFX 2 intA_tex 2 3.10 1.10 2.8 -3.0 2.100 0.70 0.300 0.100 1.8 0.94 0.035 3 1
//SPECIALFX 3 intA_tex 0 3.80 36.00 0.9 -3.0 0.200 0.200 0.200 0.20 40.0 0.9 0.013 12 1
//SPECIALFX 4 intA_tex 2 4.30 3.10 1.7 -3.0 1.800 0.500 0.300 0.200 2.7 0.85 0.013 3 1
//SPECIALFX 5 intA_tex 2 4.30 3.40 2.4 -3.0 1.300 0.400 0.200 0.200 2.5 0.94 0.013 3 1
//SPECIALFX 6 intA_tex 1 4.10 4.80 4.1 -3.0 1.900 1.500 1.500 0.200 8.1 0.96 0.013 3 1
//SPECIALFX 7 intA_tex 1 4.10 4.50 2.9 -3.0 1.900 0.990 0.980 0.970 3.0 0.97 0.013 3 1
//SPECIALFX 8 intA_tex 2 7.05 3.20 4.0 -15.0 1.200 0.50 0.20 1.20 3.0 0.982 0.013 3 8000
//SPECIALFX 9 intA_tex 1 4.30 2.30 5.9 -15.0 2.900 1.90 1.20 0.60 3.0 0.99 0.013 3 60
//SPECIALFX 10 NOTEXT 2 0.00 21.00 0.1 -3.0 2.699 1.50 1.000 0.50 30.0 0.91 0.037 12 10
// type 0 == poly
// type 1 == sphere
// type 2 == cooked sphere
// ( sfx_code, dpl_TEXTURE, bang_type, frag_size, frag_velocity,
// vertical_bias, switch_off, cook_r, cook_g, cook_b,
// variance, gravity, cool, ocool, fragments, repetitions );