Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
bfc8094
initial gui
PieterVdc Oct 23, 2025
1094a47
add select screen
PieterVdc Oct 23, 2025
9c9d1d4
move mp maps to seperate folder
PieterVdc Oct 23, 2025
ebb04a0
display correct list of mpmappacks
PieterVdc Oct 25, 2025
d3e2e80
.
PieterVdc Oct 25, 2025
2ef0877
first kinda functional
PieterVdc Oct 26, 2025
914dcec
auto change pack for other player as well
PieterVdc Oct 26, 2025
6a83544
Merge branch 'master' into pr/4318
Loobinex Oct 30, 2025
02be776
Merge remote-tracking branch 'upstream/master' into mp_mappacks
PieterVdc Oct 30, 2025
6ae7202
Merge branch 'mp_mappacks' of https://github.com/PieterVdc/keeperfx i…
PieterVdc Oct 30, 2025
8b7a989
Merge branch 'master' into mp_mappacks
PieterVdc Nov 5, 2025
cc7d079
Merge remote-tracking branch 'upstream/master' into mp_mappacks
PieterVdc Nov 9, 2025
628fac8
Merge branch 'mp_mappacks' of https://github.com/PieterVdc/keeperfx i…
PieterVdc Nov 9, 2025
f473898
set a default selected mappack
PieterVdc Nov 9, 2025
83f0f22
add seperate lobby name
PieterVdc Nov 9, 2025
bb6a05b
Merge remote-tracking branch 'upstream/master' into mp_mappacks
PieterVdc Nov 23, 2025
35f941f
Merge remote-tracking branch 'upstream/master' into mp_mappacks
PieterVdc Nov 29, 2025
713a406
Update front_network.c
PieterVdc Nov 29, 2025
ccba796
Update front_network.c
PieterVdc Nov 29, 2025
d268b3c
Merge branch 'master' into mp_mappacks
PieterVdc Dec 1, 2025
2d6e795
Merge remote-tracking branch 'upstream/master' into mp_mappacks
PieterVdc Dec 13, 2025
280e720
Merge remote-tracking branch 'upstream/master' into mp_mappacks
PieterVdc Dec 14, 2025
267f0e2
Merge branch 'master' into mp_mappacks
PieterVdc Jan 13, 2026
37e9f62
Merge branch 'mp_mappacks' of https://github.com/PieterVdc/keeperfx i…
PieterVdc Feb 3, 2026
d8c4e26
Merge remote-tracking branch 'upstream/master' into mp_mappacks
PieterVdc Feb 3, 2026
1d1dabc
Update front_network.c
PieterVdc Feb 3, 2026
71ea7e8
use new instachatr instead
PieterVdc Feb 3, 2026
aaaf22f
fix switching packs
PieterVdc Feb 3, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
111 changes: 0 additions & 111 deletions campgns/keeporig.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,6 @@ MEDIA_LOCATION = ldata
; Single player level numbers, and bonus levels for 'Reveal hidden land' boxes
SINGLE_LEVELS = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
BONUS_LEVELS = 0 0 0 0 0 0 0 100 101 0 0 0 0 0 102 0 103 104 0 0
; Multiplayer level numbers (you may also define multiplayer levels using .LOF files)
MULTI_LEVELS = 50 51 52 53 54 60 61 62 63 64 70 71 72 73 74
; Extra levels: full moon, new moon
EXTRA_LEVELS = 105
; File which stores credits (located in land location folder)
Expand Down Expand Up @@ -354,112 +352,3 @@ ENSIGN_POS = 757 617
ENSIGN_ZOOM = 757 617
PLAYERS = 1
ENSIGN =

; Details about multiplayer levels

[map00050]
NAME_TEXT = Multiplayer 1
ENSIGN_POS = 820 618
ENSIGN_ZOOM = 820 618
PLAYERS = 2
ENSIGN =

[map00051]
NAME_TEXT = Multiplayer 2
ENSIGN_POS = 767 542
ENSIGN_ZOOM = 767 542
PLAYERS = 2
ENSIGN =

