Commit graph

129 commits

Author SHA1 Message Date
Sally Coolatta
a481e4b34b Deterministic roulette
The roulette contains NO (non-seeded) RNG anymore. You manually stop it at any time.

Still needs the visual of the items scrolling, to make it not blind.
2022-12-11 23:58:11 -05:00
toaster
e65d17cd4d Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into ironman
# Conflicts:
#	src/g_demo.c
2022-11-21 15:49:29 +00:00
toaster
962393f7b9 Restart Map/Try Again pause menu entry
Closer to parity with pre-newmenus behaviour.
- Clinical term for server admins, colloquial for SP contexts (GP/modeattacking)
- Won't show up in GP if you're out of lives
- Also fixes lives going negative in K_PlayerLoseLife
2022-11-17 16:45:07 +00:00
toaster
8aeaf9738d Major changes to follower selection
- Followers now have categories, definable in SOC
- New character select step: Follower category
    - "None" is a category, just skips straight to Follower None
    - Select a category to go to the previous regular follower selection step
- Press the C/Extra button to reset a character select step to its "default"
    - Character: Center the character in the engine class (goes from [0,1] to [1,1], etc)
    - Character alts: Centers the "primary" alt (prefers Eggman over Eggrobo)
    - Skincolor: Centers the character's prefcolour
    - Follower category: Centers on the "None" option
    - Follower: [CURRENTLY NO BEHAVIOUR]
    - Followercolor: Cycles between follower's defaultcolour, "Match", and "Opposite"
2022-11-06 22:53:12 +00:00
toaster
59cd7bfc11 Use character's prefcolour before color selection for that player 2022-11-06 17:06:29 +00:00
toaster
44f869e5e6 Adjust followers (and players) drawing on character select
- Use default colours for followers when not select(ing/ed) follower colour, to match character selection
- Adjust offsets in general, including a rework bobbing handling, so there isn't a huge variance in follower position on-screen
- Move followers to draw in front of several elements, including the "A/B/C/D PLAYER" text and the rotatey wheel so you can actually see them
- Also applies to player: Don't mirror between sides of the screen - instead, rotate the virtual player object, so asymmetrical details aren't lost!
- Player-specific: Animate when READY !! to simlate starting your engine.
2022-11-06 16:53:57 +00:00
toaster
e486926943 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into miniladder-16
# Conflicts:
#	src/d_main.c
2022-11-04 12:03:48 +00:00
AJ Martinez
1798ae9f4e Merge remote-tracking branch 'origin/master' into ironman 2022-11-03 19:37:29 -07:00
AJ Martinez
80252717c9 Kill SF_HIRES, use skin_t highresscale instead 2022-11-03 16:19:17 -07:00
toaster
21be387d0f Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into connection-doinglus
# Conflicts:
#	src/d_clisrv.c
#	src/d_main.c
#	src/k_menudraw.c
#	src/m_misc.c
2022-11-03 22:36:34 +00:00
toaster
e7c700a64f Compilation errors from corrupted cherry-pick/porting 2022-11-03 14:32:40 +00:00
toaster
d7e2c60d73 1.6 replay hut graphical fixes -- obviously redoing the whole thing later but important to get reasonable foundation to build off 2022-11-03 13:35:51 +00:00
toaster
52f0217bac Completely rewrite how joined IPs are saved and written... again
- Use strlcpy instead of strcpy to prevent footguns
- Use fprintf instead of raw fputs
- Enforce consistent MAX_LOGIP (255) length for each component instead of a combination of magic number 255 and MAXSTRINGLENGTH (32!?) depending on where you look
- Fix fun memory leak in waiting
- Avoid pointless strlens
2022-09-26 21:28:33 +01:00
toaster
e58a109a2b Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into joinedip-fixes 2022-09-26 20:16:34 +01:00
toaster
3b9959a707 Replay hut code smell fix
- Properly account for non-loaded maps (missed in big-large-map-markers)
- Don't have a million copypasted extrasmenu.demolist indexarooies
- Make one bad replay handler in `G_LoadDemoInfo(` instead of fifty copypastes (Hmn I am smelling a THEME)
2022-09-25 22:47:22 +01:00
SteelT
f3c780d732 Merge branch 'master' into joinedip-fixes 2022-09-24 15:27:14 -04:00
toaster
fe49543456 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into big-large-map-markers 2022-09-24 19:53:36 +01:00
toaster
e1c8f8095b Clean up recent IP handling a bunch. 2022-09-23 04:06:37 -04:00
Sally Coolatta
f89d8d15c2 Properly separate SPB & Shrink cooldowns
Also refactors some of the result -> type & amount code
2022-09-23 03:35:18 -04:00
toaster
48e9138dda Refactoring ahoy
* Instead of doing constant G_MapNumbers when finding the relationship between maps and cups...
    * Add a cache of level IDs to cups, to go with the strings.
    * Add a cache of the cup pointer to maps, so we don't have to search through all cups to find our map. (done in P_InitMapData)
    * Pre-emptive work: G_IsSpecialStage and P_GetNextEmerald now reference cup data instead of a hardcoded ID set.
