Changeset 12
- Timestamp:
- 12/16/07 03:55:03 (8 months ago)
- Files:
-
- trunk/2bin/ChangeLog.txt (modified) (1 diff)
- trunk/MainForm.cpp (modified) (88 diffs)
- trunk/MainForm.dfm (modified) (3 diffs)
- trunk/MainForm.h (modified) (3 diffs)
- trunk/MobFormat.cpp (modified) (1 diff)
- trunk/MobFormat.h (modified) (2 diffs)
- trunk/OrientatorFrame.cpp (modified) (1 diff)
- trunk/SettsForm.dfm (modified) (1 diff)
- trunk/initer.cpp (modified) (9 diffs)
- trunk/initer.h (modified) (2 diffs)
- trunk/svn-clean.cmd (added)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/2bin/ChangeLog.txt
r10 r12 4 4 * Èñïðàâëåí íåðàáîòàâøèé ïîèñê. 5 5 * Óáðàíû ëèøíèå ïóíêòû ìåíþ, ïðåäíàçíà÷àâøèåñÿ äëÿ ðàáîòû ñ "ìîáîì ¹2" - â íèõ íå âîçíêëà íåîáõîäèìîñòü, îáìåí èíôîðìàöèåé ìåæäó ìîáàìè óæå ðåàëèçîâàí ÷åðåç ìàññîâûå èçìåíåíèÿ. 6 * Äîáàâëåí ïóíêò ìåíþ äëÿ çàêðûòèÿ òåêóùåãî îòêðûòîãî ìîáà. 7 * Èñïðàâëåíà îøèáêà, ïðîÿâëÿâøàÿñÿ â íåêîòîðûõ ñëó÷àÿõ åñëè íà÷àòü êðóòèòü îðèåíòàòîð ïðè íå âûäåëåííîì â äåðåâå ðåàëüíîì îáúåêòå. 8 * Ïðè ëþáîì çàêðûòèè àêòèâíîãî ìîáà, â ò.÷. ïðè âûõîäå èç ïðîãðàììû åñëè ôàéë áûë èçìåíåí - ïîÿâëÿåòñÿ âîïðîñ î òîì ÷òî äåëàòü ñ èçìåíåííûì ôàéëîì. 6 9 7 10 Âåðñèÿ 0.3.5 trunk/MainForm.cpp
r11 r12 207 207 //Òèïà ïî çàêðûòèþ îêíà... 208 208 209 //Çàñàâèòü èçìåíåíèÿ â èíòåðôåéñå... 210 Save_MC_Interf(); //Ìàññîâûå èçìåíåíèÿ... 211 212 //Äåèíèöèàëèçàöèÿ OGL... 213 ObjectOrientator->GLDeInitialize(); 209 //Ïåðåìåííûå. 210 bool AllOk; 211 212 //Çàêðûòü ìîá. 213 AllOk = CloseMobComm(); 214 215 //Åñëè ìîá çàêðûò óñïåøíî - ïðîäîëæèòü ïðîöåäóðó çàêðûòèÿ ïðîãè. 216 if (AllOk == true) 217 { 218 //Çàñàâèòü èçìåíåíèÿ â èíòåðôåéñå... 219 Save_MC_Interf(); //Ìàññîâûå èçìåíåíèÿ... 220 221 //Äåèíèöèàëèçàöèÿ OGL... 222 ObjectOrientator->GLDeInitialize(); 223 } 224 else 225 { 226 //Íååå, íèôèããà, çàêðûâàööî íåëüçÿ ). 227 Action = caNone; 228 }; 214 229 } 215 230 //--------------------------------------------------------------------------- … … 480 495 //Ìîá çàãðóæåí - âûâåñòè åãî èìÿ ôàéëà... 481 496 Caption = Caption + ' ' + ExtractFileName(MobFileName); 497 if (MobModified == true) Caption = Caption + " *"; //Îòìåòêà î ìîäèôèöèðîâàííîñòè ôàéëà. 482 498 Application->Title = ExtractFileName(MobFileName); 483 499 }; … … 492 508 SaveAsMobMenu->Enabled = true; 493 509 BackupMobMenu->Enabled = true; 510 CloseMobMenu->Enabled = true; 494 511 495 512 //Ðàçáëîêèðîâàòü ðåäàêòîð ñêðèïòà... … … 575 592 SaveAsMobMenu->Enabled = false; 576 593 BackupMobMenu->Enabled = false; 594 CloseMobMenu->Enabled = false; 577 595 578 596 //Çàáëîêèðîâàòü ðåäàêòîð ñêðèïòà... … … 1396 1414 //--------------------------------------------------------------------------- 1397 1415 1416 void TMainF::SetMobModified() 1417 //Ñòàâèò îòìåòêó ÷òî ìîá ìîäèôèöèðîâàí (ñ ïîñëåäíåãî save\load) è îáíîâëÿåò èíòåðôåéñ. 1418 { 1419 if (MobModified == false) 1420 { 1421 MobModified = true; 1422 this->UpdateMainInterf(); 1423 }; 1424 }; 1425 1426 //--------------------------------------------------------------------------- 1427 1428 void TMainF::SetMobNotModified() 1429 //Ñòàâèò îòìåòêó ÷òî ìîá íå ìîäèôèöèðîâàí (ñ ïîñëåäíåãî save\load) è îáíîâëÿåò èíòåðôåéñ. 1430 { 1431 if (MobModified == true) 1432 { 1433 MobModified = false; 1434 this->UpdateMainInterf(); 1435 }; 1436 }; 1437 //--------------------------------------------------------------------------- 1398 1438 1399 1439 void __fastcall TMainF::MC_ResetButClick(TObject *Sender) … … 1503 1543 TTreeNode *CurrNode, *AddedNode; 1504 1544 1545 //Ïî÷èñòèòü äåðåâî... 1546 this->ObjectsTree->Items->Clear(); 1547 //... è òàáëè÷êó. 1548 this->ValuesEditor->Strings->Clear(); 1549 1505 1550 //Ñðàáàòûâàåì òîëüêî åñëè ìîá çàãðóæåí... 1506 1551 if (MobLoaded == true) … … 1509 1554 1510 1555 //Ñêèäûâàåì èíôó î îáúåêòàõ â äåðåâî ðåäàêòîðà îáúåêòîâ... 1511 1512 //Ïî÷èñòèòü äåðåâî...1513 this->ObjectsTree->Items->Clear();1514 1556 1515 1557 //Þíèòû... … … 2046 2088 //Çàïîìèíàåì èíôó... 2047 2089 StrCommaList2StrArray(this->ValuesEditor->Values[KeyName],MobObject->BodyTextures); 2090 this->SetMobModified(); 2048 2091 } 2049 2092 else … … 2061 2104 //Çàïîìèíàåì èíôó... 2062 2105 MobObject->PlayerNumber = StrToInt(this->ValuesEditor->Values[KeyName]); 2106 this->SetMobModified(); 2063 2107 } 2064 2108 else … … 2076 2120 //Çàïîìèíàåì èíôó... 2077 2121 MobObject->ObjectID = StrToInt(this->ValuesEditor->Values[KeyName]); 2122 this->SetMobModified(); 2078 2123 } 2079 2124 else … … 2091 2136 //Çàïîìèíàåì èíôó... 2092 2137 MobObject->ObjectType = StrToInt(this->ValuesEditor->Values[KeyName]); 2138 this->SetMobModified(); 2093 2139 } 2094 2140 else … … 2103 2149 //Çàïîìèíàåì èíôó... ñàìûé ïðîñòîé òèï ïîëÿ %) 2104 2150 MobObject->ScriptVariableName = this->ValuesEditor->Values[KeyName]; 2151 this->SetMobModified(); 2105 2152 } 2106 2153 else if (KeyName == "ModelName") … … 2109 2156 //Çàïîìèíàåì èíôó... ñàìûé ïðîñòîé òèï ïîëÿ %) 2110 2157 MobObject->ModelName = this->ValuesEditor->Values[KeyName]; 2158 this->SetMobModified(); 2111 2159 } 2112 2160 else if (KeyName == "Name2") … … 2115 2163 //Çàïîìèíàåì èíôó... ñàìûé ïðîñòîé òèï ïîëÿ %) 2116 2164 MobObject->Name2 = this->ValuesEditor->Values[KeyName]; 2165 this->SetMobModified(); 2117 2166 } 2118 2167 else if (KeyName == "FirstTexture") … … 2121 2170 //Çàïîìèíàåì èíôó... ñàìûé ïðîñòîé òèï ïîëÿ %) 2122 2171 MobObject->FirstTexture = this->ValuesEditor->Values[KeyName]; 2172 this->SetMobModified(); 2123 2173 } 2124 2174 else if (KeyName == "SecondTexture") … … 2127 2177 //Çàïîìèíàåì èíôó... ñàìûé ïðîñòîé òèï ïîëÿ %) 2128 2178 MobObject->SecondTexture = this->ValuesEditor->Values[KeyName]; 2179 this->SetMobModified(); 2129 2180 } 2130 2181 else if (KeyName == "UnknownStr1") … … 2133 2184 //Çàïîìèíàåì èíôó... ñàìûé ïðîñòîé òèï ïîëÿ %) 2134 2185 MobObject->UnknownStr1 = this->ValuesEditor->Values[KeyName]; 2186 this->SetMobModified(); 2135 2187 } 2136 2188 else if (KeyName == "LoadX") … … 2142 2194 //Çàïîìèíàåì èíôó... 2143 2195 MobObject->LoadX = StrToFloat(this->ValuesEditor->Values[KeyName]); 2196 this->SetMobModified(); 2144 2197 } 2145 2198 else … … 2157 2210 //Çàïîìèíàåì èíôó... 2158 2211 MobObject->LoadY = StrToFloat(this->ValuesEditor->Values[KeyName]); 2212 this->SetMobModified(); 2159 2213 } 2160 2214 else … … 2172 2226 //Çàïîìèíàåì èíôó... 2173 2227 MobObject->LoadZ = StrToFloat(this->ValuesEditor->Values[KeyName]); 2228 this->SetMobModified(); 2174 2229 } 2175 2230 else … … 2187 2242 //Çàïîìèíàåì èíôó... 2188 2243 MobObject->RotationW = StrToFloat(this->ValuesEditor->Values[KeyName]); 2244 this->SetMobModified(); 2189 2245 //Èíôà èçìåíåíà. Ïåðåêèíóòü íîâîå çíà÷åíèå êâàòåðíèîíà â îðèåíòàòîð... 2190 2246 FillOrientator(MobObject); … … 2204 2260 //Çàïîìèíàåì èíôó... 2205 2261 MobObject->RotationX = StrToFloat(this->ValuesEditor->Values[KeyName]); 2262 this->SetMobModified(); 2206 2263 //Èíôà èçìåíåíà. Ïåðåêèíóòü íîâîå çíà÷åíèå êâàòåðíèîíà â îðèåíòàòîð... 2207 2264 FillOrientator(MobObject); … … 2221 2278 //Çàïîìèíàåì èíôó... 2222 2279 MobObject->RotationY = StrToFloat(this->ValuesEditor->Values[KeyName]); 2280 this->SetMobModified(); 2223 2281 //Èíôà èçìåíåíà. Ïåðåêèíóòü íîâîå çíà÷åíèå êâàòåðíèîíà â îðèåíòàòîð... 2224 2282 FillOrientator(MobObject); … … 2238 2296 //Çàïîìèíàåì èíôó... 2239 2297 MobObject->RotationZ = StrToFloat(this->ValuesEditor->Values[KeyName]); 2298 this->SetMobModified(); 2240 2299 //Èíôà èçìåíåíà. Ïåðåêèíóòü íîâîå çíà÷åíèå êâàòåðíèîíà â îðèåíòàòîð... 2241 2300 FillOrientator(MobObject); … … 2255 2314 //Çàïîìèíàåì èíôó... 2256 2315 MobObject->IsQuestUnit = StrToInt(this->ValuesEditor->Values[KeyName]); 2316 this->SetMobModified(); 2257 2317 } 2258 2318 else … … 2270 2330 //Çàïîìèíàåì èíôó... 2271 2331 MobObject->UncnByte1 = StrToInt(this->ValuesEditor->Values[KeyName]); 2332 this->SetMobModified(); 2272 2333 } 2273 2334 else … … 2285 2346 //Çàïîìèíàåì èíôó... 2286 2347 MobObject->UncnDw2 = StrToInt(this->ValuesEditor->Values[KeyName]); 2348 this->SetMobModified(); 2287 2349 } 2288 2350 else … … 2297 2359 //Çàïîìèíàåì èíôó... ñàìûé ïðîñòîé òèï ïîëÿ %) 2298 2360 MobObject->QuestLightStr = this->ValuesEditor->Values[KeyName]; 2361 this->SetMobModified(); 2299 2362 } 2300 2363 else if (KeyName == "ComplectionStrength") … … 2306 2369 //Çàïîìèíàåì èíôó... 2307 2370 MobObject->ComplectionStrength = StrToFloat(this->ValuesEditor->Values[KeyName]); 2371 this->SetMobModified(); 2308 2372 } 2309 2373 else … … 2321 2385 //Çàïîìèíàåì èíôó... 2322 2386 MobObject->ComplectionDex = StrToFloat(this->ValuesEditor->Values[KeyName]); 2387 this->SetMobModified(); 2323 2388 } 2324 2389 else … … 2336 2401 //Çàïîìèíàåì èíôó... 2337 2402 MobObject->ComplectionTall = StrToFloat(this->ValuesEditor->Values[KeyName]); 2403 this->SetMobModified(); 2338 2404 } 2339 2405 else … … 2359 2425 //Çàïîìèíàåì èíôó... 2360 2426 MobObject->UseMobInfo = StrToInt(this->ValuesEditor->Values[KeyName]); 2427 this->SetMobModified(); 2361 2428 } 2362 2429 else … … 2371 2438 //Çàïîìèíàåì èíôó... ñàìûé ïðîñòîé òèï ïîëÿ %) 2372 2439 MobObject->Name1 = this->ValuesEditor->Values[KeyName]; 2440 this->SetMobModified(); 2373 2441 } 2374 2442 else if (KeyName == "Armour") … … 2382 2450 //Çàïîìèíàåì èíôó... 2383 2451 StrCommaList2StrArray(this->ValuesEditor->Values[KeyName],MobObject->Armour); 2452 this->SetMobModified(); 2384 2453 } 2385 2454 else … … 2399 2468 //Çàïîìèíàåì èíôó... 2400 2469 StrCommaList2StrArray(this->ValuesEditor->Values[KeyName],MobObject->Weapon); 2470 this->SetMobModified(); 2401 2471 } 2402 2472 else … … 2416 2486 //Çàïîìèíàåì èíôó... 2417 2487 StrCommaList2StrArray(this->ValuesEditor->Values[KeyName],MobObject->Spell); 2488 this->SetMobModified(); 2418 2489 } 2419 2490 else … … 2431 2502 //Çàïîìèíàåì èíôó... 2432 2503 MobObject->UncnDw1 = StrToInt(this->ValuesEditor->Values[KeyName]); 2504 this->SetMobModified(); 2433 2505 } 2434 2506 else … … 2448 2520 //Çàïîìèíàåì èíôó... 2449 2521 StrCommaList2StrArray(this->ValuesEditor->Values[KeyName],MobObject->Items); 2522 this->SetMobModified(); 2450 2523 } 2451 2524 else … … 2476 2549 //Çàïîìèíàåì èíôó... 2477 2550 MobObject->AsOpen = StrToInt(this->ValuesEditor->Values[KeyName]); 2551 this->SetMobModified(); 2478 2552 } 2479 2553 else … … 2491 2565 //Çàïîìèíàåì èíôó... 2492 2566 MobObject->Key = StrToInt(this->ValuesEditor->Values[KeyName]); 2567 this->SetMobModified(); 2493 2568 } 2494 2569 else … … 2506 2581 //Çàïîìèíàåì èíôó... 2507 2582 MobObject->Sleigth = StrToInt(this->ValuesEditor->Values[KeyName]); 2583 this->SetMobModified(); 2508 2584 } 2509 2585 else … … 2521 2597 //Çàïîìèíàåì èíôó... 2522 2598 MobObject->UncnByte1 = StrToInt(this->ValuesEditor->Values[KeyName]); 2599 this->SetMobModified(); 2523 2600 } 2524 2601 else … … 2536 2613 //Çàïîìèíàåì èíôó... 2537 2614 MobObject->UncnByte2 = StrToInt(this->ValuesEditor->Values[KeyName]); 2615 this->SetMobModified(); 2538 2616 } 2539 2617 else … … 2551 2629 //Çàïîìèíàåì èíôó... 2552 2630 MobObject->UncnByte3 = StrToInt(this->ValuesEditor->Values[KeyName]); 2631 this->SetMobModified(); 2553 2632 } 2554 2633 else … … 2566 2645 //Çàïîìèíàåì èíôó... 2567 2646 MobObject->UncnByte4 = StrToInt(this->ValuesEditor->Values[KeyName]); 2647 this->SetMobModified(); 2568 2648 } 2569 2649 else … … 2581 2661 //Çàïîìèíàåì èíôó... 2582 2662 MobObject->UncnByte5 = StrToInt(this->ValuesEditor->Values[KeyName]); 2663 this->SetMobModified(); 2583 2664 } 2584 2665 else … … 2609 2690 //Çàïîìèíàåì èíôó... 2610 2691 MobObject->UnknDw1 = StrToInt(this->ValuesEditor->Values[KeyName]); 2692 this->SetMobModified(); 2611 2693 } 2612 2694 else … … 2621 2703 //Çàïîìèíàåì èíôó... ñàìûé ïðîñòîé òèï ïîëÿ %) 2622 2704 MobObject->MagicStr = this->ValuesEditor->Values[KeyName]; 2705 this->SetMobModified(); 2623 2706 } 2624 2707 else if (KeyName == "UnknDw2") … … 2630 2713 //Çàïîìèíàåì èíôó... 2631 2714 MobObject->UnknDw2 = StrToInt(this->ValuesEditor->Values[KeyName]); 2715 this->SetMobModified(); 2632 2716 } 2633 2717 else … … 2645 2729 //Çàïîìèíàåì èíôó... 2646 2730 MobObject->UnknByte1 = StrToInt(this->ValuesEditor->Values[KeyName]); 2731 this->SetMobModified(); 2647 2732 } 2648 2733 else … … 2672 2757 //Çàïîìèíàåì èíôó... 2673 2758 MobObject->CoordX = StrToFloat(this->ValuesEditor->Values[KeyName]); 2759 this->SetMobModified(); 2674 2760 } 2675 2761 else … … 2687 2773 //Çàïîìèíàåì èíôó... 2688 2774 MobObject->CoordY = StrToFloat(this->ValuesEditor->Values[KeyName]); 2775 this->SetMobModified(); 2689 2776 } 2690 2777 else … … 2702 2789 //Çàïîìèíàåì èíôó... 2703 2790 MobObject->CoordZ = StrToFloat(this->ValuesEditor->Values[KeyName]); 2791 this->SetMobModified(); 2704 2792 } 2705 2793 else … … 2717 2805 //Çàïîìèíàåì èíôó... 2718 2806 MobObject->FlameSize = StrToFloat(this->ValuesEditor->Values[KeyName]); 2807 this->SetMobModified(); 2719 2808 } 2720 2809 else … … 2729 2818 //Çàïîìèíàåì èíôó... ñàìûé ïðîñòîé òèï ïîëÿ %) 2730 2819 MobObject->SoundStr = this->ValuesEditor->Values[KeyName]; 2820 this->SetMobModified(); 2731 2821 } 2732 2822 else … … 2749 2839 //Çàïîìèíàåì èíôó... 2750 2840 MobObject->ID = StrToInt(this->ValuesEditor->Values[KeyName]); 2841 this->SetMobModified(); 2751 2842 } 2752 2843 else … … 2764 2855 //Çàïîìèíàåì èíôó... 2765 2856 MobObject->UnknByte1 = StrToInt(this->ValuesEditor->Values[KeyName]); 2857 this->SetMobModified(); 2766 2858 } 2767 2859 else … … 2779 2871 //Çàïîìèíàåì èíôó... 2780 2872 MobObject->CoordX = StrToFloat(this->ValuesEditor->Values[KeyName]); 2873 this->SetMobModified(); 2781 2874 } 2782 2875 else … … 2794 2887 //Çàïîìèíàåì èíôó... 2795 2888 MobObject->CoordY = StrToFloat(this->ValuesEditor->Values[KeyName]); 2889 this->SetMobModified(); 2796 2890 } 2797 2891 else … … 2809 2903 //Çàïîìèíàåì èíôó... 2810 2904 MobObject->CoordZ = StrToFloat(this->ValuesEditor->Values[KeyName]); 2905 this->SetMobModified(); 2811 2906 } 2812 2907 else … … 2824 2919 //Çàïîìèíàåì èíôó... 2825 2920 MobObject->ColorR = StrToFloat(this->ValuesEditor->Values[KeyName]); 2921 this->SetMobModified(); 2826 2922 } 2827 2923 else … … 2839 2935 //Çàïîìèíàåì èíôó... 2840 2936 MobObject->ColorG = StrToFloat(this->ValuesEditor->Values[KeyName]); 2937 this->SetMobModified(); 2841 2938 } 2842 2939 else … … 2854 2951 //Çàïîìèíàåì èíôó... 2855 2952 MobObject->ColorB = StrToFloat(this->ValuesEditor->Values[KeyName]); 2953 this->SetMobModified(); 2856 2954 } 2857 2955 else … … 2869 2967 //Çàïîìèíàåì èíôó... 2870 2968 MobObject->ParticleSize = StrToFloat(this->ValuesEditor->Values[KeyName]); 2969 this->SetMobModified(); 2871 2970 } 2872 2971 else … … 2881 2980 //Çàïîìèíàåì èíôó... ñàìûé ïðîñòîé òèï ïîëÿ %) 2882 2981 MobObject->NameStr = this->ValuesEditor->Values[KeyName]; 2982 this->SetMobModified(); 2883 2983 } 2884 2984 else if (KeyName == "UnknStr1") … … 2887 2987 //Çàïîìèíàåì èíôó... ñàìûé ïðîñòîé òèï ïîëÿ %) 2888 2988 MobObject->UnknStr1 = this->ValuesEditor->Values[KeyName]; 2989 this->SetMobModified(); 2889 2990 }; 2890 2991 }; … … 2904 3005 //Çàïîìèíàåì èíôó... 2905 3006 StrCommaList2StrArray(this->ValuesEditor->Values[KeyName],MobObject->SoundStr_s); 3007 this->SetMobModified(); 2906 3008 } 2907 3009 else … … 2919 3021 //Çàïîìèíàåì èíôó... 2920 3022 MobObject->ID = StrToInt(this->ValuesEditor->Values[KeyName]); 3023 this->SetMobModified(); 2921 3024 } 2922 3025 else … … 2934 3037 //Çàïîìèíàåì èíôó... 2935 3038 MobObject->CoordX = StrToFloat(this->ValuesEditor->Values[KeyName]); 3039 this->SetMobModified(); 2936 3040 } 2937 3041 else … … 2949 3053 //Çàïîìèíàåì èíôó... 2950 3054 MobObject->CoordY = StrToFloat(this->ValuesEditor->Values[KeyName]); 3055 this->SetMobModified(); 2951 3056 } 2952 3057 else … … 2964 3069 //Çàïîìèíàåì èíôó... 2965 3070 MobObject->CoordZ = StrToFloat(this->ValuesEditor->Values[KeyName]); 3071 this->SetMobModified(); 2966 3072 } 2967 3073 else … … 2979 3085 //Çàïîìèíàåì èíôó... 2980 3086 MobObject->UnknDW1 = StrToInt(this->ValuesEditor->Values[KeyName]); 3087 this->SetMobModified(); 2981 3088 } 2982 3089 else … … 2994 3101 //Çàïîìèíàåì èíôó... 2995 3102 MobObject->UnknDW2 = StrToInt(this->ValuesEditor->Values[KeyName]); 3103 this->SetMobModified(); 2996 3104 } 2997 3105 else … … 3006 3114 //Çàïîìèíàåì èíôó... ñàìûé ïðîñòîé òèï ïîëÿ %) 3007 3115 MobObject->NameStr = this->ValuesEditor->Values[KeyName]; 3116 this->SetMobModified(); 3008 3117 } 3009 3118 else if (KeyName == "UnknStr1") … … 3012 3121 //Çàïîìèíàåì èíôó... ñàìûé ïðîñòîé òèï ïîëÿ %) 3013 3122 MobObject->UnknStr1 = this->ValuesEditor->Values[KeyName]; 3123 this->SetMobModified(); 3014 3124 } 3015 3125 else if (KeyName == "UnknDW3") … … 3021 3131 //Çàïîìèíàåì èíôó... 3022 3132 MobObject->UnknDW3 = StrToInt(this->ValuesEditor->Values[KeyName]); 3133 this->SetMobModified(); 3023 3134 } 3024 3135 else … … 3036 3147 //Çàïîìèíàåì èíôó... 3037 3148 MobObject->UnknDW4 = StrToInt(this->ValuesEditor->Values[KeyName]); 3149 this->SetMobModified(); 3038 3150 } 3039 3151 else … … 3051 3163 //Çàïîìèíàåì èíôó... 3052 3164 MobObject->UnknByte1 = StrToInt(this->ValuesEditor->Values[KeyName]); 3165 this->SetMobModified(); 3053 3166 } 3054 3167 else … … 3066 3179 //Çàïîìèíàåì èíôó... 3067 3180 MobObject->UnknByte2 = StrToInt(this->ValuesEditor->Values[KeyName]); 3181 this->SetMobModified(); 3068 3182 } 3069 3183 else … … 3087 3201 //Çàïîìèíàåì èíôó... 3088 3202 MobObject->ID = StrToInt(this->ValuesEditor->Values[KeyName]); 3203 this->SetMobModified(); 3089 3204 } 3090 3205 else … … 3102 3217 //Çàïîìèíàåì èíôó... 3103 3218 MobObject->CoordX = StrToFloat(this->ValuesEditor->Values[KeyName]); 3219 this->SetMobModified(); 3104 3220 } 3105 3221 else … … 3117 3233 //Çàïîìèíàåì èíôó... 3118 3234 MobObject->CoordY = StrToFloat(this->ValuesEditor->Values[KeyName]); 3235 this->SetMobModified(); 3119 3236 } 3120 3237 else … … 3132 3249 //Çàïîìèíàåì èíôó... 3133 3250 MobObject->CoordZ = StrToFloat(this->ValuesEditor->Values[KeyName]); 3251 this->SetMobModified(); 3134 3252 } 3135 3253 else … … 3144 3262 //Çàïîìèíàåì èíôó... ñàìûé ïðîñòîé òèï ïîëÿ %) 3145 3263 MobObject->NameStr = this->ValuesEditor->Values[KeyName]; 3264 this->SetMobModified(); 3146 3265 } 3147 3266 else if (KeyName == "UnknStr1") … … 3150 3269 //Çàïîìèíàåì èíôó... ñàìûé ïðîñòîé òèï ïîëÿ %) 3151 3270 MobObject->UnknStr1 = this->ValuesEditor->Values[KeyName]; 3271 this->SetMobModified(); 3152 3272 } 3153 3273 else if (KeyName == "UnknDw1") … … 3159 3279 //Çàïîìèíàåì èíôó... 3160 3280 MobObject->UnknDw1 = StrToInt(this->ValuesEditor->Values[KeyName]); 3281 this->SetMobModified(); 3161 3282 } 3162 3283 else … … 3174 3295 //Çàïîìèíàåì èíôó... 3175 3296 MobObject->UnknFloat1 = StrToFloat(this->ValuesEditor->Values[KeyName]); 3297 this->SetMobModified(); 3176 3298 } 3177 3299 else … … 3276 3398 //--------------------------------------------------------------------------- 3277 3399 3400 void __fastcall TMainF::CloseMobMenuClick(TObject *Sender) 3401 { 3402 //Çàêðûâàåì ôàéë. 3403 CloseMobComm(); 3404 } 3405 //--------------------------------------------------------------------------- 3406 3407 void __fastcall TMainF::ScriptEdChange(TObject *Sender) 3408 { 3409 //Èíôà â ðåäàêòîðå áûëà èçìåíåíà - îòìåòèòü ÷òî ìîá ìîäèôèöèðîâàí. 3410 this->SetMobModified(); 3411 } 3412 //--------------------------------------------------------------------------- 3413 trunk/MainForm.dfm
r10 r12 64 64 Options = [eoAutoIndent, eoDragDropEditing, eoGroupUndo, eoScrollPastEof, eoScrollPastEol, eoShowScrollHint, eoSmartTabDelete, eoSmartTabs, eoTrimTrailingSpaces] 65 65 SearchEngine = SynEditSearchEngine 66 OnChange = ScriptEdChange 66 67 RemovedKeystrokes = < 67 68 item … … 791 792 Width = 839 792 793 Height = 29 794 ButtonHeight = 21 795 ButtonWidth = 36 793 796 Caption = 'ToolBar1' 797 ShowCaptions = True 794 798 TabOrder = 2 795 799 end … … 812 816 Caption = #1057#1086#1093#1088#1072#1085#1080#1090#1100' mob '#1082#1072#1082'... Ctrl+Shift+S' 813 817 OnClick = SaveAsMobMenuClick 818 end 819 object N8: TMenuItem 820 Caption = '-' 821 end 822 object CloseMobMenu: TMenuItem 823 Caption = #1047#1072#1082#1088#1099#1090#1100' '#1084#1086#1073 824 OnClick = CloseMobMenuClick 814 825 end 815 826 object N1: TMenuItem trunk/MainForm.h
r10 r12 179 179 TMenuItem *ReadmeMenu; 180 180 TSynEditSearch *SynEditSearchEngine; 181 TMenuItem *N8; 182 TMenuItem *CloseMobMenu; 181 183 void __fastcall FormShow(TObject *Sender); 182 184 void __fastcall ExitMenuClick(TObject *Sender); … … 248 250 void __fastcall MC_AS_Params_PlayerNumberEdChange(TObject *Sender); 249 251 void __fastcall ReadmeMenuClick(TObject *Sender); 252 void __fastcall CloseMobMenuClick(TObject *Sender); 253 void __fastcall ScriptEdChange(TObject *Sender); 250 254 private: // User declarations 251 255 bool FirstShowed; … … 277 281 void Save_MC_Interf(); //Ñàâèò íàñòðîéêè èíòåðôåéñà ìàññîâûõ èçìåíåíèé â ini 278 282 void Reset_MC_Interf(); //Ñòàâèò óìîë÷àëüíûå çíà÷åíèÿ èíòåðôåéñó ìàññîâûõ èçìåíåíèé. 279 283 void SetMobModified(); //Ñòàâèò îòìåòêó ÷òî ìîá ìîäèôèöèðîâàí (ñ ïîñëåäíåãî save\load) è îáíîâëÿåò èíòåðôåéñ. 284 void SetMobNotModified(); //Ñòàâèò îòìåòêó ÷òî ìîá íå ìîäèôèöèðîâàí (ñ ïîñëåäíåãî save\load) è îáíîâëÿåò èíòåðôåéñ. 280 285 281 286 //Ðåäàêòîð îáúåêòîâ... trunk/MobFormat.cpp
r3 r12 22 22 #include "MobFormat.h" 23 23 #include <Dialogs.hpp> 24 #include "initer.h"25 24 #include "MainForm.h" 26 25 trunk/MobFormat.h
r3 r12 113 113 bool LoadMob(String& FileName); //Ãðóçèò ìîá â îáúåêò. Âûçûâàåò ReallyLoadMob 114 114 bool SaveMob(String& FileName); //Ñåéâèò ìîá èç îáúåêòà. 115 void UnloadMob(); //Òèïà ÷èñòèò êëàññ îò èíôû íà ñëó÷àé åñëè ìîá äî ýòîãî çàãðóæàëñÿ óæå. 115 116 void StringToLog(String& message); 116 117 bool ReallyLoadMob(String& FileName); //Ðåàëüíî çàãðóæàåò ìîá. Ìîæåò ðàáîòàòü èç íèòêè. … … 140 141 141 142 private: 142 void UnloadMob(); //Òèïà ÷èñòèò êëàññ îò èíôû íà ñëó÷àé åñëè ìîá äî ýòîãî çàãðóæàëñÿ óæå.143 143 void ClearObjectsBlockInfo(); //×èñòèò êëàññ îò èíôû îòíîñÿùåéñÿ ê áëîêó îáúåêòîâ... 144 144 String DeCodeScript(byte *ScriptTextBytes,DWORD Size,DWORD Key); //Ôóíêöèÿ äîëæíà òèïà äåêîäèðîâàòü ñêðèïò. È âîçâðàùàòü åãî óæå â âèäå ñòðîêè. trunk/OrientatorFrame.cpp
r3 r12 434 434 if ( MainF->ObjectsTree->Selected != NULL) 435 435 { 436 //Åñëè êàêîé-òî îáúåêò âîîáùå áûë âûáðàí... 437 if ( ( MainF->ObjectsTree->Selected->Parent->Data != &MainF->ObjTree_Particles1Node ) && 438 ( MainF->ObjectsTree->Selected->Parent->Data != &MainF->ObjTree_Particles2Node ) && 439 ( MainF->ObjectsTree->Selected->Parent->Data != &MainF->ObjTree_Particles3Node ) ) 440 { 441 //Êîðî÷å - åñëè ýòî íå ïàðòèêë - òî ó íåãî åñòü îðèåíòàöèÿ, à çíà÷èò èíôó íàäî 442 //ñîõðàíÿòü... ×òî ìû è äåëàåì... 443 444 // ðåäàêòîð... 445 /* 446 MainF->ValuesEditor->Values["RotationW"] = FloatToStr(this->ObjectQuat->QuatW); 447 MainF->ValuesEditor->Values["RotationX"] = FloatToStr(this->ObjectQuat->QuatX); 448 MainF->ValuesEditor->Values["RotationY"] = FloatToStr(this->ObjectQuat->QuatY); 449 MainF->ValuesEditor->Values["RotationZ"] = FloatToStr(this->ObjectQuat->QuatZ); 450 */ 451 // îáúåêò êëàññà... 452 PObjectObjBlock(MainF->ObjectsTree->Selected->Data)->RotationW = this->ObjectQuat->QuatW; 453 PObjectObjBlock(MainF->ObjectsTree->Selected->Data)->RotationX = this->ObjectQuat->QuatX; 454 PObjectObjBlock(MainF->ObjectsTree->Selected->Data)->RotationY = this->ObjectQuat->QuatY; 455 PObjectObjBlock(MainF->ObjectsTree->Selected->Data)->RotationZ = this->ObjectQuat->QuatZ; 456 457 OrientationChanged = true; 458 436 //Åñëè îáúåêò - íå ÷òî-òî êîðíåâîå... 437 if (MainF->ObjectsTree->Selected->Parent != NULL) { 438 //Åñëè êàêîé-òî îáúåêò âîîáùå áûë âûáðàí... 439 if ( ( MainF->ObjectsTree->Selected->Parent->Data != &MainF->ObjTree_Particles1Node ) && 440 ( MainF->ObjectsTree->Selected->Parent->Data != &MainF->ObjTree_Particles2Node ) && 441 ( MainF->ObjectsTree->Selected->Parent->Data != &MainF->ObjTree_Particles3Node ) ) 442 { 443 //Êîðî÷å - åñëè ýòî íå ïàðòèêë - òî ó íåãî åñòü îðèåíòàöèÿ, à çíà÷èò èíôó íàäî 444 //ñîõðàíÿòü... ×òî ìû è äåëàåì... 445 446 // îáúåêò êëàññà... 447 PObjectObjBlock(MainF->ObjectsTree->Selected->Data)->RotationW = this->ObjectQuat->QuatW; 448 PObjectObjBlock(MainF->ObjectsTree->Selected->Data)->RotationX = this->ObjectQuat->QuatX; 449 PObjectObjBlock(MainF->ObjectsTree->Selected->Data)->RotationY = this->ObjectQuat->QuatY; 450 PObjectObjBlock(MainF->ObjectsTree->Selected->Data)->RotationZ = this->ObjectQuat->QuatZ; 451 OrientationChanged = true; // ðåäàêòîð èíôà ïîìåñòèòñÿ òàéìåðîì ïî ýòîìó èíäèêàòîðó. 452 453 //Îòìåòèòü ÷òî ìîá áûë ìîäèôèöèðîâàí. 454 MainF->SetMobModified(); 455 456 }; 459 457 }; 460 458 }; trunk/SettsForm.dfm
r1 r12 38 38 Width = 75 39 39 Height = 25 40 Caption = #10 40#1040#1040#1090#1084#1077#1085#107240 Caption = #1054#1090#1084#1077#1085#1072 41 41 TabOrder = 1 42 42 OnClick = CancelButClick trunk/initer.cpp
r11 r12 100 100 String ProgPath, MobFileName; 101 101 TMob *MobInMem1, *TargetMob; 102 bool MobLoaded, SearchDialCanceled, MakeSLBlockInterf ;102 bool MobLoaded, SearchDialCanceled, MakeSLBlockInterf, MobModified; 103 103 TIniFile *MainIni; 104 104 … … 110 110 //Èíèöèàëèçîâàòü ïåðåìåííûå... 111 111 MobLoaded = false; 112 MobModified = false; 112 113 MobFileName = ""; 113 114 MakeSLBlockInterf = true; … … 536 537 }; 537 538 538 voidOpenMobComm(const AnsiString FileName)539 bool OpenMobComm(const AnsiString FileName) 539 540 //Ýòà ôóíêöèÿ âûçûâàåòñÿ ïðè îòêðûòèè ìîáà. 540 541 { 541 542 //Ïåðåìåííûå 542 bool LoadResult = false, Make Save= false, NodeFound = false;543 bool LoadResult = false, MakeLoad = false, NodeFound = false; 543 544 String FName; 544 545 int i, CurrNodeID; … … 548 549 { 549 550 //Åñëè â ïàðàìåòðå áûë ïåðåäàí ôàéë... 550 Make Save= true;551 MakeLoad = true; 551 552 FName = FileName; 552 553 } … … 558 559 if (MainF->OpenDialog1->Execute()) 559 560 { 560 //Åñëè äèàëîã âûïîëíèëñÿ - ïðîâåðèòü, ñóùåñòâóåò ëè âûáðàííûé ôàéë.561 //Åñëè äèàëîã âûïîëíèëñÿ - ôàéë ìîæíî îòêðûâàòü. 561 562 FName = MainF->OpenDialog1->FileName; 562 Make Save= true;563 }; 564 }; 565 566 if (Make Save== true)567 { 568 //Åñëè ìîæíî ñàâèòü - òî íàäî ñàâèòü :).563 MakeLoad = true; 564 }; 565 }; 566 567 if (MakeLoad == true) 568 { 569 //Åñëè ìîæíî îòêðûâàòü - òî íàäî îòêðûâàòü :). 569 570 570 571 //Ïðîâåðèòü, åñòü ëè òàêîé ôàéë... … … 588 589 SaveProgSetts(); 589 590 590 MobLoaded = false; //Âñå, òèïà ñòàðûé ìîá åñëè îí è áûë çàãðóæåí 591 // - óæå óáèò :). 592 593 MobInMem1->UsingThread = UseTMobThreads; //Îòêðûâàòü ëè â îòäåëüíîé íèòêå. 594 MobInMem1->LogEd = MainF->LogEd; 595 596 //È ãðóçèòü ñ áëîêèðîâêîé èíòåðôåéñà... 597 if ((UseTMobThreads == true) && (MakeSLBlockInterf == true)) MainF->BlockInterf(); 598 LoadResult = MobInMem1->LoadMob(FName); 599 if ((UseTMobThreads == true) && (MakeSLBlockInterf == true)) MainF->UnBlockInterf(); 600 601 if (MobInMem1->UsingThread == false) 602 { 603 //Åñëè ãðóçèëè íå ÷åðåç íèòêó òî âûâåñòè ëîã. 604 if (MainF->MainF_PK->ActivePage->Name == "LogSh") 605 { 606 MainF->LogEd->SetFocus(); 607 }; 608 MainF->LogEd->Lines->Add(MobInMem1->FullLogStr); 609 }; 610 611 //Òèïà çàïîìíèòü èìÿ ôàéëà, åñëè çàãðóçêà áûëà óñïåøíîé... 612 if (LoadResult == true) 613 { 614 MobFileName = FName; 615 MobLoaded = true; //È åññíî ïîìåòèòü ÷òî ìîá çàãðóæåí. 616 617 //Çàãðóçèòü èíôó ìîáà â èíòåðôåéñ ïðîãè... 618 619 //Ñêðèïò. 620 MainF->ScriptEd->Lines->Clear(); 621 MainF->ScriptEd->Text = MobInMem1->ScriptText; 622 623 //Îáúåêòû â ðåäàêòîð îáúåêòîâ... 624 MainF->MobObjectsChanged(); 625 } 626 else 627 { 628 //Åñëè çàãðóçèòüñÿ íå óäàëîñü - ïîêàçàòü þçâåðþ òàá ñ ëîãîì. 629 MainF->MainF_PK->ActivePage = MainF->LogSh; 630 }; 631 632 } 591 //Çàêðûòü ñòàðûé ìîá. 592 if (CloseMobComm() == true) 593 { 594 MobInMem1->UsingThread = UseTMobThreads; //Îòêðûâàòü ëè â îòäåëüíîé íèòêå. 595 MobInMem1->LogEd = MainF->LogEd; 596 597 //È ãðóçèòü ñ áëîêèðîâêîé èíòåðôåéñà... 598 if ((UseTMobThreads == true) && (MakeSLBlockInterf == true)) MainF->BlockInterf(); 599 LoadResult = MobInMem1->LoadMob(FName); 600 if ((UseTMobThreads == true) && (MakeSLBlockInterf == true)) MainF->UnBlockInterf(); 601 602 if (MobInMem1->UsingThread == false) 603 { 604 //Åñëè ãðóçèëè íå ÷åðåç íèòêó òî âûâåñòè ëîã. 605 if (MainF->MainF_PK->ActivePage->Name == "LogSh") 606 { 607 MainF->LogEd->SetFocus(); 608 }; 609 MainF->LogEd->Lines->Add(MobInMem1->FullLogStr); 610 }; 611 612 //Òèïà çàïîìíèòü èìÿ ôàéëà, åñëè çàãðóçêà áûëà óñïåøíîé... 613 if (LoadResult == true) 614 { 615 MobFileName = FName; 616 MobLoaded = true; //È åññíî ïîìåòèòü ÷òî ìîá çàãðóæåí. 617 MobModified = false; //Îòìåòèòü ÷òî ïîêà â ìîá èçìåíåíèé íå âíîñèëîñü. 618 619 //Çàãðóçèòü èíôó ìîáà â èíòåðôåéñ ïðîãè... 620 621 //Ñêðèïò. 622 MainF->ScriptEd->Lines->Clear(); 623 MainF->ScriptEd->Text = MobInMem1->ScriptText; 624 625 //Îáúåêòû â ðåäàêòîð îáúåêòîâ... 626 MainF->MobObjectsChanged(); 627 }//if (LoadResult == true) 628 else 629 { 630 //Åñëè çàãðóçèòüñÿ íå óäàëîñü - ïîêàçàòü þçâåðþ òàá ñ ëîãîì. 631 MainF->MainF_PK->ActivePage = MainF->LogSh; 632 }; 633 };//if (CloseMobComm() == true) 634 }//if ( FileExists(FName) == true ) 633 635 else 634 636 { … … 645 647 646 648 }; 649 650 //Âåðíóòü ðåçóëüòàò 651 return LoadResult; 647 652 }; 648 653 649 voidSaveMobComm()654 bool SaveMobComm() 650 655 //Ýòà ôóíêöèÿ âûçûâàåòñÿ ïðè ñåéâå ìîáà. 651 656 { 652 SaveInterfInfo(); //Ñîõðàíèòü èíôó èç èíòåðôåéñà... 657 //Ïåðåìåííûå 658 bool Result = false; 659 660 //Äëÿ íà÷àëà ïðîâåðèì - åñòü ëè óæå ôàéë ìîáà ñ òàêèì èìåíåì... 661 if (FileExists(MobFileName) == true) 662 { 663 //Óæå åñòü ôàéë ñ òàêèì èìåíåì. 664 SaveInterfInfo(); //Ñîõðàíèòü èíôó èç èíòåðôåéñà... 653 665 654 MobInMem1->UsingThread = UseTMobThreads; //Ñåéâèòü ëè â îòäåëüíîé íèòêå. 655 MobInMem1->SaveAttempts = SaveAttempts; //Êîëè÷åñòâî ïîïûòîê ñàâà ïîñëå ñáîÿ... 656 MobInMem1->LogEd = MainF->LogEd; 657 //È çàñàâèòü ñ áëîêèðîâêîé èíòåðôåéñà... 658 if ((UseTMobThreads == true) && (MakeSLBlockInterf == true)) MainF->BlockInterf(); 659 //Åñëè íàäî äåëàòü áåêàïû -