[map00052]
NAME_TEXT = Multiplayer 3
ENSIGN_POS = 703 616
ENSIGN_ZOOM = 703 616
PLAYERS = 2
ENSIGN =

[map00053]
NAME_TEXT = Multiplayer 4
ENSIGN_POS = 795 680
ENSIGN_ZOOM = 795 680
PLAYERS = 2
ENSIGN =

[map00054]
NAME_TEXT = Multiplayer 5
ENSIGN_POS = 879 654
ENSIGN_ZOOM = 879 654
PLAYERS = 2
ENSIGN =

[map00060]
NAME_TEXT = Multiplayer 6
ENSIGN_POS = 445 530
ENSIGN_ZOOM = 445 530
PLAYERS = 3
ENSIGN =

[map00061]
NAME_TEXT = Multiplayer 7
ENSIGN_POS = 453 594
ENSIGN_ZOOM = 453 594
PLAYERS = 3
ENSIGN =

[map00062]
NAME_TEXT = Multiplayer 8
ENSIGN_POS = 529 578
ENSIGN_ZOOM = 529 578
PLAYERS = 3
ENSIGN =

[map00063]
NAME_TEXT = Multiplayer 9
ENSIGN_POS = 433 706
ENSIGN_ZOOM = 433 706
PLAYERS = 3
ENSIGN =

[map00064]
NAME_TEXT = Multiplayer 10
ENSIGN_POS = 500 692
ENSIGN_ZOOM = 500 692
PLAYERS = 3
ENSIGN =

[map00070]
NAME_TEXT = Multiplayer 11
ENSIGN_POS = 520 385
ENSIGN_ZOOM = 520 385
PLAYERS = 4
ENSIGN =

[map00071]
NAME_TEXT = Multiplayer 12
ENSIGN_POS = 590 385
ENSIGN_ZOOM = 590 385
PLAYERS = 4
ENSIGN =

[map00072]
NAME_TEXT = Multiplayer 13
ENSIGN_POS = 634 405
ENSIGN_ZOOM = 634 405
PLAYERS = 4
ENSIGN =

[map00073]
NAME_TEXT = Multiplayer 14
ENSIGN_POS = 676 429
ENSIGN_ZOOM = 676 429
PLAYERS = 4
ENSIGN =

[map00074]
NAME_TEXT = Multiplayer 15
ENSIGN_POS = 664 357
ENSIGN_ZOOM = 664 357
PLAYERS = 4
ENSIGN =


14 changes: 14 additions & 0 deletions mpmaps/campgn_order.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#order of the campaigns, campaigns not in the list will be at the bottom alphabetically
keeporig.cfg
origplus.cfg
burdnimp.cfg
undedkpr.cfg
pstunded.cfg
lqizgood.cfg
revlord.cfg
ami2019.cfg
twinkprs.cfg
ancntkpr.cfg
postanck.cfg
dzjr06lv.cfg
jdkmaps8.cfg
215 changes: 215 additions & 0 deletions mpmaps/keeporig.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,215 @@
; KeeperFX campaign file
; Modify this file to create your own DK campaigns.

