Commit Graph
100 Commits
Author SHA1 Message Date
Glenn Maynard 5dd27008cc use TimingAssist 2003-03-27 00:51:57 +00:00
Glenn Maynard d6b5aa10ef add m_bTimingAssist 2003-03-27 00:49:48 +00:00
Glenn Maynard c19a3d8e22 add TimingAssist.* 2003-03-27 00:49:22 +00:00
Glenn Maynard 1c817ca08d Add TimingAssist; this roughly implements the timing helper in PNM.
This lets us add an announcer that's played after each non-perfect
step, eg. "gameplay assist late good".

It only works reasonably for sparse songs--songs that only have notes
far enough apart that the announcer makes sense.  That's mostly
beginner songs, which is what this is targetted at anyway.  It's meaningless
to use this assist mode in harder songs; even if the announcer was
rate limited, it'd be impossible to tell which step the announcer was for,
so I didn't bother trying.  (It'd be amusing to turn this on in MaxU. :)

A different timing assist type (TimingTip) is probably coming soon,
targetted to higher level (light/med) songs.

The only major problem at the moment is that there's no way to tell
who the announcer is talking to if there's two players.  If we implement
per-player announcers, that would help (and allow a number of other
neat things, like having the p1 announcer say "Ready" and the p2
announcer say "HWG").
2003-03-27 00:48:58 +00:00
Glenn Maynard 3f0fdda811 fix warning 2003-03-27 00:39:46 +00:00
Glenn Maynard c8b9ad3002 add LastTapNoteScoreTrack 2003-03-27 00:39:17 +00:00
Glenn Maynard b1fa4fc1c6 whoops, remove header 2003-03-26 22:23:10 +00:00
Glenn Maynard 6dffee38ce don't touch an offset unless it's actually graded 2003-03-26 22:22:44 +00:00
Glenn Maynard d97838ebaa whoops; stored offsets were reversed 2003-03-26 22:22:10 +00:00
Glenn Maynard c51f77902b UpdateTapNotesMissedOlderThan's return value is never used; remove it
Make HandleTapRowScore figure out its values for itself, so we don't
duplicate logic
2003-03-26 21:35:15 +00:00
Glenn Maynard 816a25b5bb fix a warning 2003-03-26 21:32:48 +00:00
Glenn Maynard afb98a2e29 make sure it's mostly harmless to call Combo redundantly 2003-03-26 21:32:28 +00:00
Glenn Maynard 6ba559f763 add missing metric 2003-03-26 21:28:21 +00:00
Glenn Maynard 5604e312f6 Store tap offsets. This lets us derive the order notes were hit in;
hopefully ScoreKeeper can be made a little more generic.
2003-03-26 19:34:59 +00:00
Glenn Maynard 57aefba669 unused variable 2003-03-26 19:05:13 +00:00
Glenn Maynard fdcad04705 pull autosync into a separate function 2003-03-26 18:48:19 +00:00
Glenn Maynard 14b4200f1b use IsRowComplete 2003-03-26 18:42:44 +00:00
Glenn Maynard 95987e81b8 add minimum param to IsRowComplete 2003-03-26 18:31:08 +00:00
Glenn Maynard 1352067196 const fixes 2003-03-26 17:53:31 +00:00
Glenn Maynard 194bb88b1d reverse conditional; all else is whitespace changes 2003-03-26 17:38:19 +00:00
Glenn Maynard 0d0de7d336 unused code 2003-03-26 17:36:35 +00:00
Glenn Maynard 67bd03da5d add missing StopTweening()'s; fixes crash 2003-03-25 01:55:25 +00:00
Glenn Maynard 4e0ab2e7d4 fix warnings 2003-03-25 01:39:01 +00:00
Glenn Maynard 7a68deb7cc fix a warning 2003-03-25 01:38:05 +00:00
Glenn Maynard c8efe2e5c7 don't start tweening while we're still loading; it'll play transition sounds
prematurely
2003-03-25 01:37:33 +00:00
Glenn Maynard 51b9c3beec sort input
clear input, so we don't accumulate if we load twice
2003-03-25 01:14:53 +00:00
Glenn Maynard 92c44716f8 Implement textures that only have an alpha channel.
The most immediate use of this is for the company screen shadow;
it's horribly banded in 16-bit, and this lets us load it as an 8-bit texture,
using half the memory and giving full precision.

This could be automatically used, if all non-transparent pixels in a texture
are #FFFFFF.  (todo)

