Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add comp_voodooscroller #81

Merged
merged 2 commits into from
Sep 22, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
1 change: 1 addition & 0 deletions prboom2/src/doomstat.h
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,7 @@ enum {
// mbf21
comp_ledgeblock,
comp_friendlyspawn,
comp_voodooscroller,

MBF_COMP_TOTAL = 32 // limit in MBF format
};
Expand Down
14 changes: 11 additions & 3 deletions prboom2/src/dsda/options.c
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,8 @@ static const dsda_options_t default_mbf_options = {
// .comp_maxhealth = 0,
// .comp_translucency = 0,
// .comp_ledgeblock = 0,
// .comp_friendlyspawn = 1
// .comp_friendlyspawn = 1,
// .comp_voodooscroller = 1,
};

static const dsda_options_t default_latest_options = {
Expand Down Expand Up @@ -141,7 +142,8 @@ static const dsda_options_t default_latest_options = {
.comp_maxhealth = 0,
.comp_translucency = 0,
.comp_ledgeblock = 1,
.comp_friendlyspawn = 1
.comp_friendlyspawn = 1,
.comp_voodooscroller = 0,
};

static dsda_options_t mbf_options;
Expand Down Expand Up @@ -189,6 +191,7 @@ static dsda_option_t option_list[] = {
{ "comp_soul", &mbf_options.comp_soul, 0, 1 },
{ "comp_ledgeblock", &mbf_options.comp_ledgeblock, 0, 1 },
{ "comp_friendlyspawn", &mbf_options.comp_friendlyspawn, 0, 1 },
{ "comp_voodooscroller", &mbf_options.comp_voodooscroller, 0, 1 },
{ 0 }
};

Expand Down Expand Up @@ -278,7 +281,7 @@ const dsda_options_t* dsda_Options(void) {
return dsda_MBFOptions();
}

#define MBF21_COMP_TOTAL 23
#define MBF21_COMP_TOTAL 24

static int mbf21_comp_translation[MBF21_COMP_TOTAL] = {
comp_telefrag,
Expand All @@ -304,6 +307,7 @@ static int mbf21_comp_translation[MBF21_COMP_TOTAL] = {
comp_soul,
comp_ledgeblock,
comp_friendlyspawn,
comp_voodooscroller,
};

// killough 5/2/98: number of bytes reserved for saving options
Expand Down Expand Up @@ -399,6 +403,10 @@ const byte *dsda_ReadOptions21(const byte *demo_p) {
for (i = 0; i < count; i++)
comp[mbf21_comp_translation[i]] = *demo_p++;

// comp_voodooscroller
if (count < 24)
comp[mbf21_comp_translation[23]] = 1;

G_Compatibility();

return demo_p;
Expand Down
2 changes: 1 addition & 1 deletion prboom2/src/dsda/options.h
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ typedef struct dsda_options {
int comp_translucency;
int comp_ledgeblock;
int comp_friendlyspawn;
// int comp_31;
int comp_voodooscroller;
// int comp_32;
} dsda_options_t;

Expand Down
5 changes: 3 additions & 2 deletions prboom2/src/g_game.c
Original file line number Diff line number Diff line change
Expand Up @@ -2773,8 +2773,8 @@ void G_Compatibility(void)
{ boom_compatibility, mbf21_compatibility },
// comp_friendlyspawn - A_Spawn new mobj inherits friendliness
{ prboom_1_compatibility, mbf21_compatibility },
// comp_placeholder_31 - Not defined yet
{ 255, 255 },
// comp_voodooscroller - Voodoo dolls on slow scrollers move too slowly
{ mbf21_compatibility, mbf21_compatibility },
// comp_placeholder_32 - Not defined yet
{ 255, 255 }
};
Expand Down Expand Up @@ -2917,6 +2917,7 @@ void G_ReloadDefaults(void)
comp[comp_translucency] = options->comp_translucency;
comp[comp_ledgeblock] = options->comp_ledgeblock;
comp[comp_friendlyspawn] = options->comp_friendlyspawn;
comp[comp_voodooscroller] = options->comp_voodooscroller;
}

G_Compatibility();
Expand Down
3 changes: 2 additions & 1 deletion prboom2/src/p_mobj.c
Original file line number Diff line number Diff line change
Expand Up @@ -544,7 +544,8 @@ static void P_XYMovement (mobj_t* mo)
!(player->cmd.forwardmove | player->cmd.sidemove) ||
(
player->mo != mo &&
compatibility_level >= lxdoom_1_compatibility
compatibility_level >= lxdoom_1_compatibility &&
(comp[comp_voodooscroller] || !(mo->intflags & MIF_SCROLLING))
)
)
)
Expand Down