Code: 
 ; НАЗВАНИЕ: TypeMessages 
; ВЕРСИЯ: 1.0 
; АВТОР: Master Of Puppets 
; ОПИСАНИЕ: Расширение функции показа сообщения (новые типы картинок) 
; EXE: MOP 
; StatFree = YES 
 
; дополнительная ветка свитча в SUB_L004F5540 (тип картинки №37): 
F558A 83FF26;                            cmp    edi,00000026h 
F5595 8A8FB8064400;                      mov    cl,[edi+CASE_004406B8] 
F559B FF248D64064400;                    jmp    [CASE_PROCTABLE_00440664+ecx*4] 
 
40664 EA554F00;                         dd    CASE_004F639C_PROC0000 
40668 92584F00;                         dd    CASE_004F639C_PROC0001 
4066C 38594F00;                         dd    CASE_004F639C_PROC0002 
40670 DB594F00;                         dd    CASE_004F639C_PROC0003 
40674 E7604F00;                         dd    CASE_004F639C_PROC0004 
40678 3A614F00;                         dd    CASE_004F639C_PROC0005 
4067C 8D614F00;                         dd    CASE_004F639C_PROC0006 
40680 EE5F4F00;                         dd    CASE_004F639C_PROC0007 
40684 41604F00;                         dd    CASE_004F639C_PROC0008 
40688 94604F00;                         dd    CASE_004F639C_PROC0009 
4068C FF5D4F00;                         dd    CASE_004F639C_PROC000A 
40690 0C5D4F00;                         dd    CASE_004F639C_PROC000B 
40694 B95B4F00;                         dd    CASE_004F639C_PROC000C 
40698 A2554F00;                         dd    CASE_004F639C_PROC000D 
4069C 745A4F00;                         dd    CASE_004F639C_PROC000E 
406A0 475F4F00;                         dd    CASE_004F639C_PROC000F 
406A4 23574F00;                         dd    CASE_004F639C_PROC0010 
406A8 DD614F00;                         dd    CASE_004F639C_PROC0011 
406AC BDAB4700;                         dd    CASE_004F639C_PROC0012 - новая ветка (сообщения из MTypeMsg.txt) 
406B0 17706300;                 dd    CASE_004F639C_PROC0013 - новая ветка (произвольное сообщение) 
406B4 90909090; - зарезервировано 
 
406B8 00000000000000110102030405060708 
406C8 090A11110B0C0D0D0D0D0D0D0D0D0D0E 
406D8 0E0E0E0F10121390; 1 зарезервированное значение 
 