[common]
NAME = Dungeon Keeper original campaign
; Name of the campaign from the GUI text file. Remove or leave empty if unavailable.
NAME_TEXT_ID = 1011
; Folders storing data files for this campaign
LEVELS_LOCATION = mpmaps/keeporig
LAND_LOCATION = campgns/keeporig_lnd
; If you wish your campaign to have standard creatures, remove the blow line. If you have campaign
; specific creatures place them in a folder you define here.
CREATURES_LOCATION = levels/classic_crtr
; If you wish your campaign to have customized rules and other configs, define a new folder below.
; Remove the line to get KeeperFX standard rules, otherwise you'll get the classic rules.
CONFIGS_LOCATION = levels/classic_cfgs
; If you wish your campaign to have custom in-game speeches, movies, sounds or music you should set their location
MEDIA_LOCATION = ldata
; Single player level numbers, and bonus levels for 'Reveal hidden land' boxes
; Note that, for now, only up to 6 bonus levels is supported
SINGLE_LEVELS = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
BONUS_LEVELS = 0 0 0 0 0 0 0 100 101 0 0 0 0 0 102 0 103 104 0 0
; Multiplayer level numbers (you may also define multiplayer levels using .LOF files)
MULTI_LEVELS = 50 51 52 53 54 60 61 62 63 64 70 71 72 73 74
; Extra levels: full moon, new moon
EXTRA_LEVELS = 105
; File which stores credits (located in land location folder)
CREDITS = dkcredts.txt
; High score table parameters (num of entries and file name)
HIGH_SCORES = 9999 scr_dkpr.dat
; Land view at start and end of the game
LAND_VIEW_START = rgmap00 viframe00
LAND_VIEW_END = rgmap21 viframe21
; The sprites used for marking locations which can be clicked. ENSIGNS or PINPOINTS.
LAND_MARKERS = ENSIGNS
; Ambient sound samples - good and bad sound
LAND_AMBIENT = 189 190
; Intro and outro; note that the intro here is for campaign, not for whole game;
; the files should be placed in MEDIA_LOCATION folder
;INTRO_MOVIE =
OUTRO_MOVIE = outromix.smk
; Player number to use for human player in this campaing's levels.
; Valid values are: RED, BLUE, GREEN, YELLOW, WHITE, PURPLE, BLACK, ORANGE
HUMAN_PLAYER = RED
; Landview music. Can be a track number, or a filename in media location.
SOUNDTRACK = 2

; Text strings file used for ingame info messages and objectives (not for GUI)
; The file can contain up to 1024 strings, separated by null character.
; If there's no file for current language, then first entry is selected by default.
; If your campaign supports only one language, you may comment out all lines but one.
; If the campaign doesn't use custom strings file, then leave this section unchanged.
[strings]
ENG = fxdata/gtext_eng.dat
FRE = fxdata/gtext_fre.dat
GER = fxdata/gtext_ger.dat
ITA = fxdata/gtext_ita.dat
SPA = fxdata/gtext_spa.dat
SWE = fxdata/gtext_swe.dat
POL = fxdata/gtext_pol.dat
DUT = fxdata/gtext_dut.dat
JPN = fxdata/gtext_jpn.dat
CHI = fxdata/gtext_chi.dat
CHT = fxdata/gtext_cht.dat
RUS = fxdata/gtext_rus.dat
CZE = fxdata/gtext_cze.dat
KOR = fxdata/gtext_kor.dat
UKR = fxdata/gtext_ukr.dat
LAT = fxdata/gtext_lat.dat
;HUN = fxdata/gtext_hun.dat
;DAN = fxdata/gtext_dan.dat
;NOR = fxdata/gtext_nor.dat
;ARA = fxdata/gtext_ara.dat

; Location of the speech sound files.
; If there's no folder for current language, then first entry is selected by default.
[speech]
ENG = campgns/keeporig_eng
FRE = campgns/keeporig_fre
GER = campgns/keeporig_ger
ITA = campgns/keeporig_ita
SPA = campgns/keeporig_spa
SWE = campgns/keeporig_swe
POL = campgns/keeporig_pol
DUT = campgns/keeporig_dut
JPN = campgns/keeporig_jpn
CHI = campgns/keeporig_chi
CHT = campgns/keeporig_cht
RUS = campgns/keeporig_rus
KOR = campgns/keeporig_kor

; Details about levels will follow. Only sections mentioned in [common] block
; will be parsed by the game; other blocks are skipped.
; NAME_IDs are message IDs from strings file.
; Note that NAME_TEXTs are not used if NAME_IDs are present.
; ENSIGN_POS is a position on the Land View screen, X is ranged 160..1120,
; while Y is 120..840. At this exact point, the bottom centre of the ensign
; sprite is placed. ENSIGN_ZOOM is the place which is zoomed when the ensign
; is selected; it is usually the same place where ensign is, but may be moved
; a few pixels if this gives better graphics result.
; LAND_VIEW option should be only present in single player levels.
; SPEECH is the voice of the mentor before and after the level. MP3, Ogg, VOC,
; FLAC and WAV formats are supported.

