| 2896 | } |
| 2897 | |
| 2898 | bool TSShapeConstructor::ChangeSet::addCmd_addTrigger(const TSShapeConstructor::ChangeSet::Command& newCmd) |
| 2899 | { |
| 2900 | // Remove a matching removeTrigger command, but stop if the sequence is used as |
| 2901 | // a source for addSequence (since triggers are copied). |
| 2902 | |
| 2903 | for (S32 index = mCommands.size() - 1; index >= 0; index--) |
| 2904 | { |
| 2905 | Command& cmd = mCommands[index]; |
| 2906 | switch (cmd.type) |
| 2907 | { |
| 2908 | case CmdRemoveTrigger: |
| 2909 | if (namesEqual(cmd.argv[0], newCmd.argv[0]) && |
| 2910 | cmd.argv[1] == newCmd.argv[1] && |
| 2911 | cmd.argv[2] == newCmd.argv[2]) |
| 2912 | { |
| 2913 | mCommands.erase(index); // Remove previous removeTrigger command |
| 2914 | return false; |
| 2915 | } |
| 2916 | break; |
| 2917 | |
| 2918 | case CmdAddSequence: |
| 2919 | if (namesEqual(cmd.argv[1], newCmd.argv[0])) |
| 2920 | return true; // Sequence is used as a source => cannot go back further |
| 2921 | break; |
| 2922 | |
| 2923 | default: |
| 2924 | break; |
| 2925 | } |
| 2926 | } |
| 2927 | |
| 2928 | return true; |
| 2929 | } |
| 2930 | |
| 2931 | bool TSShapeConstructor::ChangeSet::addCmd_removeTrigger(const TSShapeConstructor::ChangeSet::Command& newCmd) |
| 2932 | { |
nothing calls this directly
no test coverage detected