@@ -51,6 +51,7 @@ public partial class entry : Form
5151 public List < int > playerHealth = new List < int > { } ;
5252 public List < int > playerMana = new List < int > { } ;
5353 public List < Color > playerColours = new List < Color > { } ; //hair, skin, eyes, shirt, undershirt, pants, shoes
54+ public int playerHS = 0 ;
5455
5556 public invItem copyBuffer ;
5657 public int copyIndex = - 1 ;
@@ -92,8 +93,6 @@ public entry()
9293 }
9394 private void Entry_Load ( object sender , EventArgs e )
9495 {
95- Console . WriteLine ( playerfolder ) ;
96-
9796 btnReload . Image = Resources . crappyreload ;
9897
9998 baseTT . ShowAlways = true ;
@@ -148,6 +147,10 @@ private void Entry_Load(object sender, EventArgs e)
148147 ListViewItem tmp = new ListViewItem ( ) ;
149148 tmp . Text = bff . name ;
150149 tmp . ImageIndex = cnt ;
150+ if ( bff . buffStatus == buffStatus . Debuff )
151+ {
152+ tmp . ForeColor = Color . Red ;
153+ }
151154 buffLV . Items . Add ( tmp ) ;
152155 lvis_buff . Add ( tmp ) ;
153156 }
@@ -395,6 +398,9 @@ public void loadData(string path)
395398 nudManaCur . Value = playerMana [ 0 ] ;
396399 nudManaMax . Value = playerMana [ 1 ] ;
397400
401+ playerHS = decrypted [ nameEndOffset + 9 ] ;
402+ nudHair . Value = playerHS ;
403+
398404 var res = inv_main . Where ( invItem => invItem . item . name == "Unknown" ) ;
399405 if ( res . Count ( ) > 0 )
400406 {
@@ -415,21 +421,22 @@ private void btnLoad_Click(object sender, EventArgs e)
415421 try
416422 {
417423 //reset variables
418- rawDecrypted = new List < Byte > { } ;
424+ rawDecrypted . Clear ( ) ;
419425 playerName = "" ;
420- inv_main = new List < invItem > { } ;
421- playerHealth = new List < int > { } ;
422- playerMana = new List < int > { } ;
423- playerColours = new List < Color > { } ;
426+ inv_main . Clear ( ) ;
427+ playerHealth . Clear ( ) ;
428+ playerMana . Clear ( ) ;
429+ playerColours . Clear ( ) ;
424430 nameEndOffset = 0 ;
425431 invSelectedIndex = 0 ;
426432 isSaved = true ;
427- unlockAllData = new List < Byte > { } ;
428- debugInvData = new List < List < int > > { } ;
433+ unlockAllData . Clear ( ) ;
434+ debugInvData . Clear ( ) ;
429435 inv_main . Clear ( ) ;
430436 inv_piggybank . Clear ( ) ;
431437 inv_safe . Clear ( ) ;
432438 inv_ammocoins . Clear ( ) ;
439+ playerBuffs . Clear ( ) ;
433440
434441 lastReadPlrPath = dlg . FileName ;
435442 this . Text = "WinTerrEdit | [F1] About | [F2] Settings | (" + dlg . SafeFileName + ")" ;
@@ -461,21 +468,22 @@ private void btnLoad_Click(object sender, EventArgs e)
461468
462469 private void btnReload_Click ( object sender , EventArgs e )
463470 {
464- rawDecrypted = new List < Byte > { } ;
471+ rawDecrypted . Clear ( ) ;
465472 playerName = "" ;
466- inv_main = new List < invItem > { } ;
467- playerHealth = new List < int > { } ;
468- playerMana = new List < int > { } ;
469- playerColours = new List < Color > { } ;
473+ inv_main . Clear ( ) ;
474+ playerHealth . Clear ( ) ;
475+ playerMana . Clear ( ) ;
476+ playerColours . Clear ( ) ;
470477 nameEndOffset = 0 ;
471478 invSelectedIndex = 0 ;
472479 isSaved = true ;
473- unlockAllData = new List < Byte > { } ;
474- debugInvData = new List < List < int > > { } ;
480+ unlockAllData . Clear ( ) ;
481+ debugInvData . Clear ( ) ;
475482 inv_main . Clear ( ) ;
476483 inv_piggybank . Clear ( ) ;
477484 inv_safe . Clear ( ) ;
478485 inv_ammocoins . Clear ( ) ;
486+ playerBuffs . Clear ( ) ;
479487
480488 loadData ( lastReadPlrPath ) ;
481489 //gbInvHold.Enabled = true;
@@ -509,7 +517,6 @@ public void updateInvDisplay()
509517 baseTT . SetToolTip ( pb , "Slot " + slotNameCount + processedNameData ) ;
510518 slotNameCount ++ ;
511519 i ++ ;
512-
513520 }
514521 break ;
515522
@@ -523,7 +530,6 @@ public void updateInvDisplay()
523530 baseTT . SetToolTip ( pb , "Piggybank slot " + slotNameCount + processedNameData ) ;
524531 slotNameCount ++ ;
525532 i ++ ;
526-
527533 }
528534 break ;
529535
@@ -537,7 +543,6 @@ public void updateInvDisplay()
537543 baseTT . SetToolTip ( pb , "Safe slot " + slotNameCount + processedNameData ) ;
538544 slotNameCount ++ ;
539545 i ++ ;
540-
541546 }
542547 break ;
543548
@@ -551,7 +556,6 @@ public void updateInvDisplay()
551556 baseTT . SetToolTip ( pb , "Safe slot " + slotNameCount + processedNameData ) ;
552557 slotNameCount ++ ;
553558 i ++ ;
554-
555559 }
556560 break ;
557561
@@ -561,11 +565,10 @@ public void updateInvDisplay()
561565 foreach ( PictureBox pb in pbs_buffs )
562566 {
563567 pbs_buffs [ i ] . Image = playerBuffs [ i ] . buff . icon ;
564- string processedNameData = " (" + playerBuffs [ slotNameCount - 1 ] . buff . name + " for" + playerBuffs [ slotNameCount - 1 ] . duration + " seconds)" ;
568+ string processedNameData = " (" + playerBuffs [ slotNameCount - 1 ] . buff . name + " for " + playerBuffs [ slotNameCount - 1 ] . duration + " seconds)" ;
565569 baseTT . SetToolTip ( pb , "Buff slot " + slotNameCount + processedNameData ) ;
566570 slotNameCount ++ ;
567571 i ++ ;
568-
569572 }
570573 break ;
571574 }
@@ -582,18 +585,41 @@ public void updateInvDisplay()
582585
583586 private void item_Click ( object sender , EventArgs e )
584587 {
588+ switch ( selectedTab )
589+ {
590+ case 0 :
591+ inv_main [ invSelectedIndex ] . quantity = ( int ) nudQuant . Value ;
592+ break ;
593+
594+ case 1 :
595+ inv_piggybank [ invSelectedIndex ] . quantity = ( int ) nudQuant . Value ;
596+ break ;
597+
598+ case 2 :
599+ inv_safe [ invSelectedIndex ] . quantity = ( int ) nudQuant . Value ;
600+ break ;
601+
602+ case 3 :
603+ inv_ammocoins [ invSelectedIndex ] . quantity = ( int ) nudQuant . Value ;
604+ break ;
605+
606+ case 4 :
607+ playerBuffs [ invSelectedIndex ] . duration = ( int ) nudDur . Value ;
608+ break ;
609+ }
610+
585611 string elementName = ( sender as PictureBox ) . Name ;
586612 string [ ] npart = elementName . Split ( new string [ ] { "b" } , StringSplitOptions . None ) ;
587613 invSelectedIndex = Int32 . Parse ( npart [ 1 ] ) - 1 ;
588614 trueSelectedIndex = invSelectedIndex ;
615+
589616 switch ( selectedTab )
590617 {
591618 case 0 :
592619 cbItem . SelectedItem = inv_main [ invSelectedIndex ] . item . name ;
593620 nudQuant . Value = inv_main [ invSelectedIndex ] . quantity ;
594621 cbPrefixes . SelectedItem = inv_main [ invSelectedIndex ] . prefix . name ;
595622 gb_slot_items . Text = "Inventory slot " + ( invSelectedIndex + 1 ) + " (" + inv_main [ invSelectedIndex ] . item . name + ")" ;
596-
597623 break ;
598624
599625 case 1 :
@@ -642,6 +668,7 @@ public List<Byte> reEncode()
642668 List < Byte > encodedColourData = new List < Byte > { } ;
643669 List < Byte > encodedHealthData = new List < Byte > { } ;
644670 List < Byte > encodedManaData = new List < Byte > { } ;
671+ List < Byte > encodedBuffData = new List < Byte > { } ;
645672
646673 //create the template
647674 List < Byte > save = rawDecrypted ;
@@ -685,6 +712,11 @@ public List<Byte> reEncode()
685712 encodedColourData . AddRange ( new List < Byte > { c . R , c . G , c . B } ) ;
686713 }
687714
715+ foreach ( playerBuff pb in playerBuffs )
716+ {
717+ encodedBuffData . AddRange ( pb . recompile ( ih ) ) ;
718+ }
719+
688720 //populate encoded health data
689721 encodedHealthData . InsertRange ( 0 , new List < Byte > { ( byte ) ih . encodeData ( playerHealth [ 0 ] ) [ 0 ] , ( byte ) ih . encodeData ( playerHealth [ 0 ] ) [ 1 ] , 0x00 , 0x00 , ( byte ) ih . encodeData ( playerHealth [ 1 ] ) [ 0 ] , ( byte ) ih . encodeData ( playerHealth [ 1 ] ) [ 1 ] , 0x00 , 0x00 } ) ;
690722
@@ -727,6 +759,13 @@ public List<Byte> reEncode()
727759 save . InsertRange ( ManaDataBeginOffset , encodedManaData ) ;
728760 Console . WriteLine ( "Mana data: Removed 8 bytes, Inserted " + encodedManaData . Count ( ) + " bytes" ) ;
729761
762+ int BuffDataBeginOffset = nameEndOffset + buffOffset ;
763+ save . RemoveRange ( BuffDataBeginOffset , 176 ) ;
764+ save . InsertRange ( BuffDataBeginOffset , encodedBuffData ) ;
765+ Console . WriteLine ( "Mana data: Removed 176 bytes, Inserted " + encodedBuffData . Count ( ) + " bytes" ) ;
766+
767+ save [ nameEndOffset + 9 ] = ( byte ) playerHS ;
768+
730769 //insert padding if needed
731770 while ( save . Count ( ) % 16 != 0 )
732771 {
@@ -761,21 +800,22 @@ private void btnSave_Click(object sender, EventArgs e)
761800 saveNotifier sn = new saveNotifier ( ) ;
762801 sn . ShowDialog ( ) ;
763802
764- rawDecrypted = new List < Byte > { } ;
803+ rawDecrypted . Clear ( ) ;
765804 playerName = "" ;
766- inv_main = new List < invItem > { } ;
767- playerHealth = new List < int > { } ;
768- playerMana = new List < int > { } ;
769- playerColours = new List < Color > { } ;
805+ inv_main . Clear ( ) ;
806+ playerHealth . Clear ( ) ;
807+ playerMana . Clear ( ) ;
808+ playerColours . Clear ( ) ;
770809 nameEndOffset = 0 ;
771810 invSelectedIndex = 0 ;
772811 isSaved = true ;
773- unlockAllData = new List < Byte > { } ;
774- debugInvData = new List < List < int > > { } ;
812+ unlockAllData . Clear ( ) ;
813+ debugInvData . Clear ( ) ;
775814 inv_main . Clear ( ) ;
776815 inv_piggybank . Clear ( ) ;
777816 inv_safe . Clear ( ) ;
778817 inv_ammocoins . Clear ( ) ;
818+ playerBuffs . Clear ( ) ;
779819
780820 lastReadPlrPath = dlg . FileName ;
781821
@@ -1366,6 +1406,24 @@ private void textBox1_TextChanged(object sender, EventArgs e)
13661406 }
13671407 }
13681408
1409+ private void textBox2_TextChanged ( object sender , EventArgs e )
1410+ {
1411+ if ( textBox2 . Text . Length > 2 )
1412+ {
1413+ var results = lvis_buff . Where ( x => x . Text . ToLower ( ) . Contains ( textBox2 . Text ) ) . ToList ( ) ;
1414+ buffLV . Items . Clear ( ) ;
1415+ foreach ( var i in results )
1416+ {
1417+ buffLV . Items . Add ( i ) ;
1418+ }
1419+ }
1420+ else
1421+ {
1422+ buffLV . Items . Clear ( ) ;
1423+ buffLV . Items . AddRange ( lvis_buff . ToArray ( ) ) ;
1424+ }
1425+ }
1426+
13691427 public string calcMd5OfOpenFile ( )
13701428 {
13711429 try
@@ -1392,21 +1450,22 @@ private void autoFunctionTimer_Tick(object sender, EventArgs e)
13921450
13931451 if ( tmp != currentFileHash )
13941452 {
1395- rawDecrypted = new List < Byte > { } ;
1453+ rawDecrypted . Clear ( ) ;
13961454 playerName = "" ;
1397- inv_main = new List < invItem > { } ;
1398- playerHealth = new List < int > { } ;
1399- playerMana = new List < int > { } ;
1400- playerColours = new List < Color > { } ;
1455+ inv_main . Clear ( ) ;
1456+ playerHealth . Clear ( ) ;
1457+ playerMana . Clear ( ) ;
1458+ playerColours . Clear ( ) ;
14011459 nameEndOffset = 0 ;
14021460 invSelectedIndex = 0 ;
14031461 isSaved = true ;
1404- unlockAllData = new List < Byte > { } ;
1405- debugInvData = new List < List < int > > { } ;
1462+ unlockAllData . Clear ( ) ;
1463+ debugInvData . Clear ( ) ;
14061464 inv_main . Clear ( ) ;
14071465 inv_piggybank . Clear ( ) ;
14081466 inv_safe . Clear ( ) ;
14091467 inv_ammocoins . Clear ( ) ;
1468+ playerBuffs . Clear ( ) ;
14101469
14111470 loadData ( lastReadPlrPath ) ;
14121471 //gbInvHold.Enabled = true;
@@ -1445,5 +1504,10 @@ private void tabs_selectedChanged(object sender, EventArgs e)
14451504 gb_slot_items . BringToFront ( ) ;
14461505 }
14471506 }
1507+
1508+ private void nudHair_ValueChanged ( object sender , EventArgs e )
1509+ {
1510+ playerHS = ( int ) nudHair . Value ;
1511+ }
14481512 }
14491513}
0 commit comments