Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • addfile++
  • android-port-gme
  • android-port-prebuilt-libs
  • android-port-responsefile
  • better-lua-errors
  • changelog-test
  • changelog-test2
  • deployer-224
  • discord-rich-presence-edit
  • freebsd-support
  • huge-opt-test
  • lua-gvar-stuff
  • lua-stack-revert-test
  • magic
  • master
  • menu-clipboard-support
  • next
  • public-musicplus-libopenmpt
  • refactor-mem-get
  • sdl-dragdrop
  • sdlstuff
  • uncappedrevengeance-master-alt
  • SRB2_assets_221
  • SRB2_assets_222
  • SRB2_release_2.1.24
25 results

Target

Select target project
  • STJr/SRB2
  • Sryder/SRB2
  • wolfy852/SRB2
  • Alpha2244/SRB2
  • Inuyasha/SRB2
  • yoshibot/SRB2
  • TehRealSalt/SRB2
  • PrisimaTF/SRB2
  • Hatninja/SRB2
  • SteelT/SRB2
  • james/SRB2
  • ShaderWraith/SRB2
  • SinnamonLat/SRB2
  • mazmazz_/SRB2
  • filpAM/SRB2
  • chaoloveicemdboy/SRB2
  • Whooa21/SRB2
  • Machturne/SRB2
  • Golden/SRB2
  • Tatsuru/SRB2
  • Snu/SRB2
  • Zwip-Zwap_Zapony/SRB2
  • fickleheart/SRB2
  • alphaRexJames/SRB2
  • JJK/SRB2
  • diskpoppy/SRB2
  • Hannu_Hanhi/SRB2
  • ZipperQR/SRB2
  • kays/SRB2
  • spherallic/SRB2
  • Zippy_Zolton/SRB2
  • namiishere/SRB2
  • Ors/SRB2
  • SMS_Alfredo/SRB2
  • sonic_edge/SRB2
  • lavla/SRB2
  • ashi/SRB2
  • X.organic/SRB2
  • Fafabis/SRB2
  • Meziu/SRB2
  • v-rob/SRB2
  • tertu/SRB2
  • bitten2up/SRB2
  • flarn2006/SRB2
  • Krabs/SRB2
  • clairebun/SRB2
  • Lactozilla/SRB2
  • thehackstack/SRB2
  • Spice/SRB2
  • win8linux/SRB2
  • JohnFrostFox/SRB2
  • talktoneon726/SRB2
  • Wane/SRB2
  • Lamibe/SRB2
  • spectrumuk2/srb-2
  • nerdyminer18/srb-2
  • 256nil/SRB2
  • ARJr/SRB2
  • Alam/SRB2
  • Zenya/srb-2-marathon-demos
  • Acelite/srb-2-archivedmodifications
  • MIDIMan/SRB2
  • Lach/SRB2
  • Frostiikin/bounce-tweaks
  • Jaden/SRB2
  • Tyron/SRB2
  • Astronight/SRB2
  • Mari0shi06/SRB2
  • aiire/SRB2
  • Galactice/SRB2
  • srb2-ports/srb2-dreamcast
  • sdasdas/SRB2
  • chreas/srb-2-vr
  • StarManiaKG/the-story-of-sinically-rocketing-and-botching-the-2nd
  • LoganAir/SRB2
  • NepDisk/srb-2
  • alufolie91/SRB2
  • Felicia.iso/SRB2
  • twi/SRB2
  • BarrelsOFun/SRB2
  • Speed2411/SRB2
  • Leather_Realms/SRB2
  • Ayemar/SRB2
  • Acelite/SRB2
  • VladDoc/SRB2
  • kaldrum/model-features
  • strawberryfox417/SRB2
  • Lugent/SRB2
  • Rem/SRB2
  • Refrag/SRB2
  • Henry_3230/srb-3230
  • TehPuertoRicanSpartan2/tprs-srb2
  • Leminn/srb-2-marathon-stuff
  • chromaticpipe2/SRB2
  • MiguelGustavo15/SRB2
  • Maru/srb-2-tests
  • SilicDev/SRB2
  • UnmatchedBracket/SRB2
  • HybridDog/SRB2
  • xordspar0/SRB2
  • jsjhbewfhh/SRB2
  • Fancy2209/SRB2
  • Lorsoen/SRB2
  • shindoukin/SRB2
  • GamerOfDays/SRB2
  • Craftyawesome/SRB2
  • tenshi-tensai-tennoji/SRB2
  • Scarfdudebalder/SRB2
  • luigi-budd/srb-2-fix-interplag-lockon
  • mskluesner/SRB2
  • johnpetersa19/SRB2
  • Pheazant/SRB2
  • chromaticpipe2/srb2classic
  • romoney5/SRB2
  • PAS/SRB2Classic
  • BlueStaggo/SRB2
  • Jisk/srb-2-beef-jerky