; CASE_004F639C_PROC0012: 
7ABBD 6A01;                             PUSH 1 
7ABBF 8B0D5C354000;                     MOV ECX,DWORD PTR DS:[40355C] 
7ABC5 8B4C8104;                         MOV ECX,DWORD PTR DS:[ECX+EAX*4+4] 
7ABC9 8B4904;                           MOV ECX,DWORD PTR DS:[ECX+4] 
7ABCC 8B7108;                           MOV ESI,DWORD PTR DS:[ECX+8] //текст под картинкой 
7ABCF 83C9FF;                           OR ECX,FFFFFFFF 
7ABD2 33C0;                              XOR EAX,EAX 
7ABD4 8BFE;                              MOV EDI,ESI 
7ABD6 8D5318;                           LEA EDX,DWORD PTR DS:[EBX+18] 
7ABD9 F2AE;                             REPNE SCAS BYTE PTR ES:[EDI] 
7ABDB F7D1;                              NOT ECX 
7ABDD 49;                                DEC ECX 
7ABDE 894D08;                           MOV DWORD PTR SS:[EBP+8],ECX 
7ABE1 51;                                PUSH ECX 
7ABE2 8BCA;                              MOV ECX,EDX 
7ABE4 E8579EF8FF;                       CALL mop.00404A40 
7ABE9 84C0;                              TEST AL,AL 
7ABEB 741F;                             JE SHORT mop.0047AC0C 
7ABED 8B4D08;                           MOV ECX,DWORD PTR SS:[EBP+8] 
7ABF0 8B7B1C;                           MOV EDI,DWORD PTR DS:[EBX+1C] 
7ABF3 8D4318;                           LEA EAX,DWORD PTR DS:[EBX+18] 
7ABF6 8BD1;                              MOV EDX,ECX 
7ABF8 C1E902;                           SHR ECX,2 
7ABFB F3A5;                             REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI] 
7ABFD 8BCA;                              MOV ECX,EDX 
7ABFF 83E103;                           AND ECX,3 
7AC02 F3A5;                             REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI] 
7AC04 52;                                PUSH EDX 
7AC05 8BC8;                              MOV ECX,EAX 
7AC07 E8149EF8FF;                       CALL mop.00404A20 
7AC0C 8B7B04;                           MOV EDI,DWORD PTR DS:[EBX+4] 
7AC0F 8B0D5C354000;                     MOV ECX,DWORD PTR DS:[40355C] 
7AC15 8B4CB904;                         MOV ECX,DWORD PTR DS:[ECX+EDI*4+4] 
7AC19 8B4904;                           MOV ECX,DWORD PTR DS:[ECX+4] 
7AC1C 8B39;                              MOV EDI,DWORD PTR DS:[ECX] //деф 
7AC1E 83C9FF;                           OR ECX,FFFFFFFF 
7AC21 33C0;                              XOR EAX,EAX 
7AC23 8D5308;                           LEA EDX,DWORD PTR DS:[EBX+8] 
7AC26 F2AE;                             REPNE SCAS BYTE PTR ES:[EDI] 
7AC28 F7D1;                              NOT ECX 
7AC2A 49;                                DEC ECX 
7AC2B 6A01;                             PUSH 1 
7AC2D 894D08;                           MOV DWORD PTR SS:[EBP+8],ECX 
7AC30 51;                                PUSH ECX 
7AC31 8BCA;                              MOV ECX,EDX 
7AC33 E8089EF8FF;                       CALL mop.00404A40 
7AC38 84C0;                              TEST AL,AL 
7AC3A 7431;                             JE SHORT mop.0047AC6D 
7AC3C 8B7304;                           MOV ESI,DWORD PTR DS:[EBX+4] 
7AC3F 8B0D5C354000;                     MOV ECX,DWORD PTR DS:[40355C] 
7AC45 8B4CB104;                         MOV ECX,DWORD PTR DS:[ECX+ESI*4+4] 
7AC49 8B4904;                           MOV ECX,DWORD PTR DS:[ECX+4] 
7AC4C 8B31;                              MOV ESI,DWORD PTR DS:[ECX] //деф 
7AC4E 8B4D08;                           MOV ECX,DWORD PTR SS:[EBP+8] 
7AC51 8B7B0C;                           MOV EDI,DWORD PTR DS:[EBX+C] 
7AC54 8D4308;                           LEA EAX,DWORD PTR DS:[EBX+8] 
7AC57 8BD1;                              MOV EDX,ECX 
7AC59 C1E902;                           SHR ECX,2 
7AC5C F3A5;                             REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI] 
7AC5E 8BCA;                              MOV ECX,EDX 
7AC60 83E103;                           AND ECX,3 
7AC63 F3A5;                             REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI] 
7AC65 52;                                PUSH EDX 
7AC66 8BC8;                              MOV ECX,EAX 
7AC68 E8B39DF8FF;                       CALL mop.00404A20 
7AC6D 8B7304;                           MOV ESI,DWORD PTR DS:[EBX+4] 
7AC70 8B0D5C354000;                     MOV ECX,DWORD PTR DS:[40355C] 
7AC76 8B4CB104;                         MOV ECX,DWORD PTR DS:[ECX+ESI*4+4] 
7AC7A 8B4904;                           MOV ECX,DWORD PTR DS:[ECX+4] 
7AC7D FF7104;                           PUSH DWORD PTR DS:[ECX+4] //Номер кадра в дефе 
7AC80 E8ACC20100;      CALL mop.00496F31 
7AC85 8BD0;                              MOV EDX,EAX 
7AC87 E99AB50700;                       JMP mop.004F6226 
 
; CASE_004F639C_PROC0013: 
237017 6A01;            PUSH 1 
237019 8B359C268302;    MOV ESI,DWORD PTR DS:[283269C] 
23701F 83C9FF;          OR ECX,FFFFFFFF 
237022 33C0;             XOR EAX,EAX 
237024 8BFE;             MOV EDI,ESI 
237026 8D5318;          LEA EDX,DWORD PTR DS:[EBX+18] 
237029 F2AE;            REPNE SCAS BYTE PTR ES:[EDI] 
23702B F7D1;             NOT ECX 
23702D 49;               DEC ECX 
23702E 894D08;          MOV DWORD PTR SS:[EBP+8],ECX 
237031 51;               PUSH ECX 
237032 8BCA;             MOV ECX,EDX 
237034 E807DADCFF;      CALL mop.00404A40 
237039 84C0;             TEST AL,AL 
23703B 741F;            JE SHORT mop.0063705C 
23703D 8B4D08;         MOV ECX,DWORD PTR SS:[EBP+8] 
237040 8B7B1C;          MOV EDI,DWORD PTR DS:[EBX+1C] 
237043 8D4318;          LEA EAX,DWORD PTR DS:[EBX+18] 
237046 8BD1;             MOV EDX,ECX 
237048 C1E902;          SHR ECX,2 
23704B F3A5;            REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI] 
23704D 8BCA;             MOV ECX,EDX 
23704F 83E103;          AND ECX,3 
237052 F3A5;            REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI] 
237054 52;               PUSH EDX 
237055 8BC8;             MOV ECX,EAX 
237057 E8C4D9DCFF;      CALL mop.00404A20 
23705C 8B3D94268302;    MOV EDI,DWORD PTR DS:[2832694] 
237062 83C9FF;          OR ECX,FFFFFFFF 
237065 33C0;             XOR EAX,EAX 
237067 8D5308;          LEA EDX,DWORD PTR DS:[EBX+8] 
23706A F2AE;            REPNE SCAS BYTE PTR ES:[EDI] 
23706C F7D1;             NOT ECX 
23706E 49;               DEC ECX 
23706F 6A01;            PUSH 1 
237071 894D08;          MOV DWORD PTR SS:[EBP+8],ECX 
237074 51;               PUSH ECX 
237075 8BCA;             MOV ECX,EDX 
237077 E8C4D9DCFF;      CALL mop.00404A40 
23707C 84C0;             TEST AL,AL 
23707E 7425;            JE SHORT mop.006370A5 
237080 8B3594268302;    MOV ESI,DWORD PTR DS:[2832694] 
237086 8B4D08;          MOV ECX,DWORD PTR SS:[EBP+8] 
237089 8B7B0C;          MOV EDI,DWORD PTR DS:[EBX+C] 
23708C 8D4308;          LEA EAX,DWORD PTR DS:[EBX+8] 
23708F 8BD1;             MOV EDX,ECX 
237091 C1E902;          SHR ECX,2 
237094 F3A5;            REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI] 
237096 8BCA;             MOV ECX,EDX 
237098 83E103;          AND ECX,3 
23709B F3A5;            REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI] 
23709D 52;               PUSH EDX 
23709E 8BC8;             MOV ECX,EAX 
2370A0 E87BD9DCFF;      CALL mop.00404A20 
2370A5 8B1598268302;    MOV EDX,DWORD PTR DS:[2832698] 
2370AB E976F1EBFF;      JMP mop.004F6226 
 
 
 
