|
6 | 6 | * |
7 | 7 | * Expected behavior: The condition functions will return FALSE. |
8 | 8 | */ |
9 | | -func int G1CP_Test_0016_RunDialog(var string dialogConditionName, var string infoName) { |
| 9 | +func int G1CP_Test_0016() { |
10 | 10 | var C_Npc npc; npc = G1CP_Testsuite_FindNpc("Grd_212_Torwache"); |
11 | | - var int funcId; funcId = G1CP_Testsuite_CheckDialogConditionFunc(dialogConditionName); |
12 | | - var int infoId; infoId = G1CP_Testsuite_CheckInfo(infoName); |
| 11 | + var int func1Id; func1Id = G1CP_Testsuite_CheckDialogConditionFunc("Info_Thorus_Give1000Ore_Condition"); |
| 12 | + var int func2Id; func2Id = G1CP_Testsuite_CheckDialogConditionFunc("Info_Thorus_LetterForMages_Condition"); |
| 13 | + var int info1Id; info1Id = G1CP_Testsuite_CheckInfo("Info_Thorus_BribeGuard"); |
| 14 | + var int info2Id; info2Id = G1CP_Testsuite_CheckInfo("Info_Thorus_EnterCastle"); |
13 | 15 | var int aiVarId; aiVarId = G1CP_Testsuite_CheckIntConst("AIV_PASSGATE"); |
14 | 16 | G1CP_Testsuite_CheckPassed(); |
15 | 17 |
|
16 | | - // Backup values |
17 | 18 | var int aiVarBak; aiVarBak = G1CP_NpcGetAiVarI(npc, aiVarId, 0); |
18 | | - var int toldBak; toldBak = Npc_KnowsInfo(hero, infoId); |
| 19 | + var int told1Bak; told1Bak = Npc_KnowsInfo(hero, info1Id); |
| 20 | + var int told2Bak; told2Bak = Npc_KnowsInfo(hero, info2Id); |
| 21 | + if (final()) { |
| 22 | + G1CP_NpcSetAiVarI(npc, aiVarId, aiVarBak); |
| 23 | + G1CP_SetInfoToldI(info1Id, told1Bak); |
| 24 | + G1CP_SetInfoToldI(info2Id, told2Bak); |
| 25 | + }; |
19 | 26 |
|
20 | | - // Set new values |
| 27 | + // First dialog |
21 | 28 | G1CP_NpcSetAiVarI(npc, aiVarId, TRUE); |
22 | | - G1CP_SetInfoTold(infoName, TRUE); |
| 29 | + G1CP_SetInfoToldI(info1Id, TRUE); |
| 30 | + G1CP_Testsuite_Call(func1Id, 0, 0, FALSE); |
| 31 | + G1CP_Testsuite_Assert(MEM_PopIntResult(), FALSE); |
23 | 32 |
|
24 | | - // Call dialog condition function |
25 | | - G1CP_Testsuite_Call(funcId, 0, 0, FALSE); |
26 | | - var int ret; ret = MEM_PopIntResult(); |
27 | | - |
28 | | - // Restore values |
29 | | - G1CP_NpcSetAiVarI(npc, aiVarId, aiVarBak); |
30 | | - G1CP_SetInfoTold(infoName, toldBak); |
31 | | - |
32 | | - // Check return value |
33 | | - if (ret) { |
34 | | - G1CP_TestsuiteErrorDetailSSS("Dialog condition '", dialogConditionName, "' failed"); |
35 | | - return FALSE; |
36 | | - }; |
| 33 | + // Second dialog |
| 34 | + G1CP_NpcSetAiVarI(npc, aiVarId, TRUE); |
| 35 | + G1CP_SetInfoToldI(info2Id, TRUE); |
| 36 | + G1CP_Testsuite_Call(func2Id, 0, 0, FALSE); |
| 37 | + G1CP_Testsuite_Assert(MEM_PopIntResult(), FALSE); |
37 | 38 |
|
38 | 39 | return TRUE; |
39 | 40 | }; |
40 | | -func int G1CP_Test_0016() { |
41 | | - var int passed; passed = FALSE; |
42 | | - |
43 | | - // First dialog |
44 | | - passed += G1CP_Test_0016_RunDialog("Info_Thorus_Give1000Ore_Condition", "Info_Thorus_BribeGuard"); |
45 | | - passed += G1CP_Test_0016_RunDialog("Info_Thorus_LetterForMages_Condition", "Info_Thorus_EnterCastle"); |
46 | | - |
47 | | - return (passed == 2); |
48 | | -}; |
0 commit comments