* Remove a bunch of old stuff from mapheaderinfo_t/associated, and reorder what stays
    * Countdowntimer? 💥
    * Startrings? 💥
    * sstimer/ssspheres? 💥
    * forcecharacter? 💥 (distinct from forceskin)
    * interscreen? 💥
    * sstage_start/end and smpstage_start/end? 💥💥💥💥
    * You've been blocked
* G_MapNumber now returns a special NEXTMAP_INVALID if not found, for more consistent reference.
* Incorporate a good chunk of the `edit-headers` branch. Can't clear maps individually because of the new restrictions on sequential mapheaders, but we can add a "disable in vote screen, not even for map hell/archive" flag to a map at some future juncture for equivalent functionality...
2022-09-22 17:14:41 +01:00
toaster
60355d9efd Move two of the three remaining NUMMAPS arrays part of the mapheader_t struct
- mapvisited and recorddata_t (previously mainrecords)
- Changed how gamedata is saved and loaded
- Change the versioncheck (funny hex provided by chengi) AND call it `developringdata.dat` in develop builds
- Fix a bunch of off-by-ones in condition and emblem data
ALSO, for Time Attack:
- Fix menu not showing off your times
- Now save times even when gamedata modified, since the menu didn't care (come back to it?)
- Don't save times or do intermission screen if the Capsule Attack ended because you lost all your bumpers
- Fix a crash adding ghosts in Capsule Attack
2022-09-21 22:12:36 +01:00
toaster
b68710faf2 Rework special nextmap events.
- G_MapNumber now handles special NEXTMAP_ nextmapspecial_t constants that exist at the end of the available type.
- Cleanup of G_DoCompleted
- Add bounds checking to the various SOC maincfg map starts (spstage_start, etc)
- Add lump checking to titlemap behaviour
2022-09-17 19:10:04 +01:00
toaster
7e17f5456c I_Error in all situations where mapheaders were previously allocated outside of SOC.
Also:
- improved error prints for SOC condition definitions
- improved bounds checking to use `nummapheaders` for iterating over mapheaderinfo
There are still situations that use NUMMAPS like mapvisited, randmapbuffer, etc, which need to be addressed before merger.
2022-09-17 13:07:48 +01:00
toaster
1fbd5655f5 Replay hut: Show nolvl if the user hasn't added the map, or blanklvl if they have. 2022-09-17 00:03:49 +01:00
toaster
46441092dc Address initial review comments + associated cleanup
- Grab thumbnail and minimap pictures even for base game maps
- Repair modified game event for replacement map load
- PU_STATIC thumbnail and minimap, freed on new file load lump discovery
- Fix W_CheckNumForMap to not SIGSEGV if no match
- Reduce the number of pointless map lump hunts, we've already got it stored
- Prevent use-after-free for map pictures on voting screen
- Cache "BLANKLVL" patch once
- Draw minimap on the time attack menu

Unfortunately cups are still broken and I'm not sure where to start on that, or if it's just not having a sample wad to test with that includes cups
2022-09-16 15:01:49 +01:00
toaster
b08ae2a716 Fix confirm connect
Still shows the message when you open the pause menu. Needs more attention I can't give it right now
2022-09-13 22:59:02 +01:00
toaster
d5e6d349a5 Egga Channel background for connecting 2022-09-13 13:21:03 +01:00
SteelT
c64f36309a Support reading PICTURE/MINIMAP/ENCORE/TWEAKMAP lumps from a map resource
This supersedes the header-based method of fetching those lumps.
2022-09-12 17:29:15 -04:00
toaster
8ba32064a8 Clean up recent IP handling a bunch. 2022-09-12 22:24:40 +01:00
Sally Coolatta
524eff9fde Update new menus to use long names 2022-09-10 16:01:47 -04:00
James R
badbcb5c8d Fix -Wformat 2022-09-07 14:12:20 -07:00
toaster
212907122b Repair shitsfree 2022-09-04 22:21:42 +01:00
toaster
9d26fa2040 Fix the vertical position of %d ADD-ON(S) LOADED if there are a limited number of add-on results 2022-09-04 22:02:27 +01:00
toaster
49f7552009 Improve profile deletion further
- Also adjust cv_currprofile in PR_DeleteProfile, instead of half-heartedly outside
- Make it clearer if you're going to destroy your current profile
- Add an "[In use]" identifier to the menu's visuals
2022-09-04 21:44:39 +01:00
toaster
acd777a77a Significant work into the play-starting experience
- Take the weird extra mini settings menu out of the Online Host Game sequence
- Make sure to actively use the server variables in Match Race creation
    - Hides the Auto options for Encore and Kartspeed on the Match Race menu specifically...
    - BUT if you leave it at the default it'll secretly set them to Auto!!!