; дополнительная ветка свитча в L004F11B0 (текст сообщения при нажатии ПКМ на картинке): 
; сокращение кода: 
23FE64 B5114F00;                         dd    L004F11B5 
 
F11B5 55;                               PUSH EBP 
F11B6 8BEC;                             MOV EBP,ESP 
F11B8 6AFF;                            PUSH -1 
F11BA 68706D7B00;                      PUSH mop.007B6D70 
F11BF 64A100000000;                   MOV EAX,DWORD PTR FS:[0] 
F11C5 50;                               PUSH EAX 
F11C6 64892500000000;                 MOV DWORD PTR FS:[0],ESP 
F11CD 83EC28;                          SUB ESP,28 
F11D0 8A4508;                          MOV AL,BYTE PTR SS:[EBP+8] 
F11D3 84C0;                             TEST AL,AL 
F11D5 7405;                            JE SHORT mop.004F11DC 
F11D7 8A450C;                          MOV AL,BYTE PTR SS:[EBP+C] 
F11DA 84C0;                             TEST AL,AL 
F11DC 0F84F0030000;                    JE mop.004F15D2 
F11E2 8B4138;                          MOV EAX,DWORD PTR DS:[ECX+38] 
F11E5 83F826;                          CMP EAX,26 
F11E8 0F87D2030000;                    JA mop.004F15C0 
F11EE 0FB69028164F00;                  MOVZX EDX,BYTE PTR DS:[EAX+4F1628] 
 
F161C F86D4900;                         dd    CASE_004F15E4_PROC000E - новая ветка (сообщения из MTypeMsg.txt) 
F1620 E55A7100;                         dd    CASE_004F15E4_PROC000E - новая ветка (произвольное сообщение) 
F1624 90909090;                         dd    CASE_004F15E4_PROC000E  - зарезервировано 
; перенесённая таблица 
F1628 000000000000000D01020D0304050607 
F1638 08090D0D0A0D0D0D0D0D0D0D0D0D0D0B 
F1648 0B0B0B0C000E0F90; 
 
; Смена местами команд, чтобы сюда прыгать: 
F11FC 8B0D94536A00;    MOV ECX,DWORD PTR DS:[6A5394] 
F1202 6A00;            PUSH 0 - сюда 
F1204 6AFF;            PUSH -1 
 
; CASE_004F15E4_PROC000E 
96DF8 8B493C;                           MOV ECX,DWORD PTR DS:[ECX+3C] 
96DFB 8B155C354000;                     MOV EDX,DWORD PTR DS:[40355C] 
96E01 8B548A04;                         MOV EDX,DWORD PTR DS:[EDX+ECX*4+4] 
96E05 8B5204;                           MOV EDX,DWORD PTR DS:[EDX+4] 
96E08 8B4A0C;                           MOV ECX,DWORD PTR DS:[EDX+C] - текст сообщения при ПКМ на картинке 
96E0B E9F2A30500;                       JMP mop.004F1202 
 
; CASE_004F15E4_PROC000F 
2B0AE5 8B0DA0268302;    MOV ECX,DWORD PTR DS:[28326A0] 
2B0AEB E912B7DDFF;      JMP mop.004F1202
  
Не знаю, есть ли тут исправление для IF:N или оно в другом куске кода. Исходников RTL для сравнения у меня нет, а в чём была проблема - вообще не помню. Помню лишь, что ларчик просто открывался - исправил свою же ошибку или даже опечатку, допущенную во время разработки Seek & Destroy.
			  
			
			
  
Circle of destruction, hammer comes crushing 
Powerhouse of energy 
Whipping up a fury, dominating flurry 
We create the battery
			
		 |