This can also allow us to have extremely large, memory-compact fonts.
A 1024x1024 layer in ALPHA4 is just 512k, and can store several thousand
16x16 glyphs.  (The only trouble is actually constructing such a font;
doing it by hand in Photoshop isn't a nice option.)
2003-03-24 22:38:34 +00:00
Glenn Maynard b27b2a1fb9 fix the demonstration screen when there is music
...
2003-03-24 21:29:06 +00:00
Glenn Maynard 685c3bcbbb fix the demonstration screen when there is no music 2003-03-24 21:26:12 +00:00
Glenn Maynard 38cd4b0ee4 I'm not seeing gaps, but these hacks are causing me to see seams of
saturation for transparent backgrounds.  Are they needed anywhere?
2003-03-24 21:05:23 +00:00
Glenn Maynard a2af656d19 add log so it can be matched to skips 2003-03-24 20:57:19 +00:00
Glenn Maynard 84fad1fe1f increase lock so all tweens have time to finish 2003-03-24 20:55:22 +00:00
Glenn Maynard 26d32eb00d fix music list not tweening completely off screen when choosing fast 2003-03-24 20:46:40 +00:00
Glenn Maynard bbf98e971c updates 2003-03-24 18:29:07 +00:00
Glenn Maynard 69a253600e update 2003-03-24 18:28:38 +00:00
Glenn Maynard 3df0158662 Handle OpenGL reset semantics in a way that might get upstreamed 2003-03-24 18:27:10 +00:00
Glenn Maynard c3af67d497 these are in arch now 2003-03-24 04:33:13 +00:00
Glenn Maynard 6f3175c035 some abortive efforts to bring the crash handler up to date with
vdub; i'll get back to this some day
2003-03-24 04:20:19 +00:00
Glenn Maynard 8f74d7987b revert unused change 2003-03-23 23:06:49 +00:00
Glenn Maynard 050e9bbaa3 Bend over backwards to avoid making an extra copy of each
frame; this brings my high-res test clip from 12 to 22 FPS.
2003-03-23 23:02:40 +00:00
Glenn Maynard 9822eff40b pull songs out of the header that don't really need to be there 2003-03-23 18:52:18 +00:00
Glenn Maynard d9eb60c98a cosmetic 2003-03-23 18:50:58 +00:00
Glenn Maynard 591f2aaddd unused headers 2003-03-23 18:50:42 +00:00
Glenn Maynard ee27f2b676 Handle selections that we have no matches for, so we don't assert
out in ScreenJukebox
2003-03-23 18:49:29 +00:00
Glenn Maynard b63cbeb75e Split off some functions. Use static members, not free functions. 2003-03-23 18:47:13 +00:00
Glenn Maynard b0d64ecb7f TransitionStarWipe is no longer used; remove 2003-03-22 20:35:48 +00:00
Glenn Maynard c731201a4b TransitionBackWipe is no longer used; remove 2003-03-22 20:32:39 +00:00
Glenn Maynard 7f6465f9fa TransitionFadeWipe is no longer used; remove 2003-03-22 20:30:30 +00:00
Glenn Maynard 5ffdec22e5 convert this screen to Menu, to get rid of old transitions 2003-03-22 20:28:03 +00:00
Glenn Maynard 6b6c077f44 unused header 2003-03-22 20:26:30 +00:00
Glenn Maynard 083dd50b57 remove TransitionRectWipe; unused 2003-03-22 20:01:16 +00:00
Glenn Maynard e39dc66c34 remove TransitionInvisible 2003-03-22 19:58:44 +00:00
Glenn Maynard 7b35eeec84 TransitionKeepAlive is no longer used; remove it 2003-03-22 19:55:22 +00:00
Glenn Maynard 3c0a9b3688 TransitionKeepAlive is no longer used; remove it 2003-03-22 19:39:00 +00:00
Glenn Maynard 9469cf0e8f remove LRCFile 2003-03-22 19:20:59 +00:00
Glenn Maynard 0b6daf73f6 LRC reading is so simple now that the LRCFile abstraction only
makes it much more complicated; merge it with LyricsLoader.
2003-03-22 19:19:37 +00:00
Glenn Maynard cefbd50cb8 simplify 2003-03-22 18:57:29 +00:00
Glenn Maynard 71bc246153 remove old comment 2003-03-21 08:32:28 +00:00
Glenn Maynard 3f5e9ddc48 update 2003-03-21 08:20:43 +00:00
Glenn Maynard 9e338d3a5c We're likely to want to make lyric data load elsewhere later, so don't
apply the preference here; simply don't add the lyric display instead.

(Also, lyric data isn't being unloaded, which may cause the preference
to not take effect on songs already played ...)
2003-03-20 18:51:14 +00:00
Glenn Maynard 232b220423 remove aliases that are no longer needed 2003-03-19 23:52:05 +00:00
Glenn Maynard d7926b1ba0 add inline 2003-03-19 23:51:07 +00:00
Glenn Maynard b539a6b105 implement scaling 2003-03-19 23:04:59 +00:00
Glenn Maynard d41dfbc9e7 move lyrics in reverse 2003-03-19 22:48:43 +00:00
Glenn Maynard cdbd4da0c3 fade in and out
spring in
2003-03-19 22:34:44 +00:00
Glenn Maynard ffdc70973d implement colors. 2003-03-19 21:42:45 +00:00
Glenn Maynard 84d29070e4 fixup 2003-03-19 21:41:53 +00:00
Glenn Maynard c950a7327d implement color loading 2003-03-19 21:30:12 +00:00
Glenn Maynard 7053ddf17e add "diffusealpha", to change alpha without changing color 2003-03-19 21:02:50 +00:00
Glenn Maynard 567e1c533f move USB handling into a separate file 2003-03-19 20:34:40 +00:00
Glenn Maynard b4776d1ad0 add USB.* 2003-03-19 20:33:42 +00:00
Glenn Maynard 247d94395d add metrics 2003-03-19 20:02:25 +00:00
Glenn Maynard e00d3d0e9e handle lyric paths like other paths
note that we don't want to load things in TidyUpData, since
that's only called when we're not loading from cache
2003-03-19 20:01:33 +00:00
Glenn Maynard 0e30cd409c add (c) 2003-03-19 20:00:19 +00:00
Glenn Maynard b8f5fe4182 add LyricDisplay 2003-03-19 19:59:13 +00:00
Glenn Maynard aedbf224a9 Move lyric display into an actor 2003-03-19 19:58:22 +00:00
Glenn Maynard 9a23edcd1a Move lyric display into an actor
Use Commands for tween in/out; queue a whole lyric line at
once (simpler)
2003-03-19 19:57:52 +00:00
Glenn Maynard 07fadbc8f5 add GetCommandLength 2003-03-19 19:56:27 +00:00
Glenn Maynard bd51901eb8 cache lyric path 2003-03-19 19:35:32 +00:00
Glenn Maynard a89f4edacc move LRCFile into File Types 2003-03-19 17:48:39 +00:00
Glenn Maynard d3d4e48071 use GAMESTATE->m_fMusicSeconds for the current music time
Tracking it yourself will break with courses, vary depending on how
the screen tweens in, and so on, which you probably don't want.
2003-03-19 17:46:07 +00:00
Glenn Maynard 46c7457ab5 move lyric updating into a separate function
(trying to debug a crash; 6+ levels of indentation makes that hard)
2003-03-19 17:43:11 +00:00
Glenn Maynard 1876494374 add missing metrics 2003-03-19 17:41:54 +00:00
Glenn Maynard 4930e68349 remove more unneeded includes 2003-03-19 17:25:27 +00:00
Glenn Maynard dff657ab19 remove unneeded includes 2003-03-19 17:23:24 +00:00
Glenn Maynard 28e3565775 don't do :: and &foo; replacements for non-strings 2003-03-18 21:41:17 +00:00
Glenn Maynard baef74db42 newline at eof 2003-03-17 23:24:00 +00:00
Glenn Maynard 0d087fb198 fix comparison; this happened to work because STYLE_DANCE_SINGLE and
NOTES_TYPE_DANCE_SINGLE both happen to be 0
2003-03-17 22:12:20 +00:00
Glenn Maynard 84cc54417f fix crash (in code not being executed) 2003-03-17 21:29:17 +00:00
Glenn Maynard 448a1fac6e hopefully fix some g++ problems 2003-03-17 21:13:14 +00:00
Glenn Maynard c7fdf4ed9e whitespace changes only: sm uses a hard tab width of 4, not 8 2003-03-17 20:12:00 +00:00
Glenn Maynard d95c8885db fix busy looping in the null sound driver 2003-03-17 20:05:49 +00:00
Glenn Maynard e6e271f790 hopefully fix some skips in DSound (sleep calculation was giving
results higher than I intended)
2003-03-17 20:02:20 +00:00
Glenn Maynard a561c10189 fix underrun notice 2003-03-17 20:01:05 +00:00
Glenn Maynard ff3ae21bdd fix croppedsprite oddity when scrolling from random/roulette to another
banner
2003-03-17 19:42:17 +00:00
Glenn Maynard be78746167 move SDL event handling to a function, to make the main
loop simpler
2003-03-17 06:20:57 +00:00
Glenn Maynard bbb416d615 re-sync messages, so the jukebox continues at end of song
fix assert failure
2003-03-17 04:56:47 +00:00
Glenn Maynard f04507a017 don't trap users in the jukebox
also, the jukebox could be used as an alternate "attract sequence",
so let's handle the attract coin logic there, too
2003-03-17 04:17:30 +00:00
Glenn Maynard 331fdab2f8 Fix UseSongBG
Hmm.  Need some way of using rendering masks in BGAs.  Not full
access to the zbuffer, of course, just a way to implement things like
the masked-off stage scroll on top of an unmasked song background.

Being able to do this based on the alpha values of another image would
have a whole lot of bonuses for background animations, too; eg the
canonical trick of rendering things masked by a silhouette.  This is tricky
to implement, though.

It'd be even better if we could do this with full alpha.

Most multipass algorithms I can think of would require an alpha
channel on the framebuffer, though, and we very often don't have
that.  I'll keep thinking about it (and perhaps randomly brainstorming
into the nearest edit window, such as WinCVS ...)
2003-03-17 03:24:12 +00:00
Glenn Maynard db47d0825b Start loading the gameplay screen as soon as the stage graphic
is finished, which reduces unnecessary delay.

This also means that it's possible to have, say, an Extra stage screen with
a long, complicated graphic, without having to make every screen delay
that long before prepping.

(It's currently not possible to have different switch delays for each type; eg.
Stage 1 prepping in 1 second and switching in 3, and Extra prepping in 3
seconds and switching in 5; the switch time is constant, based on m_In.
This would be useful in the longer-complicated-extra-stage case.)
2003-03-17 01:48:40 +00:00