first
Some checks failed
Linux / Build Linux (push) Has been cancelled
Linux / Build Linux-1 (push) Has been cancelled
macOS / Build macOS (push) Has been cancelled
macOS / Build macOS-1 (push) Has been cancelled
Windows (MinGW) / Build MinGW (push) Has been cancelled
Windows (MinGW) / Build MinGW-1 (push) Has been cancelled
Windows (MSVC) / Build Windows (push) Has been cancelled
Windows (MSVC) / Build Windows-1 (push) Has been cancelled

This commit is contained in:
saarsena@gmail.com 2026-03-24 10:46:22 -04:00
commit 8269b17aa7
652 changed files with 273930 additions and 0 deletions

18
Misc/qs_pak/Makefile Normal file
View file

@ -0,0 +1,18 @@
INPUT := gfx/conback.lmp \
maps/e1m1@c49d.ent \
maps/e1m2@0caa.ent \
maps/e1m4@958e.ent \
maps/e2m2@fbfe.ent \
maps/e2m3@237a.ent \
maps/e2m7@10a8.ent \
default.cfg
OUTPUT := quakespasm.pak
$(OUTPUT): $(INPUT)
./mkpak.sh $(INPUT) > $(OUTPUT)
.PHONY: clean
clean:
rm -f $(OUTPUT)

118
Misc/qs_pak/default.cfg Normal file
View file

