Commit graph

10 commits

Author SHA1 Message Date
toaster
3dd44961a0 Obj_AudienceInit: Improve follower name processing
- Convert underscores to spaces for string comparison
- Report typoes to the user
2023-04-21 21:07:14 +01:00
toaster
c7cc730c35 Obj_AudienceInit: Improve color handling
- Catch all invalid colors with default randomisation
- Catch invalid colors more thoroughly
- Report typos to the user
2023-04-21 21:06:21 +01:00
toaster
2f8b8cf532 Follower lists: Fix typing
Should consistently be signed INT16, not unsigned UINT16
2023-04-21 20:52:13 +01:00
toaster
98288fd289 Obj_AudienceInit: Incorporate follower scale into multipliciation 2023-04-21 20:20:51 +01:00
toaster
a4a5752df0 Obj_AudienceThink: Ease the angle change 2023-04-21 18:24:51 +01:00
toaster
91f4169212 Follower-mimicing emblems: Permit them to just sit there if their defined bobamp is 0
This is unlike audience members, which have a minimum jump height
2023-04-21 17:42:44 +01:00
toaster
945a00df6e Permit emblem pickups that take on the visage of a Follower
- If Global-type map emblem has GE_FOLLOWER, attempt to take on the appearance of the follower specified by var2.
    - Unlike MT_RANDOMAUDIENCE, this picks whether the object should be floating or hopping based on the specified mode of the source Follower.
    - Always chooses to face the nearest player.
- Rearrange some properties affected by Obj_Audience/audience.c to not conflict with MT_EMBLEM
2023-04-21 15:17:43 +01:00
toaster
1e5fadc901 Audience-related functions: Rename + adjust
- Since they're not necessarily going to be randomised, make the prefix Obj_Audience instead of Obj_RandomAudience.
- Externalise some properties that we may not want affecting all hypothetical uses.
    - Flag auto-application should be done externally, since this won't be general.
    - Focusing on player should be controlled by the function call, not an ambiguous flag.
2023-04-21 15:09:07 +01:00
toaster
178fe3052d Obj_RandomAudienceInit: Increase the scale to 3x instead of 2x 2023-04-20 23:22:03 +01:00
toaster
a74b7995c9 Implement Follower Audience object
- Replaces Chao audience entirely
    - Convenient, because one of the two default follower types used in the audience is Chao
- Can provide one follower, or a list of followers, on the stringarg1 (seperated by spaces/commas) and it'll pick randomly between them
    - If not provided, uses the mapheader follower list
- Can provide one skincolor, or a list of skincolors, on the stringarg2 (seperated by spaces/commas) and it'll pick randomly between them
    - If not provided, uses the follower's default color
    - If the follower's default color is Match/Opposite or the user provides "Random" in stringarg2, pick a random skincolor
- If arg3 is set, floats in the air
    - MTF_OBJECTSPECIAL in binary format
- If arg4 is set, faces the closest player
    - MTF_AMBUSH in binary format
    - Uses some funny mathematical tricks to avoid checking on the same frame as every other audience member at once
2023-04-20 23:15:56 +01:00