2022-09-04 20:14:30 +01:00
toaster
594748ba13 Addons menu refactor part 4
- Get rid of the temperature gauge, a relic from an age where the filenames you could fit in a packet controlled how many files you could load.
- Instead, add a file count to the bottom of the screen.
- Still a little ugly, but this menu is now SHIPPABLE.
2022-09-03 21:46:50 +01:00
toaster
26461d568c Addons menu refactor part 3
Search finally works again!
- Now uses a cvar which is copied into static memory to uppercase it, instead of a weird static string uppercased into zone memory.
- You have to scroll to the top of the menu to use it, one entry above the previous first file/folder/"UP...".
- Don't play menu sound if you've reached the end of an un-looping menu.
2022-09-03 21:15:23 +01:00
toaster
88f04da180 Addons menu refactor part 2
- Change M_DrawAddons to draw relatively, so that the height can be changed without consequence.
- Add an option to adjust the spacing of Addons Menu entries (currently unused, but could be explored later).
- Moved Search (still not yet functional) further up the menu.
2022-09-03 19:43:13 +01:00
toaster
8312f12d6c Addons menu refactor part 1
- Move M_AddonsRefresh out of M_DrawAddons - death to a HORRIBLE hack
- Use it as the tickroutine for the addons menu instead
- Behaves as before, possibly more consistent
2022-09-03 16:23:16 +01:00
toaster
36797e6bde Change the text for skipping charsel with profile info
Used to be "CHANGES? No/Yes", but that was confusing.
Now "READY? All good/Change" (had to be adjusted from discussed text to fit in the space, even with thinstring)
2022-09-01 21:32:18 +01:00
Sally Coolatta
7c20b66782 Fix hold controls prompt 2022-08-30 05:25:59 -04:00
Sally Coolatta
0fe3e6ceeb Don't allow 2 players to select the same profile
(Excluding the Guest profile, of course.)
2022-08-30 04:42:01 -04:00
Sally Coolatta
d5a4954dd3 Profiles handle power level properly now
Overwriting the global power level all the time and not updating any code to use the profile was extremely yikes. This also allows for splitscreen players with power levels.
2022-08-30 03:51:35 -04:00
Sally Coolatta
d22c7edd30 Show current party on the menus 2022-08-29 06:27:45 -04:00
Sally Coolatta
e8b179f7a1 Switch around maxplayers and ingamecap
- ingamecap is now the new maxplayers
- The old maxplayers is now called maxconnections, but can mostly be left alone
- Insert into match race menu
2022-08-29 04:35:14 -04:00
Sally Coolatta
b388890647 Profile fixes
- Less M_StartMessage spam
- Say "NEW" instead of "EMPTY" for new profile creation
- Use Eggman instead of Sonic for the Guest profile
- Instead of needing to hold X for 3 seconds to exit the test controls menu, you simply press nothing for 5 seconds.
- Add separate back option to controls menu.
- Started on the ability to use prefcolor as your profile color
- Allow guest online because there is literally already mechanics for having a player with no power level :V
2022-08-29 04:08:12 -04:00
Sally Coolatta
4f9fc51b80 Use circle code for followers
Better than list with only 3 entries, will get further improved by categories later
2022-08-29 02:01:37 -04:00
Sally Coolatta
c4ff86a7f3 Scrolling text fixes
- Interpolates properly
- Uses additive and subtractive because it exists now
2022-08-29 01:08:33 -04:00
Sally Coolatta
6e5c955501 Only allow Time Attack for 1P
Battle gametype submenu no longer exists.
2022-08-28 06:08:30 -04:00
SinnamonLat
a8d847227d WIP: time attack, kinda works but crashes when you finish lol 2022-07-27 12:04:52 +02:00