\hypertarget{NewHackUtil_8h}{\section{trunk/bwapi/\-B\-W\-A\-P\-I/\-Source/\-New\-Hack\-Util.h \-File \-Reference}
\label{NewHackUtil_8h}\index{trunk/bwapi/\-B\-W\-A\-P\-I/\-Source/\-New\-Hack\-Util.\-h@{trunk/bwapi/\-B\-W\-A\-P\-I/\-Source/\-New\-Hack\-Util.\-h}}
}
{\ttfamily \#include $<$stdio.\-h$>$}\*
{\ttfamily \#include $<$string$>$}\*
{\ttfamily \#include $<$windows.\-h$>$}\*
{\ttfamily \#include $<$vector$>$}\*
\-Include dependency graph for \-New\-Hack\-Util.\-h\-:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=326pt]{NewHackUtil_8h__incl}
\end{center}
\end{figure}
\-This graph shows which files directly or indirectly include this file\-:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{NewHackUtil_8h__dep__incl}
\end{center}
\end{figure}
\subsection*{\-Namespaces}
\begin{DoxyCompactItemize}
\item 
namespace \hyperlink{namespaceHackUtil}{\-Hack\-Util}
\end{DoxyCompactItemize}
\subsection*{\-Defines}
\begin{DoxyCompactItemize}
\item 
\#define \hyperlink{NewHackUtil_8h_a78b2c719e3d355c500728453be4948c5}{\-\_\-\-\_\-\-T\-O\-S\-T\-R\-I\-N\-G}(l)~\#l
\item 
\#define \hyperlink{NewHackUtil_8h_a5860981f00e6e5ff604602abdd3a8c81}{\-\_\-\-T\-O\-S\-T\-R\-I\-N\-G}(l)~\hyperlink{NewHackUtil_8h_a78b2c719e3d355c500728453be4948c5}{\-\_\-\-\_\-\-T\-O\-S\-T\-R\-I\-N\-G}(l)
\item 
\#define \hyperlink{NewHackUtil_8h_af785434ca409c25676442575cd2495e6}{\-F\-I\-L\-E\-L\-I\-N\-E}~\-\_\-\-\_\-\-F\-I\-L\-E\-\_\-\-\_\- \char`\"{}\-:\char`\"{} \hyperlink{NewHackUtil_8h_a5860981f00e6e5ff604602abdd3a8c81}{\-\_\-\-T\-O\-S\-T\-R\-I\-N\-G}(\-\_\-\-\_\-\-L\-I\-N\-E\-\_\-\-\_\-)
\end{DoxyCompactItemize}
\subsection*{\-Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef unsigned \-\_\-\-\_\-int8 \hyperlink{NewHackUtil_8h_ab64accf39cd9947d51611c16fd76f69a}{u8}
\item 
typedef unsigned \-\_\-\-\_\-int16 \hyperlink{NewHackUtil_8h_ac8008e9f99a9e3bdd6649ba6fe685975}{u16}
\item 
typedef unsigned \-\_\-\-\_\-int32 \hyperlink{NewHackUtil_8h_a60534f57ab6a58fdf5c2e618645182e3}{u32}
\item 
typedef unsigned \-\_\-\-\_\-int64 \hyperlink{NewHackUtil_8h_ab20682c4bd54e71fed5f159e4a0da9c9}{u64}
\item 
typedef signed \-\_\-\-\_\-int8 \hyperlink{NewHackUtil_8h_a9b9fbbb40e8cc26fa8e3f5aea39c42f9}{s8}
\item 
typedef signed \-\_\-\-\_\-int16 \hyperlink{NewHackUtil_8h_aec8a7c449876b394155c99cabf3f9b84}{s16}
\item 
typedef signed \-\_\-\-\_\-int32 \hyperlink{NewHackUtil_8h_ac60a2ce2c4bb9bc66009826d1e67d530}{s32}
\item 
typedef signed \-\_\-\-\_\-int64 \hyperlink{NewHackUtil_8h_a135d592e13ab0e8126a97384e55ed622}{s64}
\end{DoxyCompactItemize}
\subsection*{\-Functions}
\begin{DoxyCompactItemize}
\item 
\-I\-M\-A\-G\-E\-\_\-\-I\-M\-P\-O\-R\-T\-\_\-\-D\-E\-S\-C\-R\-I\-P\-T\-O\-R $\ast$ \hyperlink{namespaceHackUtil_a261f238b87c4fdfd5f49a9780c67c5f5}{\-Hack\-Util\-::\-\_\-\-Get\-Import\-Descriptor} (\-H\-M\-O\-D\-U\-L\-E module)
\item 
\-I\-M\-A\-G\-E\-\_\-\-T\-H\-U\-N\-K\-\_\-\-D\-A\-T\-A32 $\ast$ \hyperlink{namespaceHackUtil_a38f860a47f3c6d58725b7bd86d29d037}{\-Hack\-Util\-::\-\_\-\-Get\-Imports\-List} (char $\ast$source\-Module, char $\ast$import\-Module)
\item 
\hyperlink{Types_8h_a8aec363bdef0c755693c97d1757e8642}{\-D\-W\-O\-R\-D} $\ast$ \hyperlink{namespaceHackUtil_add316868aa6171cbaecbbfedccd621a1}{\-Hack\-Util\-::\-\_\-\-Get\-Functions\-List} (char $\ast$source\-Module, char $\ast$import\-Module)
\item 
\-F\-A\-R\-P\-R\-O\-C \hyperlink{namespaceHackUtil_ad3dbdd8b26a231696b7047928650e8f8}{\-Hack\-Util\-::\-Patch\-Import} (char $\ast$source\-Module, char $\ast$import\-Module, \-L\-P\-C\-S\-T\-R name, void $\ast$patch\-Function)
\item 
\-F\-A\-R\-P\-R\-O\-C \hyperlink{namespaceHackUtil_a980f97cf6c86a6460bb335a8331306cb}{\-Hack\-Util\-::\-Patch\-Import} (char $\ast$import\-Module, \-L\-P\-C\-S\-T\-R name, void $\ast$patch\-Function)
\item 
\-F\-A\-R\-P\-R\-O\-C \hyperlink{namespaceHackUtil_ad89c7dda9ac010b78b6ff3dbaa1f7c13}{\-Hack\-Util\-::\-Patch\-Import} (char $\ast$source\-Module, char $\ast$import\-Module, \hyperlink{Detours_8h_ab5a791e918b09a41addbf5b813175633}{int} ordinal, void $\ast$patch\-Function)
\item 
\-F\-A\-R\-P\-R\-O\-C \hyperlink{namespaceHackUtil_a229f47d5ed9c54a07fb72fc9575e05bb}{\-Hack\-Util\-::\-Patch\-Import} (char $\ast$import\-Module, \hyperlink{Detours_8h_ab5a791e918b09a41addbf5b813175633}{int} ordinal, void $\ast$patch\-Function)
\item 
\-F\-A\-R\-P\-R\-O\-C \hyperlink{namespaceHackUtil_ad102e114ef9ffce2a8f2b521946bc67d}{\-Hack\-Util\-::\-Get\-Import} (char $\ast$import\-Module, \-L\-P\-C\-S\-T\-R name)
\item 
\-F\-A\-R\-P\-R\-O\-C \hyperlink{namespaceHackUtil_a09c8cc7232cad0e18d46b53df685e60f}{\-Hack\-Util\-::\-Get\-Import} (char $\ast$import\-Module, \hyperlink{Detours_8h_ab5a791e918b09a41addbf5b813175633}{int} ordinal)
\item 
void \hyperlink{namespaceHackUtil_a028e121449c278aa588e82bfadfe027c}{\-Hack\-Util\-::\-Write\-Nops} (void $\ast$dest, \hyperlink{NewHackUtil_8h_a60534f57ab6a58fdf5c2e618645182e3}{u32} \hyperlink{Detours_8h_a95789996d14aee93fe32f6d653deb7d0}{size})
\item 
void \hyperlink{namespaceHackUtil_aed7040438412e6f8422d57f6d2997abe}{\-Hack\-Util\-::\-Write\-Nops} (\hyperlink{NewHackUtil_8h_a60534f57ab6a58fdf5c2e618645182e3}{u32} dest, \hyperlink{NewHackUtil_8h_a60534f57ab6a58fdf5c2e618645182e3}{u32} \hyperlink{Detours_8h_a95789996d14aee93fe32f6d653deb7d0}{size})
\item 
void \hyperlink{namespaceHackUtil_a83e06a103c2df361aff3764ed712de50}{\-Hack\-Util\-::\-Write\-Mem} (void $\ast$dest, void $\ast$\hyperlink{Detours_8h_af2ed45b90afa2ef4ec6e09625335a082}{source}, \hyperlink{NewHackUtil_8h_a60534f57ab6a58fdf5c2e618645182e3}{u32} \hyperlink{Detours_8h_a95789996d14aee93fe32f6d653deb7d0}{size})
\item 
void \hyperlink{namespaceHackUtil_a525fc509fb7f6a5410936f83dcfe6521}{\-Hack\-Util\-::\-Write\-Mem} (\hyperlink{NewHackUtil_8h_a60534f57ab6a58fdf5c2e618645182e3}{u32} dest, void $\ast$\hyperlink{Detours_8h_af2ed45b90afa2ef4ec6e09625335a082}{source}, \hyperlink{NewHackUtil_8h_a60534f57ab6a58fdf5c2e618645182e3}{u32} \hyperlink{Detours_8h_a95789996d14aee93fe32f6d653deb7d0}{size})
\item 
void \hyperlink{namespaceHackUtil_acd30e68041991a227c0a21dc0712d6ec}{\-Hack\-Util\-::\-Jmp\-Patch} (void $\ast$dest, void $\ast$patch)
\item 
void \hyperlink{namespaceHackUtil_acf12390cd4c5d355e451371d553668e5}{\-Hack\-Util\-::\-Jmp\-Patch} (\hyperlink{NewHackUtil_8h_a60534f57ab6a58fdf5c2e618645182e3}{u32} dest, void $\ast$patch)
\item 
void \hyperlink{namespaceHackUtil_adc13acf9d5265bc6c8c0f9991a1fd095}{\-Hack\-Util\-::\-Call\-Patch} (void $\ast$dest, void $\ast$patch)
\item 
void \hyperlink{namespaceHackUtil_adee09a9612f1db07a7090accbad73f4e}{\-Hack\-Util\-::\-Call\-Patch} (\hyperlink{NewHackUtil_8h_a60534f57ab6a58fdf5c2e618645182e3}{u32} dest, void $\ast$patch)
\item 
void \hyperlink{namespaceHackUtil_a006bc4aa7d738ea990e4d6a2568a3d57}{\-Hack\-Util\-::\-Revert} (const char $\ast$logline)
\item 
void \hyperlink{namespaceHackUtil_a7f9d31fc00380ff50e88e48759f85d9a}{\-Hack\-Util\-::\-Write\-Mem\-Raw} (void $\ast$dest, void $\ast$\hyperlink{Detours_8h_af2ed45b90afa2ef4ec6e09625335a082}{source}, \hyperlink{NewHackUtil_8h_a60534f57ab6a58fdf5c2e618645182e3}{u32} \hyperlink{Detours_8h_a95789996d14aee93fe32f6d653deb7d0}{size})
\item 
void \hyperlink{namespaceHackUtil_a8fb44e417c4ad4400309b2678032698b}{\-Hack\-Util\-::\-Write\-Mem\-Raw} (\hyperlink{NewHackUtil_8h_a60534f57ab6a58fdf5c2e618645182e3}{u32} dest, void $\ast$\hyperlink{Detours_8h_af2ed45b90afa2ef4ec6e09625335a082}{source}, \hyperlink{NewHackUtil_8h_a60534f57ab6a58fdf5c2e618645182e3}{u32} \hyperlink{Detours_8h_a95789996d14aee93fe32f6d653deb7d0}{size})
\end{DoxyCompactItemize}


\subsection{\-Define \-Documentation}
\hypertarget{NewHackUtil_8h_a78b2c719e3d355c500728453be4948c5}{\index{\-New\-Hack\-Util.\-h@{\-New\-Hack\-Util.\-h}!\-\_\-\-\_\-\-T\-O\-S\-T\-R\-I\-N\-G@{\-\_\-\-\_\-\-T\-O\-S\-T\-R\-I\-N\-G}}
\index{\-\_\-\-\_\-\-T\-O\-S\-T\-R\-I\-N\-G@{\-\_\-\-\_\-\-T\-O\-S\-T\-R\-I\-N\-G}!NewHackUtil.h@{\-New\-Hack\-Util.\-h}}
\subsubsection[{\-\_\-\-\_\-\-T\-O\-S\-T\-R\-I\-N\-G}]{\setlength{\rightskip}{0pt plus 5cm}\#define {\bf \-\_\-\-\_\-\-T\-O\-S\-T\-R\-I\-N\-G}(
\begin{DoxyParamCaption}
\item[{}]{l}
\end{DoxyParamCaption}
)~\#l}}\label{NewHackUtil_8h_a78b2c719e3d355c500728453be4948c5}
\hypertarget{NewHackUtil_8h_a5860981f00e6e5ff604602abdd3a8c81}{\index{\-New\-Hack\-Util.\-h@{\-New\-Hack\-Util.\-h}!\-\_\-\-T\-O\-S\-T\-R\-I\-N\-G@{\-\_\-\-T\-O\-S\-T\-R\-I\-N\-G}}
\index{\-\_\-\-T\-O\-S\-T\-R\-I\-N\-G@{\-\_\-\-T\-O\-S\-T\-R\-I\-N\-G}!NewHackUtil.h@{\-New\-Hack\-Util.\-h}}
\subsubsection[{\-\_\-\-T\-O\-S\-T\-R\-I\-N\-G}]{\setlength{\rightskip}{0pt plus 5cm}\#define {\bf \-\_\-\-T\-O\-S\-T\-R\-I\-N\-G}(
\begin{DoxyParamCaption}
\item[{}]{l}
\end{DoxyParamCaption}
)~{\bf \-\_\-\-\_\-\-T\-O\-S\-T\-R\-I\-N\-G}(l)}}\label{NewHackUtil_8h_a5860981f00e6e5ff604602abdd3a8c81}
\hypertarget{NewHackUtil_8h_af785434ca409c25676442575cd2495e6}{\index{\-New\-Hack\-Util.\-h@{\-New\-Hack\-Util.\-h}!\-F\-I\-L\-E\-L\-I\-N\-E@{\-F\-I\-L\-E\-L\-I\-N\-E}}
\index{\-F\-I\-L\-E\-L\-I\-N\-E@{\-F\-I\-L\-E\-L\-I\-N\-E}!NewHackUtil.h@{\-New\-Hack\-Util.\-h}}
\subsubsection[{\-F\-I\-L\-E\-L\-I\-N\-E}]{\setlength{\rightskip}{0pt plus 5cm}\#define {\bf \-F\-I\-L\-E\-L\-I\-N\-E}~\-\_\-\-\_\-\-F\-I\-L\-E\-\_\-\-\_\- \char`\"{}\-:\char`\"{} {\bf \-\_\-\-T\-O\-S\-T\-R\-I\-N\-G}(\-\_\-\-\_\-\-L\-I\-N\-E\-\_\-\-\_\-)}}\label{NewHackUtil_8h_af785434ca409c25676442575cd2495e6}


\subsection{\-Typedef \-Documentation}
\hypertarget{NewHackUtil_8h_aec8a7c449876b394155c99cabf3f9b84}{\index{\-New\-Hack\-Util.\-h@{\-New\-Hack\-Util.\-h}!s16@{s16}}
\index{s16@{s16}!NewHackUtil.h@{\-New\-Hack\-Util.\-h}}
\subsubsection[{s16}]{\setlength{\rightskip}{0pt plus 5cm}typedef signed \-\_\-\-\_\-int16 {\bf s16}}}\label{NewHackUtil_8h_aec8a7c449876b394155c99cabf3f9b84}
\hypertarget{NewHackUtil_8h_ac60a2ce2c4bb9bc66009826d1e67d530}{\index{\-New\-Hack\-Util.\-h@{\-New\-Hack\-Util.\-h}!s32@{s32}}
\index{s32@{s32}!NewHackUtil.h@{\-New\-Hack\-Util.\-h}}
\subsubsection[{s32}]{\setlength{\rightskip}{0pt plus 5cm}typedef signed \-\_\-\-\_\-int32 {\bf s32}}}\label{NewHackUtil_8h_ac60a2ce2c4bb9bc66009826d1e67d530}
\hypertarget{NewHackUtil_8h_a135d592e13ab0e8126a97384e55ed622}{\index{\-New\-Hack\-Util.\-h@{\-New\-Hack\-Util.\-h}!s64@{s64}}
\index{s64@{s64}!NewHackUtil.h@{\-New\-Hack\-Util.\-h}}
\subsubsection[{s64}]{\setlength{\rightskip}{0pt plus 5cm}typedef signed \-\_\-\-\_\-int64 {\bf s64}}}\label{NewHackUtil_8h_a135d592e13ab0e8126a97384e55ed622}
\hypertarget{NewHackUtil_8h_a9b9fbbb40e8cc26fa8e3f5aea39c42f9}{\index{\-New\-Hack\-Util.\-h@{\-New\-Hack\-Util.\-h}!s8@{s8}}
\index{s8@{s8}!NewHackUtil.h@{\-New\-Hack\-Util.\-h}}
\subsubsection[{s8}]{\setlength{\rightskip}{0pt plus 5cm}typedef signed \-\_\-\-\_\-int8 {\bf s8}}}\label{NewHackUtil_8h_a9b9fbbb40e8cc26fa8e3f5aea39c42f9}
\hypertarget{NewHackUtil_8h_ac8008e9f99a9e3bdd6649ba6fe685975}{\index{\-New\-Hack\-Util.\-h@{\-New\-Hack\-Util.\-h}!u16@{u16}}
\index{u16@{u16}!NewHackUtil.h@{\-New\-Hack\-Util.\-h}}
\subsubsection[{u16}]{\setlength{\rightskip}{0pt plus 5cm}typedef unsigned \-\_\-\-\_\-int16 {\bf u16}}}\label{NewHackUtil_8h_ac8008e9f99a9e3bdd6649ba6fe685975}
\hypertarget{NewHackUtil_8h_a60534f57ab6a58fdf5c2e618645182e3}{\index{\-New\-Hack\-Util.\-h@{\-New\-Hack\-Util.\-h}!u32@{u32}}
\index{u32@{u32}!NewHackUtil.h@{\-New\-Hack\-Util.\-h}}
\subsubsection[{u32}]{\setlength{\rightskip}{0pt plus 5cm}typedef unsigned \-\_\-\-\_\-int32 {\bf u32}}}\label{NewHackUtil_8h_a60534f57ab6a58fdf5c2e618645182e3}
\hypertarget{NewHackUtil_8h_ab20682c4bd54e71fed5f159e4a0da9c9}{\index{\-New\-Hack\-Util.\-h@{\-New\-Hack\-Util.\-h}!u64@{u64}}
\index{u64@{u64}!NewHackUtil.h@{\-New\-Hack\-Util.\-h}}
\subsubsection[{u64}]{\setlength{\rightskip}{0pt plus 5cm}typedef unsigned \-\_\-\-\_\-int64 {\bf u64}}}\label{NewHackUtil_8h_ab20682c4bd54e71fed5f159e4a0da9c9}
\hypertarget{NewHackUtil_8h_ab64accf39cd9947d51611c16fd76f69a}{\index{\-New\-Hack\-Util.\-h@{\-New\-Hack\-Util.\-h}!u8@{u8}}
\index{u8@{u8}!NewHackUtil.h@{\-New\-Hack\-Util.\-h}}
\subsubsection[{u8}]{\setlength{\rightskip}{0pt plus 5cm}typedef unsigned \-\_\-\-\_\-int8 {\bf u8}}}\label{NewHackUtil_8h_ab64accf39cd9947d51611c16fd76f69a}