117 results
Select Git revision
  • 1392-2-2-15-attempting-to-draw-a-hud-graphic-with-the-same-lump-name-as-a-lua-script-crashes-the
  • 21-installer-nodd
  • 2210-pre1
  • 2210-pre2
  • 2210-rc1
  • 2210-rc2
  • 2210-rc3
  • 2211-pre1
  • 2211-pre2
  • 2211-rc1
  • 2212-pre1
  • 2212-pre2
  • 2212-pre3
  • 2212-rc1
  • 2213
  • 2214-pre1
  • 2214-pre2
  • 2214-pre3
  • 2214-pre4
  • 2_2_12
  • 64-gl-log
  • COM_ImmedExecute-lua
  • DJGPP
  • accel-momentum
  • acs
  • action-args
  • alpha-fixes
  • any-resolution
  • appveyor
  • blend-locking
  • blentran
  • blua-unary-not-fix
  • boost-tickrate
  • bustablesoundz
  • cleanup-opengl
  • cleanupmusic
  • clipmidtex
  • cmake-valgrind
  • crawlacommander-sprites
  • custom-map-names
  • custom-teams
  • cutscene-cleanup
  • dd-music-bypass
  • dd-music-fix
  • delfile2
  • deprecate-lua-dedicated-server
  • dpl-2
  • dropshadows-spawning
  • dynabsp
  • emblem-drawing
  • exchndl-xp-fix
  • extra-textures
  • few-kart-lua-changes
  • ffloorclip
  • fix-167
  • fix-cvar-conflicts
  • fix-opengl-parameter-crash
  • fix-opengl-shear-roll
  • flipfuncpointers
  • fof-lightlist-fixes
  • font-FUCK
  • frictionrefactor
  • fuck-macros-1
  • gamepad-luakeydown
  • gamepad-morefixes
  • gamepad_experiments
  • gametype-refactor
  • gametype-refactor-1
  • gametype-refactor-player-spawns
  • ghost-networking
  • gif-splitting
  • grr-lj
  • hitboxviewer
  • hwr-texture-cache-refactor
  • hwrender2
  • improve-439
  • increase-maxconditionsets
  • increase-packet-tics
  • input-display
  • input-display-translucency
  • io
  • joystick-juggling-maz
  • just-in-case
  • keycodes-only
  • ksf-wadfiles
  • ld413-mp-fix
  • levelstruct
  • libpng-version-support
  • linedef-actions
  • lj-test
  • lol-states
  • loopedsounds
  • lower-unpegged-fix
  • lua-change-gametype
  • lua-command-netids
  • lua-gfx-2
  • lua-gfx-sprites
  • lua-local
  • makefile-auto-mingw-gcc
  • makefile-tinkering
  • SRB2_release_2.1
  • SRB2_release_2.1.1
  • SRB2_release_2.1.10
  • SRB2_release_2.1.11
  • SRB2_release_2.1.12
  • SRB2_release_2.1.14
  • SRB2_release_2.1.15
  • SRB2_release_2.1.16
  • SRB2_release_2.1.16a
  • SRB2_release_2.1.17
  • SRB2_release_2.1.18
  • SRB2_release_2.1.19
  • SRB2_release_2.1.2
  • SRB2_release_2.1.20
  • SRB2_release_2.1.21
  • SRB2_release_2.1.22
  • SRB2_release_2.1.23
  • SRB2_release_2.1.24
  • SRB2_release_2.1.25
  • SRB2_release_2.1.3
  • SRB2_release_2.1.4
  • SRB2_release_2.1.5
  • SRB2_release_2.1.6
  • SRB2_release_2.1.7
  • SRB2_release_2.1.8
  • SRB2_release_2.1.9
  • SRB2_release_2.2.0
  • SRB2_release_2.2.1
  • SRB2_release_2.2.10
  • SRB2_release_2.2.11
  • SRB2_release_2.2.12
  • SRB2_release_2.2.13
  • SRB2_release_2.2.15
  • SRB2_release_2.2.2
  • SRB2_release_2.2.3
  • SRB2_release_2.2.4
  • SRB2_release_2.2.5
  • SRB2_release_2.2.6
  • SRB2_release_2.2.7
  • SRB2_release_2.2.8
  • SRB2_release_2.2.9
  • td-release-v1.0.0
142 results
Show changes
Commits on Source (1)
...@@ -185,6 +185,8 @@ static INT32 vidm_previousmode; ...@@ -185,6 +185,8 @@ static INT32 vidm_previousmode;
static INT32 vidm_selected = 0; static INT32 vidm_selected = 0;
static INT32 vidm_nummodes; static INT32 vidm_nummodes;
static INT32 vidm_column_size; static INT32 vidm_column_size;
static INT32 cursor_pos = 0; // position of cursor in line
static INT32 cursor_sel = 0; // Number of selected characters
// //
// PROTOTYPES // PROTOTYPES
...@@ -2087,8 +2089,82 @@ static void M_ChangeCvar(INT32 choice) ...@@ -2087,8 +2089,82 @@ static void M_ChangeCvar(INT32 choice)
static boolean M_ChangeStringCvar(INT32 choice) static boolean M_ChangeStringCvar(INT32 choice)
{ {
consvar_t *cv = (consvar_t *)currentMenu->menuitems[itemOn].itemaction; consvar_t *cv = (consvar_t *)currentMenu->menuitems[itemOn].itemaction;
char buf[255]; char buf[255] = {0};
size_t len; size_t len;
char selbuf[255] = {0};
if (ctrldown)
{
if (choice == 'X' || choice == 'x')
{
len = strlen(cv->string);
CONS_Printf("ctrl+x\n");
}
else if (choice == 'C' || choice == 'c') // c or uppercase c
{
CONS_Printf("ctrl+c\n");
}
else if (choice == 'V' || choice == 'v') // v or uppercase v
{
const char *paste = I_ClipboardPaste();
strcpy(buf, cv->string);
size_t full_len = strlen(buf) + strlen(paste); //The combined string length of buf and paste
if (full_len < MAXSTRINGLENGTH && paste != NULL)
{
CONS_Printf("%s\n", paste);
strcat(buf, paste);
CONS_Printf("%s\n", buf);
CONS_Printf("%d\n", full_len);
buf[full_len] = 0;
CV_Set(cv, buf);
}
CONS_Printf("ctrl+v\n");
}
return true;
}
if (shiftdown)
{
switch (choice)
{
case KEY_LEFTARROW:
len = strlen(cv->string);
if (len != 0)
{
M_Memcpy(buf, cv->string, len);
CONS_Printf("Selected left\n");
cursor_pos = cursor_sel -= 1;
if (cursor_sel <= 0)
{
cursor_sel = cursor_pos = 0;
}
CONS_Printf("Selection length: %d\n", cursor_sel);
strncat(selbuf, buf+cursor_pos, cursor_sel);
selbuf[strlen(selbuf)] = 0;
CONS_Printf("String is: %s\n", selbuf);
}
break;
case KEY_RIGHTARROW:
len = strlen(cv->string);
if (len != 0)
{
M_Memcpy(buf, cv->string, len);
CONS_Printf("Selected right\n");
CONS_Printf("Selection length: %d\n", cursor_sel);
cursor_pos = cursor_sel += 1;
if (cursor_sel > len)
{
cursor_sel = cursor_pos = strlen(cv->string);
}
strncat(selbuf, buf, cursor_sel);
selbuf[strlen(selbuf)] = 0;
CONS_Printf("String is: %s\n", selbuf);
}
break;
default:
break;
}
}
switch (choice) switch (choice)
{ {
...@@ -2097,19 +2173,40 @@ static boolean M_ChangeStringCvar(INT32 choice) ...@@ -2097,19 +2173,40 @@ static boolean M_ChangeStringCvar(INT32 choice)
if (len > 0) if (len > 0)
{ {
M_Memcpy(buf, cv->string, len); M_Memcpy(buf, cv->string, len);
buf[len-1] = 0; buf[cursor_pos-1] = 0;
CV_Set(cv, buf); CV_Set(cv, buf);
cursor_pos = strlen(cv->string);
} }
return true; return true;
break;
case KEY_LEFTARROW:
cursor_pos -= 1;
if (cursor_pos < 0)
{
cursor_pos = 0;
CONS_Printf("Fixed\n");
CONS_Printf("%d\n", cursor_pos);
}
return true;
break;
case KEY_RIGHTARROW:
cursor_pos += 1;
CONS_Printf("%d\n", cursor_pos);
if (cursor_pos > strlen(cv->string))
{
cursor_pos = strlen(cv->string);
}
return true;
break;
default: default:
if (choice >= 32 && choice <= 127) if (choice >= 32 && choice <= 127)
{ {
len = strlen(cv->string); len = strlen(cv->string);
if (len < MAXSTRINGLENGTH - 1) if (len < MAXSTRINGLENGTH - 1)
{ {
M_Memcpy(buf, cv->string, len);
buf[len++] = (char)choice;
buf[len] = 0; buf[len] = 0;
memmove(buf+cursor_pos+1, buf+cursor_pos, len-cursor_pos+1);
buf[cursor_pos] = choice;
CV_Set(cv, buf); CV_Set(cv, buf);
} }
return true; return true;
...@@ -3175,9 +3272,9 @@ static void M_DrawGenericMenu(void) ...@@ -3175,9 +3272,9 @@ static void M_DrawGenericMenu(void)
case IT_CV_STRING: case IT_CV_STRING:
M_DrawTextBox(x, y + 4, MAXSTRINGLENGTH, 1); M_DrawTextBox(x, y + 4, MAXSTRINGLENGTH, 1);
V_DrawString(x + 8, y + 12, V_ALLOWLOWERCASE, cv->string); V_DrawString(x + 8, y + 12, V_ALLOWLOWERCASE, cv->string);
if (skullAnimCounter < 4 && i == itemOn) if (skullAnimCounter < 6 && i == itemOn) // Draw blinking cursor
V_DrawCharacter(x + 8 + V_StringWidth(cv->string, 0), y + 12, V_DrawCharacter(x + 8 + V_StringWidth("_", 0) * cursor_pos, y + 12,
'_' | 0x80, false); '_' | V_GREENMAP, false);
y += 16; y += 16;
break; break;
default: default:
......