Anonymous | Login | Signup for a new account | 2025-06-19 02:05 UTC | ![]() |
My View | View Issues | Change Log | Roadmap | Zandronum Issue Support Ranking | Rules | My Account |
View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
0000848 | Zandronum | [All Projects] Suggestion | public | 2012-05-14 21:18 | 2015-05-26 00:47 | ||||
Reporter | Dusk | ||||||||
Assigned To | |||||||||
Priority | normal | Severity | feature | Reproducibility | N/A | ||||
Status | closed | Resolution | denied | ||||||
Platform | OS | OS Version | |||||||
Product Version | |||||||||
Target Version | Fixed in Version | ||||||||
Summary | 0000848: Customizable Random Powerups | ||||||||
Description | Branch here: 'https://bitbucket.org/CrimsonDusk/notebola/changesets/tip/branch(%22randompowerup%22) [^]' Basically I went and revamped the random powerup code, allowing customization in the process. You can now define your own random spawners with any list of effects you like. The random powerup now reads the dropitem list as a list of possible candidates. The numeric argument (generally means probability) means what bits the effect has. You may be aware that a random powerup's args[0] is actually a filter, these "probabilities" are bit numbers that are checked against the filter. A_RandomPowerupFrame now advances a "cursor" to the next entry to the dropitem list and attempts to set it as the selected effect of the powerup. If the selection fails, it skips the frame it was attached to. If selection of ALL entries on the list are detected to fail, the powerup turns into an <!> exclamation mark of doom to prevent infinite loops. This failsafing wasn't present - if you for instance spawned a random powerup with args[0] of 16 (timefreezer only) and went to multiplayer mode, Skulltag would crash like this. There's a couple of problems though. The aforementioned time freezer only ever is considered if the game is in offline mode. It's forbidden in even emulated multiplayer mode. What do? I was thinking about limiting the time freezer to cooperative with a way to turn this exception off somehow. Also, I'm not sure did I adjust ARandomPowerup::Serialize properly. I'm completely unfamiliar with the Serialize method and just went with the assumption that it excepts the arc variable to be streamed pointers to the member variables. Another one is that when you pick the powerup, the sound that's played is always the default item pickup sound... even though the random powerup only ever gives spheres. Should it cause the sound of the pickup it ultimately gives to the player? And one last problem: what if the pickup is supposed to fail? See attached example wad with RandomRune, you can pick up two of the same rune types. Aside from these problems, I'm pretty glad how this turned out so far. :) | ||||||||
Additional Information | See attached example wad for an.. example of the new random powerup usage. | ||||||||
Attached Files | ![]() | ||||||||
![]() |
|
Dusk (developer) 2015-05-26 00:47 |
In retrospect this was a bad idea. DECORATE and ACS are flexible enough to produce such a random powerup if needed... |
This issue is already marked as resolved. If you feel that is not the case, please reopen it and explain why. |
|
Supporters: | No one explicitly supports this issue yet. |
Opponents: | No one explicitly opposes this issue yet. |
![]() |
|||
Date Modified | Username | Field | Change |
2012-05-14 21:18 | Dusk | New Issue | |
2012-05-14 21:18 | Dusk | Status | new => assigned |
2012-05-14 21:18 | Dusk | Assigned To | => Dusk |
2012-05-14 21:18 | Dusk | File Added: randompowerup.wad.zip | |
2012-05-14 21:19 | Dusk | Status | assigned => needs review |
2012-05-14 21:19 | Dusk | Description Updated | View Revisions |
2015-05-26 00:47 | Dusk | Note Added: 0012398 | |
2015-05-26 00:47 | Dusk | Status | needs review => closed |
2015-05-26 00:47 | Dusk | Assigned To | Dusk => |
2015-05-26 00:47 | Dusk | Resolution | open => denied |
Copyright © 2000 - 2025 MantisBT Team |