Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- unsigned int shiftOffset = STR->getOriginalSectionBeginOffset();
- Trigger* first = TRIG->triggers.get(0);
- TRIG->triggers.remove(0);
- for (unsigned int i = 0; i < 8; i++) {
- // Make a new trigger
- MALLOC_N(trigger, Trigger, 1, { free(first); return false; });
- if (!TRIG->triggers.insert(0, trigger)) { free(first); return false; }
- // Copy original values
- memcpy(trigger, first, sizeof(Trigger));
- // Set to one specific player only
- for (unsigned int o = 0; o < 28; o++) {
- trigger->players[o] = 0;
- }
- trigger->players[i] = 1;
- SET_ACT_COUNT_UP_ADDR(1, EUD_STR, shiftOffset); // Add offset to STR, void condition in all lists
- // Remove action from all triggers
- unsigned int nextActionIndex = 2;
- for (unsigned int o = 0; o < 8; o++) {
- ACT_SET_DEATHS((&(trigger->actions[nextActionIndex])), ADDRESS_TO_EPD(EUD_TRGLIST[o]), Modifiers::Add, 378, 0); // Set first pointer to 2nd action type
- nextActionIndex++;
- ACT_SET_DEATHS((&(trigger->actions[nextActionIndex])), ADDRESS_TO_EPD(EUD_CP), Modifiers::SetTo, ADDRESS_TO_EPD(EUD_TRGLIST[o]), 0); // Set CP to 2nd action type
- nextActionIndex++;
- ACT_SET_DEATHS((&(trigger->actions[nextActionIndex])), 13, Modifiers::SetTo, 0, 0); // Set action type to 0
- nextActionIndex++;
- ACT_SET_DEATHS((&(trigger->actions[nextActionIndex])), ADDRESS_TO_EPD(EUD_TRGLIST[o]), Modifiers::Subtract, 378, 0); // Set first pointer to original value
- nextActionIndex++;
- }
- ACT_SET_DEATHS((&(trigger->actions[nextActionIndex])), ADDRESS_TO_EPD(EUD_CP), Modifiers::SetTo, i, 0); // Restore current played ID
- nextActionIndex++;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement