Proper event system. Improved sounds. Temporary hard-coded events

This commit is contained in:
stevenhowes
2021-05-29 21:30:48 +01:00
parent 9ff12c4766
commit 1b82cfcb45
6 changed files with 73 additions and 24 deletions
Binary file not shown.
+70 -22
View File
@@ -83,9 +83,9 @@ struct SmartTile_s SmartTiles[SMARTTILES];
struct EventAction_s {
int Event;
unsigned char Action; //0=change tile / 1=change area / sound
unsigned char ActionValue; //tile sprite no. / area ID / sound ID
int ActionTarget; //tile ID / n/a / channel ID
unsigned char Action; //0=change tile / 1=change area / 2=sound / 3=rearm
unsigned char ActionValue; //tile sprite no. / area ID / sound ID / na
int ActionTarget; //tile ID / n/a / channel ID / eventid
};
struct EventAction_s EventActions[MAXEVENTACTIONS];
@@ -116,20 +116,72 @@ void game2_loadevents()
EventActions[i].ActionTarget = -1;
}
sprintf(Events[0].Name,"SetArea");
Events[0].Triggered = 0;
Events[0].RearmDelay = 500;
Events[0].NextRearm = -1;
i=0;
EventActions[0].Event = 0;
EventActions[0].Action = 1;
EventActions[0].ActionValue = 1;
EventActions[0].ActionTarget = -1;
sprintf(Events[i].Name,"PlayerStart");
Events[i].Triggered = 0;
Events[i].RearmDelay = -1;
Events[i].NextRearm = -1;
i++;
sprintf(Events[i].Name,"SBBR-DOOROPEN");
Events[i].Triggered = 0;
Events[i].RearmDelay = -1;
Events[i].NextRearm = -1;
i++;
sprintf(Events[i].Name,"SBBR-DOORCLOSE");
Events[i].Triggered = 1;
Events[i].RearmDelay = -1;
Events[i].NextRearm = -1;
i++;
i=0;
// PlayerStart
EventActions[i].Event = 0;
EventActions[i].Action = 1;
EventActions[i].ActionValue = 1;
EventActions[i].ActionTarget = -1;
i++;
EventActions[i].Event = 0;
EventActions[i].Action = 2;
EventActions[i].ActionValue = PCMSAMPLE_HAIL;
EventActions[i].ActionTarget = PCMCHANNEL_AMBIENT;
i++;
// SBBR-DOOROPEN
EventActions[i].Event = 1;
EventActions[i].Action = 0;
EventActions[i].ActionValue = 31;
EventActions[i].ActionTarget = 713;
i++;
EventActions[i].Event = 1;
EventActions[i].Action = 2;
EventActions[i].ActionValue = PCMSAMPLE_DOOR;
EventActions[i].ActionTarget = PCMCHANNEL_AMBIENT;
i++;
EventActions[i].Event = 1;
EventActions[i].Action = 3;
EventActions[i].ActionTarget = 2;
i++;
// SBBR-DOORCLOSE
EventActions[i].Event = 2;
EventActions[i].Action = 0;
EventActions[i].ActionValue = 29;
EventActions[i].ActionTarget = 713;
i++;
EventActions[i].Event = 2;
EventActions[i].Action = 2;
EventActions[i].ActionValue = PCMSAMPLE_DOOR;
EventActions[i].ActionTarget = PCMCHANNEL_AMBIENT;
i++;
EventActions[i].Event = 2;
EventActions[i].Action = 3;
EventActions[i].ActionTarget = 1;
i++;
EventActions[1].Event = 0;
EventActions[1].Action = 2;
EventActions[1].ActionValue = PCMSAMPLE_DOOR;
EventActions[1].ActionTarget = PCMCHANNEL_AMBIENT;
}
void game2_loadsmarttiles(char* filename)
@@ -528,14 +580,10 @@ void game2_triggerevent(int id)
// Don't trigger if we've been fired and not reset
if(Events[id].Triggered == 1)
{
printf("Not triggering event %d - %s\n",id,Events[id].Name);
return;
}
// Record firing
Events[id].Triggered = 1;
printf("Triggering event %d - %s\n",id,Events[id].Name);
// Schedule re-arm if required
if(Events[id].RearmDelay >= 0)
@@ -552,6 +600,8 @@ void game2_triggerevent(int id)
sprintf(areaname,"%s",Areas[EventActions[i].ActionValue].name);
else if(EventActions[i].Action == 2) // Play sound
sound_pcm_playsample_ifidle(EventActions[i].ActionTarget,EventActions[i].ActionValue);
else if(EventActions[i].Action == 3) // Re-arm
Events[EventActions[i].ActionTarget].Triggered = 0;
}
}
@@ -637,10 +687,8 @@ int game2_tick()
fullmap[SmartTiles[i].ActionTarget] = SmartTiles[i].ActionValue;
else if(SmartTiles[i].Action == 1) // Change area name
sprintf(areaname,"%s",Areas[SmartTiles[i].ActionValue].name);
else if(SmartTiles[i].Action == 2) // Change area name
{
else if(SmartTiles[i].Action == 2) // Trigger event
game2_triggerevent(SmartTiles[i].ActionValue);
}
}
}
}
Binary file not shown.
Binary file not shown.
+2 -1
View File
@@ -1 +1,2 @@
€€€€~†…€`”|†}†|•|}{‰~~w‡pŠ€‡|~}{~{x…|„|€~~„~~€{{}~|~~~~€~€~€~€~€€€€€€€€€~€~€~€€€€€€€€~€€€~€€€€€€€€€€€€€€€€~€€€€~€€€€€~€€€€€€€€€€~€€€~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~}‚}‚|||„{„|||‡mĄPšns‚…kšbťek“u‡{ŠtŽrŽrŚu{}|y…{‚€~‚€|„~}‚€}…y‚~}…~{†z€„y‚…€y…‚x~„x…†{x€…yyzy{{‰|…‚†vŚ~‹tŽ}ŠwŠ„‚}ŽwŽršl–lťl•rŹ{h§Z§R§]“r€oŽg”f“eŤk—sŽzvj}yŠk“f…€……~‡uŤ}Ťu‡u„}|~…x~zx‰x…{„}€€||€}~~€~~€}|…x‰w‡v‰uŠ{„‚~Šv“omšl™o}~kgi—i‰x€zxwŠpŹrŤx…}}‡w‰{„}w†y|y|…wŠx‡~~€‚{‡uŠw†z…|~z||||€~}}|€~}y†z{}|„}~€€~€}|~|~~}€€~€€~~€~}~~€~~}~€€~~~€€~€~€€~‚~~€~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~€€€€€~€~…€€~}|~~~€€€~|‚„€}~€‚†€}}‰€v‚|~’}„wvŚŚx~z„~€‚~~~}~~}}}}€}Śu‚zs„x……‚†z~{‚€‚€€€~~€€€€€€~~€€~}‚~€€€~‚}‚}‚}~€€|q‰y„|†{€€}{„y…x†|}~{}}~{~……{|~…‚€‚~‚w…{~}z€€„€~€{…~}~€~}„}€„{€}€}€|€|~~~€„}‚‚{‚€€~€€||{…y…w‡y…zzv‰zy‡z€€€€€}}}|‚~‚}‚~~~~~~}}€~}~~€~€~}~~~~}}~€€€~~}„|…|…}…}„~‚~†z{„|†z…€€‚|„{„z…z}€~{||}~~€€~‚~‚~‚}‚€€€€~‚~€~~€€~~€‚~~~~~€€~~€€€€€€€€€€~~€€€€€€€€€€€€€€€
~~€~€€~{s“‹š'Ëaźpšpµ—kxŠ“h•^e_¦Ž”w{wxx`‰w”y|~}}{‡s‡pw~‚‚{…vŠy‡z~„z|~~~~|€„{†~{|~{€~}z~}|€}€~~}‚‚}€}}€‚~„€‚{„{‚{‚~€z‚|€~€€}€~~€~~€~|€~{~€}€}~{€€‚~‚}‚z€€€~‚€€~€€€}‚~~‚~~}~€€€|€~}~€‚~~~}€|~~}~€€€€€~{€€€}€€€€~€y„~‚~~€€~€~€~€}€||€~~€€€~€€€€~~€~~~€€€€~~€€‚€€€~€}€~}~~€€~~|z…y†x†w…y…y„z|€}…wŚn—cŁU¸,ë1nŞ6ˇ6Ţ ç)żXťt§RŔDÁIµY˘iŚ{yj•hll{{{}€t…r‡}z•s{Š{x‡Šgކqtrz‘‰n‚•jsŠi€›zuqr”ve‡ycŤŽpsŠd—}ˇ`šťoŚ™„Śo¸c«TÇX·NÇaŁmžŹq°Lçű˙Ó6—‰FÂ"Ö
ŘĂ:©NeŹšjµ/®1~U°AŁa[ˇwśya«W˘ˇu{mi…gźi~hŽfw€„}pŤrŹsŠx}‡w„‚yz†qu‡rŤo•j“u…v„€tź`±TÂJÇOşbŞy‹ś\Ď-đ"Ô?®Zx\ťU”[ŞOžTŞP o‡Žn]§b”s—e‰|wj•eq“i}}“ukšb `w‚‚|‰rŤl—lv„wu…|{†z{{„z€|}zutqŚmŚz~~z‰noŤ{…‚…|„|€}z†v‰{…y‡vŚs}|}„~~|‡x…||†|€}w‡x†z„z€z‡{†y†}|„{…}~€|~…}…€{…{†z€€|{…|‚}}‚~~€€~€~€€€~}€€€€€{€~~~€€}€€~€€~~€€~~€€€}€~‚~€~€€~€€~‚‚€€€‚~€~€€~~€}}‚€}~€€~€~}€~~€~„}|z„vŤ…“w~q}|…€„~}~v‚‚}†}‚x}“Šv‚}„‚€•†{r’’c{i°š}”uwU–śs©zn„k…Ž}{~}y|Ś}vz‰‚x}z…‰…z€wz|nĄxm‰L‰p~™†“‹}qvvv€…}}}€~€~€~~€~~z€€}~~€}~~~€€€~€}~}€}}~{~‰~~y‚„{…x…x~|‚‚}†z…}{†zŠs“eˇZ‚{…‹k–h–j’lŤq‡„~„sw~Ś}“r…r‰yŚv{zŽ‚‹€n{„†„“xŹwŽh…‚mŚ{~Žut†‹wz‡p†r‡„y€|}}Ź}xxz~y‰r‡yxŽv{w€€~ŚŤ‡y|Š{„w‰|ŠmŚqŤprr…ynižaˇe“xŽz„…v“vŠwŠqw„~†}†~ŠuŚx~„~~{„uŚv‡z†u‡{€{„}€~€{z†y‰vŠx~}~}}€~~{…}„yŠuŤwŽvŚyŠ}‡‚‡}Žrkťk”y{‰}}Źx{w‰|‰vŽqŤtŠv‡}y‰sŠqŹnw†y|~x‰w‰|…{†{„~…|„|…|„|z„~€}|„z}€}|~~{„{…}~„{…|„|}€|||{„}€€~€}‚|‚~€~€€€€}„}‚~‚~~~}{|~€~€~}~~€€~‚}‚€~€~~€~~~~}}~~€€€~~~~~€~
+1 -1
View File
File diff suppressed because one or more lines are too long