; Details about single player levels


; Details about multiplayer levels

[map00050]
NAME_TEXT = Multiplayer 1
ENSIGN_POS = 820 618
ENSIGN_ZOOM = 820 618
PLAYERS = 2
OPTIONS =

[map00051]
NAME_TEXT = Multiplayer 2
ENSIGN_POS = 767 542
ENSIGN_ZOOM = 767 542
PLAYERS = 2
OPTIONS =

[map00052]
NAME_TEXT = Multiplayer 3
ENSIGN_POS = 703 616
ENSIGN_ZOOM = 703 616
PLAYERS = 2
OPTIONS =

[map00053]
NAME_TEXT = Multiplayer 4
ENSIGN_POS = 795 680
ENSIGN_ZOOM = 795 680
PLAYERS = 2
OPTIONS =

[map00054]
NAME_TEXT = Multiplayer 5
ENSIGN_POS = 879 654
ENSIGN_ZOOM = 879 654
PLAYERS = 2
OPTIONS =

[map00060]
NAME_TEXT = Multiplayer 6
ENSIGN_POS = 445 530
ENSIGN_ZOOM = 445 530
PLAYERS = 3
OPTIONS =

[map00061]
NAME_TEXT = Multiplayer 7
ENSIGN_POS = 453 594
ENSIGN_ZOOM = 453 594
PLAYERS = 3
OPTIONS =

[map00062]
NAME_TEXT = Multiplayer 8
ENSIGN_POS = 529 578
ENSIGN_ZOOM = 529 578
PLAYERS = 3
OPTIONS =

[map00063]
NAME_TEXT = Multiplayer 9
ENSIGN_POS = 433 706
ENSIGN_ZOOM = 433 706
PLAYERS = 3
OPTIONS =

[map00064]
NAME_TEXT = Multiplayer 10
ENSIGN_POS = 500 692
ENSIGN_ZOOM = 500 692
PLAYERS = 3
OPTIONS =

[map00070]
NAME_TEXT = Multiplayer 11
ENSIGN_POS = 520 385
ENSIGN_ZOOM = 520 385
PLAYERS = 4
OPTIONS =

[map00071]
NAME_TEXT = Multiplayer 12
ENSIGN_POS = 590 385
ENSIGN_ZOOM = 590 385
PLAYERS = 4
OPTIONS =

[map00072]
NAME_TEXT = Multiplayer 13
ENSIGN_POS = 634 405
ENSIGN_ZOOM = 634 405
PLAYERS = 4
OPTIONS =

[map00073]
NAME_TEXT = Multiplayer 14
ENSIGN_POS = 676 429
ENSIGN_ZOOM = 676 429
PLAYERS = 4
OPTIONS =

[map00074]
NAME_TEXT = Multiplayer 15
ENSIGN_POS = 664 357
ENSIGN_ZOOM = 664 357
PLAYERS = 4
OPTIONS =


File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
4 changes: 4 additions & 0 deletions src/config.c
Original file line number Diff line number Diff line change
Expand Up @@ -1356,6 +1356,10 @@ char *prepare_file_path_buf_mod(char *dst, int dst_size, const char *mod_dir, sh
mdir=keeper_runtime_directory;
sdir="creatrs";
break;
case FGrp_MpLevels:
mdir=keeper_runtime_directory;
sdir="mpmaps";
break;
default:
mdir="./";
sdir=NULL;
Expand Down
1 change: 1 addition & 0 deletions src/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ enum TbFileGroups {
FGrp_CmpgConfig,
FGrp_CmpgMedia,
FGrp_Music,
FGrp_MpLevels,
};

enum TbExtraLevels {
Expand Down
Loading