A.I.M.(http://forum.ja2.su/cgi-bin/yabb/YaBB.pl)
Обсуждаем игры >> Гробокопатели >> "Стиль" исходников Ja2
(Message started by: TSS на 20.07.2004 в 17:18:03)

Заголовок: "Стиль" исходников Ja2
Прислано пользователем TSS на 20.07.2004 в 17:18:03
Не знаю, у кого какой стиль написания кода, но у меня явно отличается от Sir-Tech
Посему, если у кого взгляды совпадают с моими, я написали маленький макрос к VS.NET 2002/2003 для переформатирования кода.

Выглядит он так:

   Sub JA2_SRC_ReformatDocument()

       Dim objSel As TextSelection = DTE.ActiveDocument.Selection

       Dim props As Properties = DTE.Properties("TextEditor", "C/C++")
       Dim oldPropVal As Object = props.Item("IndentStyle").Value
       props.Item("IndentStyle").Value = INDENT_NONE

       Dim r As StringReader = Nothing
       Dim w As StringWriter = Nothing
       Dim s As String
       Dim bInIfDefBlock As Boolean = False

       Try
           objSel.SelectAll()
           r = New StringReader(objSel.Text)
           w = New StringWriter

           s = r.ReadLine()
           Dim iBlanks As Integer = 0
           While (Not s Is Nothing)

               s = s.Trim()
               If s.Length <> 0 Then
                   iBlanks = 0

                   If s.StartsWith("#ifdef") Then
                       bInIfDefBlock = True
                   ElseIf s.StartsWith("#endif") Then
                       bInIfDefBlock = False
                   ElseIf s.StartsWith("#include") And True = bInIfDefBlock Then
                       s = s.Replace("#", "#" & vbTab)
                   End If

                   If Not s.StartsWith("#define") Then
                       ' replace all other stuff
                       s = s.Replace("( ", " (").Replace(" )", ")")
                       s = s.Replace("[ ", "[").Replace(" ]", "]")
                       s = s.Replace("  ", " ")
                   End If
                   w.WriteLine(s)
               Else
                   If iBlanks = 0 Then w.WriteLine("")
                   iBlanks = iBlanks + 1
               End If

               s = r.ReadLine()
           End While

           objSel.SelectAll()
           objSel.Delete()
           objSel.DestructiveInsert(w.ToString)
           objSel.SelectAll()
           objSel.SmartFormat()
           objSel.StartOfDocument()

       Catch exc As System.Exception
           MsgBox(exc.ToString)

       Finally
           If Not r Is Nothing Then
               r.Close()
               r = Nothing
           End If
           If Not w Is Nothing Then
               w.Close()
               w = Nothing
           End If

           props.Item("IndentStyle").Value = oldPropVal
       End Try

   End Sub

Просто вызываете макрос в открытом исходнике и получаете более-менее (на мой взгляд) читаемый код.

Заголовок: Re: "Стиль" исходников Ja2
Прислано пользователем Bezumnij_Kovrik на 20.07.2004 в 17:49:12
2TSS: А как его юзать?

Заголовок: Re: "Стиль" исходников Ja2
Прислано пользователем TSS на 20.07.2004 в 17:55:49
2Bezumnij_Kovrik: У тебя какая Visual Studio ?
Данная фенька подойдет только для (Help->About...):
Microsoft Developer Environment 2002 (VS.NET 2002)
Microsoft Developer Environment 2003 (VS.NET 2003)
Microsoft Developer Environment 2005 (VS.NET 2005)
Если ты являешься счасливым обладателем одного из вышеперчисленных продуктов, тогда твой путь лежит в Tools->Macros->Macros IDE; далее добавляешь код куда-нить (новый модуль, или уже существующий), Далее в Tools->Macros->Macro Explorer находишь макрос и делаешь "дык-дык" (double click, RightClick->Run)

Заголовок: Re: "Стиль" исходников Ja2
Прислано пользователем TSS на 20.07.2004 в 17:57:28
BTW, если найду шестую студию могу попробовать сделать тоже самое и в ней. Код макроса, если ты заметил -- VB; возможности шестой студии особливо не помню, но SmartFormat() в ней вроде не было, а остальное -- было...

Заголовок: Re: "Стиль" исходников Ja2
Прислано пользователем Bezumnij_Kovrik на 20.07.2004 в 19:05:01
2TSS: У меня 6я студия как раз...

Заголовок: Re: "Стиль" исходников Ja2
Прислано пользователем Artem на 22.07.2004 в 10:51:20
2TSS: Ты учти, что ВС6 наиболее распространена и популярна. Сам я в ней полный чайник, поэтому придётся тебе всех консультировать.... ;D

Заголовок: Re: "Стиль" исходников Ja2
Прислано пользователем WISDOM на 24.07.2004 в 17:11:11
                           Доброго дня!

2TSS:
То ли лыжи не едут,то ли...,в общем не работает у меня Макрос :-[.
Прога ругается на-Sub JA2_SRC_ReformatDocument(),(подчеркивает волнистой линией)и
пишет-"Statement is not valid in a namespace."
Все вроде сделал,как ты советовал-Tools->Macros->Macros IDE;
Единственное-КУДУ КОД ПИСАТЬ,внутрь самого модуля,или после него-ЕСЛИ НЕ
ТРУДНО- НАПИШИ ПОЖАЛУЙСТА ПОДРОБНО :-/,Я не програмер,и всех тонкостей не знаю!
Да,у меня Microsoft Developer Environment 2002 (VS.NET 2002) версия 7.0.9466.0

Заголовок: Re: "Стиль" исходников Ja2
Прислано пользователем Mr Evil на 06.05.2005 в 11:47:18
Ну не знаю я куда написать. :(   Если такой вопрос уже задавали, прошу прощения за флуд.  :) Мне нужно узнать возможно ли в ja создать многоэтажные здания, если да - как, если нет - почему? Если не кто не знает, то где можно узнать? Заранее спасибо.

Заголовок: Re: "Стиль" исходников Ja2
Прислано пользователем ShadowOfGhost на 06.05.2005 в 13:14:36
Уууу, а как нам хочется!!! Довольно проблемматично это судя по отчетам БК. А глубоко копать пока что некому...

Заголовок: Re: "Стиль" исходников Ja2
Прислано пользователем GreenEyeMan на 09.11.2005 в 16:53:37
Не подскажет ли кто-нибудь вот по такому делу:
графика в игре поддерживает только 256 цветов, а можно эту планку поднять? Или это нереально в принципе?

Заголовок: Re: "Стиль" исходников Ja2
Прислано пользователем bugmonster на 09.11.2005 в 17:16:56
2GreenEyeMan: Игра поддерживает 64536 цветов. 256 цветов имеют графические ресурсы. Если с тайлами что-то другое проблематично т.к. палитра используется для изменения освещённости, то с имаджами предметов в инвентаре проблем не должно быть.

Заголовок: Re: "Стиль" исходников Ja2
Прислано пользователем Strax5 на 24.01.2006 в 12:16:36
2bugmonster:

А можешь хоть на пальцах объяснить для "особо одаренных" как это реализовано?



A.I.M. » Powered by YaBB Modification 4 (v.4.0.0-pre)!
YaBB © 2000-2003. All Rights Reserved.