@ -0,0 +1,118 @@
//
// load keybindings
//
// commands with a leading + will also be called for key up events with
// the + changed to a -
unbindall
//
// character controls
//
bind ALT +strafe
bind , +moveleft
bind a +moveleft
bind . +moveright
bind d +moveright
bind DEL +lookdown
bind PGDN +lookup
bind END centerview
bind e +moveup
bind c +movedown
bind SHIFT +speed
bind CTRL +attack
bind UPARROW +forward
bind w +forward
bind DOWNARROW +back
bind s +back
bind LEFTARROW +left
bind RIGHTARROW +right
bind SPACE +jump
//bind ENTER +jump
bind TAB +showscores
bind 1 "impulse 1"
bind 2 "impulse 2"
bind 3 "impulse 3"
bind 4 "impulse 4"
bind 5 "impulse 5"
bind 6 "impulse 6"
bind 7 "impulse 7"
bind 8 "impulse 8"
bind 0 "impulse 0"
bind / "impulse 10" // change weapon
bind MWHEELDOWN "impulse 10"
bind MWHEELUP "impulse 12"
// zoom
alias zoom_in "sensitivity 2;fov 90;wait;fov 70;wait;fov 50;wait;fov 30;wait;fov 10;wait;fov 5;bind F11 zoom_out"
alias zoom_out "sensitivity 4;fov 5;wait;fov 10;wait;fov 30;wait;fov 50;wait;fov 70;wait;fov 90;bind F11 zoom_in; sensitivity 3"
bind F11 zoom_in
// Function keys
bind F1 "help"
bind F2 "menu_save"
bind F3 "menu_load"
bind F4 "menu_options"
bind F5 "menu_multiplayer"
bind F6 "echo Quicksaving...; wait; save quick"
bind F9 "echo Quickloading...; wait; load quick"
bind F10 "quit"
bind F12 "screenshot"
// mouse options
bind \ +mlook
//
// client environment commands
//
bind PAUSE "pause"
bind ESCAPE "togglemenu"
bind ~ "toggleconsole"
bind ` "toggleconsole"
bind t "messagemode"
bind + "sizeup"
bind = "sizeup"
bind - "sizedown"
bind INS +klook
//
// mouse buttons
//
bind MOUSE1 +attack
//bind MOUSE2 +forward
bind MOUSE2 +jump
//bind MOUSE3 +mlook
//
// game controller
//
bind LSHOULDER "impulse 12"
bind RSHOULDER "impulse 10"
bind LTRIGGER +jump
bind RTRIGGER +attack
//
// default cvars
//
gamma 1.0
volume 0.7
sensitivity 3
//viewsize 100
viewsize 110
scr_conscale 1.6
scr_menuscale 1.6
scr_sbarscale 1.6
// default to mouse-look enabled
+mlook

View file

@ -0,0 +1,76 @@
--- default.cfg~
+++ default.cfg
@@ -12,24 +12,26 @@
bind ALT +strafe
bind , +moveleft
+bind a +moveleft
bind . +moveright
+bind d +moveright
bind DEL +lookdown
bind PGDN +lookup
bind END centerview
-bind z +lookdown
-bind a +lookup
-bind d +moveup
+bind e +moveup
bind c +movedown
bind SHIFT +speed
bind CTRL +attack
bind UPARROW +forward
+bind w +forward
bind DOWNARROW +back
+bind s +back
bind LEFTARROW +left
bind RIGHTARROW +right
bind SPACE +jump
-bind ENTER +jump
+//bind ENTER +jump
bind TAB +showscores
@@ -45,6 +47,8 @@
bind 0 "impulse 0"
bind / "impulse 10" // change weapon
+bind MWHEELDOWN "impulse 10"
+bind MWHEELUP "impulse 12"
// zoom
alias zoom_in "sensitivity 2;fov 90;wait;fov 70;wait;fov 50;wait;fov 30;wait;fov 10;wait;fov 5;bind F11 zoom_out"
@@ -85,14 +89,30 @@
// mouse buttons
//
bind MOUSE1 +attack
-bind MOUSE2 +forward
-bind MOUSE3 +mlook
+//bind MOUSE2 +forward
+bind MOUSE2 +jump
+//bind MOUSE3 +mlook
+
+//
+// game controller
+//
+bind LSHOULDER "impulse 12"
+bind RSHOULDER "impulse 10"
+bind LTRIGGER +jump
+bind RTRIGGER +attack
//
// default cvars
//
-viewsize 100
gamma 1.0
volume 0.7
sensitivity 3
+//viewsize 100
+viewsize 110
+scr_conscale 1.6
+scr_menuscale 1.6
+scr_sbarscale 1.6
+
+// default to mouse-look enabled
++mlook

BIN
Misc/qs_pak/gfx/conback.lmp Normal file

Binary file not shown.

View file

@ -0,0 +1,18 @@
--- e1m1.ent
+++ e1m1@c49d.ent
@@ -715,14 +715,15 @@
{
"classname" "func_door"
"targetname" "t4"
"angle" "-2"
"spawnflags" "1"
"sounds" "2"
"model" "*15"
+"lip" "7" // svdijk -- added to prevent z-fighting
}
{
"classname" "trigger_multiple"
"target" "t4"
"health" "1"
"model" "*16"
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,28 @@
--- e1m2.ent
+++ e1m2@0caa.ent
@@ -1567,23 +1567,23 @@
{
"light" "200"
"origin" "-612 -500 548"
"classname" "light"
}
{
"classname" "func_door"
-"angle" "90"
+"angle" "91" // svdijk -- changed to prevent z-fighting (was "90")
"targetname" "t110"
"wait" "-1"
"model" "*33"
}
{
"sounds" "3"
"classname" "func_door"
-"angle" "270"
+"angle" "269" // svdijk -- changed to prevent z-fighting (was "270")
"wait" "-1"
"model" "*34"
}
{
"classname" "trigger_once"
"target" "t110"
"model" "*35"

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,30 @@
--- e1m4.ent
+++ e1m4@958e.ent
@@ -2143,12 +2143,13 @@
{
"classname" "func_door_secret"
"angle" "0"
"spawnflags" "1"
"targetname" "t91"
"model" "*53"
+"t_length" "73" // svdijk -- added to prevent z-fighting
}
{
"classname" "func_button"
"angle" "-2"
"wait" "-1"
"target" "t92"
@@ -2202,12 +2203,13 @@
{
"spawnflags" "3"
"angle" "0"
"classname" "func_door_secret"
"targetname" "t91"
"model" "*60"
+"t_length" "73" // svdijk -- added to prevent z-fighting
}
{
"light" "150"
"origin" "680 -256 1144"
"classname" "light"
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,54 @@
--- e2m2.ent
+++ e2m2@fbfe.ent
@@ -908,20 +908,21 @@
{
"classname" "func_door"
"angle" "-2"
"spawnflags" "33"
"speed" "10"
"sounds" "3"
"wait" "-1"
"targetname" "t16"
"dmg" "100"
"model" "*13"
+"lip" "7" // svdijk -- added to prevent z-fighting
}
{
"sounds" "3"
"classname" "func_door"
"angle" "90"
"spawnflags" "2056"
"wait" "-1"
"model" "*14"
}
{
@@ -1423,27 +1424,27 @@
{
"target" "t39"
"targetname" "t40"
"origin" "-216 280 104"
"classname" "path_corner"
}
{
"target" "t40"
"targetname" "t38"
"classname" "path_corner"
-"origin" "-16 280 104"
+"origin" "-15 280 104" // svdijk -- changed to prevent z-fighting (was "-16 280 104")
}
{
"target" "t38"
"wait" "-1"
"targetname" "t39"
-"origin" "-16 280 104"
+"origin" "-15 280 104" // svdijk -- changed to prevent z-fighting (was "-16 280 104")
"classname" "path_corner"
}
{
"angle" "180"
"origin" "680 1472 24"
"classname" "monster_ogre"
"spawnflags" "256"
}
{
"spawnflags" "256"

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,74 @@
--- e2m3.ent
+++ e2m3@237a.ent
@@ -1226,21 +1226,23 @@
{
"classname" "func_door"
"angle" "-2"
"spawnflags" "1"
"targetname" "t11"
"wait" "10"
"model" "*25"
+"lip" "7" // svdijk -- added to prevent z-fighting
}
{
"classname" "func_door_secret"
"angle" "90"
"spawnflags" "8"
"targetname" "t11"
"model" "*26"
+"t_length" "65" // svdijk -- added to prevent z-fighting
}
{
"classname" "light"
"origin" "1248 -288 312"
"light" "150"
}
{
@@ -1907,14 +1909,15 @@
}
{
"classname" "func_door_secret"
"spawnflags" "2051"
"targetname" "t36"
"angle" "90"
"model" "*37"
+"t_length" "65" // svdijk -- added to prevent z-fighting
}
{
"classname" "light"
"origin" "-1288 640 -80"
"light" "160"
}
{
@@ -1939,14 +1942,15 @@
}
{
"classname" "func_door_secret"
"targetname" "t36"
"angle" "270"
"spawnflags" "2049"
"model" "*38"
+"t_length" "65" // svdijk -- added to prevent z-fighting
}
{
"classname" "item_armor2"
"origin" "1128 600 -176"
"spawnflags" "1024"
}
{
@@ -2643,14 +2647,15 @@
}
{
"classname" "func_door_secret"
"angle" "180"
"spawnflags" "2"
"targetname" "t41"
"model" "*66"
+"t_length" "65" // svdijk -- added to prevent z-fighting
}
{
"classname" "trigger_multiple"
"target" "t41"
"model" "*67"
}
{

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,22 @@
--- e2m7.ent
+++ e2m7@10a8.ent
@@ -1449,18 +1449,19 @@
{
"targetname" "t119"
"classname" "func_door"
"wait" "-1"
"angle" "-1"
"speed" "30"
"message" "Go for a swim first..."
"sounds" "3"
"model" "*40"
+"origin" "-1 0 0" // svdijk -- added to prevent z-fighting
}
{
"classname" "func_button"
"angle" "0"
"wait" "-1"
"target" "t45"
"model" "*41"
}
{

File diff suppressed because it is too large Load diff

131
Misc/qs_pak/mkpak.sh Executable file
View file

@ -0,0 +1,131 @@
#!/bin/sh
#
# Copyright (c) 2014, Sander van Dijk <a.h.vandijk@gmail.com>
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
error() {
echo "$(basename "$0"): $*" >&2
exit 1
}
assert_valid_stdout() {
if test -t 1
then
error "Usage: $(basename "$0") [file ...] > output.pak"
fi
}
assert_valid_file() {
if test ! -e "$1"
then
error "$1: No such file"
fi
if test ! -f "$1"
then
error "$f: Not a regular file"
fi
if test ! -r "$1"
then
error "$1: Permission denied"
fi
if test $(printf '%s' "$1" | wc -c) -gt 55
then
error "$1: Name too long"
fi
}
assert_valid_int32() {
if test $1 -lt -2147483648 -o $1 -gt 2147483647
then
error "Too much data"
fi
}
octal() {
printf '%o' $1
}
byte() {
printf '%b' "\\0$(octal $1)"
}
little_endian_uint32() {
byte $(expr $1 % 256)
byte $(expr $1 / 256 % 256)
byte $(expr $1 / 65536 % 256)
byte $(expr $1 / 16777216 % 256)
}
little_endian_int32() {
if test $1 -lt 0
then
little_endian_uint32 $(expr $1 + 4294967296)
else
little_endian_uint32 $1
fi
}
zero_padding() {
if test $1 -lt 1
then
return
fi
byte 0
zero_padding $(expr $1 - 1)
}
header() {
printf '%s' PACK
little_endian_int32 $1
little_endian_int32 $2
}
directory_entry() {
printf '%s' "$1"
zero_padding $(expr 56 - $(printf '%s' "$1" | wc -c))
little_endian_int32 $2
little_endian_int32 $3
}
assert_valid_stdout
directory_offset=12
directory_size=0
for file in "$@"
do
assert_valid_file "$file"
file_offset=$directory_offset
assert_valid_int32 $file_offset
file_size=$(wc -c < "$file")
assert_valid_int32 $file_size
directory_offset=$(expr $directory_offset + $file_size)
assert_valid_int32 $directory_offset
directory_size=$(expr $directory_size + 64)
assert_valid_int32 $directory_size
done
header $directory_offset $directory_size
for file in "$@"
do
cat "$file"
done
file_offset=12
for file in "$@"
do
file_size=$(wc -c < "$file")
directory_entry "$file" $file_offset $file_size
file_offset=$(expr $file_offset + $file_size)
done