Advertisement
jargon

Dungeon XAMPP-Builder 2021-0921-1917

Sep 21st, 2021
943
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.99 KB | None | 0 0
  1. <?php
  2.  
  3. $nen = array();
  4. include_once( 'nen.php' );
  5.  
  6. nen_ini();
  7.  
  8. include_once ( $nen[ 'root' ]. 'trk tok.php');
  9. include_once ( $nen[ 'root' ]. 'trk echo.php');
  10. include_once( $nen[ 'root' ]. 'fasttoc.php' );
  11.  
  12. //cycle_sourcefiles();
  13.  
  14. //cycle_pagedata();
  15. cfg_toc();
  16.  
  17. function fastcfg( $buffer = '' )
  18. {
  19.     global $nen;
  20.  
  21.     $lines = explode("\r\n", $buffer);
  22.    
  23.     $cfg = array();
  24.    
  25.     $index = 0;
  26.     while(true)
  27.     {
  28.         if( $index > count( $lines ) - 1 )
  29.         {
  30.             break;
  31.         }
  32.        
  33.         $temp = explode( ":", $lines[ $index ] );
  34.         $label[ $index ] = $temp[ 0 ];
  35.        
  36.         unset( $temp[ 0 ] );
  37.        
  38.         $value[ $index ] = implode( ":", $temp );
  39.        
  40.         $cfg[ $label[ $index ] ] = $value[ $index ];
  41.        
  42.         $index++;
  43.     }
  44.    
  45.     return $cfg;
  46.    
  47. }
  48.  
  49. function swapcfg()
  50. {
  51.     global $nen;
  52.    
  53.     $buffer = file_get_contents( $nen[ 'root' ]. 'pcre/dungeon-put.swap.pcre' );
  54.    
  55.     $cfg = fastcfg( $buffer );
  56.    
  57.     foreach( $cfg as $seek_k => $seek_v )
  58.     {
  59.         foreach( $cfg as $replace_k => $replace_v )
  60.         {
  61.             if( preg_match( '/swap\.([A-Z0-9]+)/', $replace_k, $replace_matches ) )
  62.             {
  63.                 if( preg_match( '/\{\{swap\.('. $replace_matches[ 1 ]. ')\}\}/', $seek_v, $seek_matches ) )
  64.                 {
  65.                     $cfg[ $seek_k ] = str_replace( '{{swap.'. $seek_matches[ 1 ]. '}}', $replace_v, $cfg[ $seek_k ] );
  66.                 }
  67.             }
  68.         }
  69.     }
  70.        
  71.     return $cfg;
  72. }
  73.  
  74. function cfg_slimmer()
  75. {
  76.     $cfg = swapcfg();
  77.  
  78.     foreach( $cfg as $swap_key => $swap_value )
  79.     {
  80.         if(preg_match('/swap.([0-9]+)/',$swap_key,$swap_matches))
  81.         {
  82.             unset( $cfg[ 'swap.'. $swap_matches[ 1 ] ] );
  83.         }
  84.     }
  85.    
  86.     trk_echo2( 'cfg', $cfg );
  87.  
  88.     return $cfg;
  89. }
  90.    
  91. function cfg_toc()
  92. {
  93.     global $nen;
  94.    
  95.     $toc_index = 0;
  96.     $toc_pattern = '/(DUN)([0-9]{3})(.BAS)/';
  97.    
  98.     $toc = fasttoc( 'miscdun/', array( '.bas', '.BAS' ) );
  99.  
  100.     $toc_result = '';
  101.    
  102.     $cfg = cfg_slimmer();
  103.    
  104.     $toc_lines=array();
  105.    
  106.     $result = '';
  107.    
  108.     while( preg_match( $toc_pattern, $toc[ $toc_index ], $toc_matches ) )
  109.     {
  110.         if( $toc_index > count( $toc ) - 1 )
  111.         {
  112.             break;
  113.         }
  114.  
  115.         $toc_lines[ $toc_index ] = explode( "\r\n", file_get_contents( $nen[ 'root' ] . 'miscdun/' . $toc[ $toc_index ] ) );
  116.        
  117.         $lines_index = 0;
  118.         while(true)
  119.         {          
  120.             if( $lines_index > count( $toc_lines ) - 1 )
  121.             {
  122.                 break;
  123.             }
  124.            
  125.             foreach( $cfg as $cfg_key => $cfg_value )
  126.             {              
  127.                 $cfg_index = 0;
  128.                 while(
  129.                 !preg_match( '/'.
  130.                 $cfg_value. '/',
  131.                 $toc_lines[ $toc_index ][ $lines_index ],
  132.                 $cfg_matches ) )
  133.                 {
  134.                                                            
  135.                     if ( $cfg_index > count( $cfg ) - 1 )
  136.                     {
  137.                         unset(
  138.                         $toc_lines
  139.                         [ $toc_index ]
  140.                         [ $lines_index ]
  141.                         );
  142.                         $lines_index--;
  143.                        
  144.                         $toc_lines =
  145.                         explode( "\r\n",
  146.                             implode( "\r\n",
  147.                             $toc_lines
  148.                             [ $toc_index ]
  149.                         ) );
  150.                         $cfg_index = 0;
  151.                        
  152.                         break;
  153.                     }
  154.                    
  155.                     $cfg_index++;
  156.                 }
  157.             }      
  158.  
  159.             $lines_index++;
  160.         }
  161.        
  162.         file_put_contents( $nen[ 'root' ] . 'metaput/imap' . $toc_matches[ 2 ] . 'fb.dat', implode( "\r\n", $toc_lines[ $toc_index ] ) );
  163.        
  164.         $toc_index++;
  165.     }
  166.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement